Неполный Play маркет (Android) или permissions

Google Play

Я уже раньше немного затрагивал тему про расширение доступного софта в маркете на Zopo ZP100 в этой статье.

Некоторый софт, после изменения build.prop все равно продолжал не находиться. Решение оказалось простым, однако мало где описано. Точнее решение было вшито в различные кастомные прошивки. Однако сам процесс и смысл решения отдельно особо не расписывается.

А смысл в том, что на любом Android-гаджете есть системный каталог /system/etc/permissions, в котором храниться набор XML файлов. В этих файлах задается перечень функционала телефона. Т.е. наличие камер, GPS, Wi-Fi и прочего.

В стоковых прошивках для ZP100 большинство из реально существующего функционала закомментировано. Т.е. отключено. Оно не мешает ему работать на самом деле. Но если приложение в маркете задает в списке своих требований скажем требование фичи android.hardware.location.gps (соб-но GPS), а у вас в permissions он не прописан, то приложение не будет находиться в маркете.

Следовательно надо его включить. Для этого понадобится root на устройстве, чтобы иметь права на запись в /system. Основной файл там будет handheld_core_hardware.xml (или tablet_* для планшетов). В нем задается большинство фич.

Вот маленький архив с моей модификацией фич, можно его выложить в /system/etc/permissions заместо старых файлов для ZP100. Возможно он не оптимален, я делал его на скорую руку. Мне он помог однако. Во всяком случае цель заметки - дать понять технически подкованным людям, в какую сторону копать. Так я сам долго искал подобную информацию, не будучи сильно ознакомленным с android'ом со стороны разработчика (в SDK написано про эти permissions).

Также еще раньше я давал вариант build.prop для Nexus S 4G. Сейчас пробую использовать вариант build.prop под просто Nexus S, возможно он чем-то лучше. Во всяком случае сейчас в маркете у меня телефон определяется полностью как Samsung Nexus S, даже иконка оного рядом есть. Иконка появилась только после исправления permissions.

Телефон ZP100 в маркете виден как Samsung Nexus S

После замены permissions надо остановить приложение маркета и Google Services Framework. А также удалить их кеш и данные. Попробовать запустить маркет снова - он выдаст ошибку. Надо перезагрузить телефон. После этого по идее все должно заработать. У меня не помогло, пришлось удалять привязку к аккаунту Google и заново его добавлять. Тогда все заработало, правда пропали привязки программ к аккаунту Google и объединение контактов (у меня они связаны были с учетками Skype и Vkontakte).

Звучит может заморочено, статья носит технический смысл. Если не понятно, то думаю стоит просто поискать кастомную прошивку, где эта проблема уже исправлена.

Если есть какие-либо вопросы - с радостью отвечу в комментариях или по почте.

Оцените статью: 
В среднем: 5 (проголосовало 5)

Комментарии (20)

на чайнафоне выложен архив с пермишнами в теме zp200. Там хороший готовый файл, находит абсолютно всё.
Несмотря на длинную инструкцию там в действительности надо только заменить handheld_core_hardware.xml.
билд.проп при этом можно  не трогать. Телефон будет определяться как зп200, но при этом будет неограниченный доступ ко всем приложениям

Интересно, если ли какой-либо толк от изменений самого build.prop. Может уже не для маркет, а для самих приложений что-то меняет.
На чайнафоне есть много чего интересно, но найти там что-либо очень сложно - очень много информации. 
А в целом смысл заметки более технический - чтобы понять в каком месте и для чего меняется.

я не настолько сведущ в технических вопросах данной платформы, но методом научного тыка установил, что ничего, кроме отображения имени в маркете :)
Сейчас на работе, вечером могу приаттачить пермишены.

Буду благодарен

Пожалуйста: https://dl.dropbox.com/u/4475977/permissions.rar
Спасибо за блог.  Очень интересно читать.

Спасибо, в понедельник посмотрю что там. И спасибо за отзыв о блоге, рад что делаю полезное дело.

Посмотрел. Ну действительно побольше функционала указано. Кстати похоже взято с какой-то прошивки CyanogenMod (для другого, поддерживаемого телефона). По наличию файлов соб-но cyanogenmod и tmobile видно. Ну да это без разницы, главное что работает. 

А куда это и как засунуть то??

Нужны будут ROOT права на устройстве. Просто нужно распаковать файлы из архива куда-нибудь на устройство (или на microSD карту) и затем с помощью любого файл менеджера с root перемонтировать каталог /system с правами на запись (RW) и переписать эти файлы в /system/etc/permissions поверх старых (можно старых копию сделать). Затем еще надо будет права проставить такие же, как и были (root root rw-r--r--).
Еще как вариант через adb или ssh. Я например через прогу SSHDroid и подключенный WiFi делаю. Подключаюсь к домашнему WiFi на телефоне и компе, запускаю SSHDroid - она показывает IP телефона. С помощью программы на комп WinSCP подключаемся к этому IP (логин root, пароль в настройках SSHDroid указывается) и можно переписывать прямо на телефон в /system/etc/permissions. Там же и права если надо можно будет поменять.

Ссылка не работает. PLS, перезалейте, если можно.
Заранее огромное спасибо.

Также знаю, что в билд.проп иногда прописывают различные твики, но бурундук здесь неплохо пояснил http://zp200.ru/viewtopic.php?f=11&t=44&p=305&hilit=build#p308

Да, где-то я даже больше твиков находил. Но это уже к совместимости приложений не относится.
Я просто к чему это - если в build.prop поменять модель телефона, то маркет её будет опознавать. Т.е. данные о моделе на маркет передаются. Тут вопрос используются ли они для чего-то, кроме отображения в списке своих устройств ну и в комментариях.

Аватар пользователя Иван Помидоров

zp100 с Андроидом 4.0.3 и прошивкой 20120608
правда, у меня был свой build.prop, этот я побоялся использовать, он под 2.3.6 версию
можно ли сделать что-то еще? может быть у них теперь маркет хитрый стал и этот трюк не срабатывает?

Нет, всё работает и сейчас. И build.prop тут не при чем. Что-то вы не доделали. Проверьте права на файлах в /system/etc/permissions, сделайте очистку кэша и данных маркета и Google Services Framework, как написано в статье, с перезагрузкой.
У меня так именно на ZP100 работают любые приложения с маркета.

Аватар пользователя Avralex

А где задаётся количество доступных каналов Wi-Fi? Кто-нибудь знает?
У меня видит только 11, как для USA.
ro.wifi.channels ни на что не влияет.

Из того, что нашел в сети (сам с таким не сталкивался). Надо еще поменять ro.product.locale.region=EU.
 
Также еще в файле /data/data/com.android.providers.settings/databases/settings.db поменять wifi_country_code из таблицы secure на EU, JP или UK. Он формата sqlite, нужен RootExplorer + SQLite Editor, чтобы его нормально изменить, или взять где целиком файл готовый и заменить.
Еще возможно там же надо будет поменять wifi_num_allowed_channels на 14.

Аватар пользователя Avralex

Спасибо! Теперь знаю, куда копать

День добрый подскажите пожалуйста вот по такому вопросу я использую эмулятор Genymotion с google nexsus s и мне надо установить приложения но они пишут ваш девайс забанен видят что я использую эмулятор тогда я взял в build.prop всунул ваш build.prop но получил бесконечною загрузку потом взял вснул из вашего build.prop до
# end build properties но получил тоже самое
может есть какието програмы которые видят к каким настройкам получает доступ приложение и я эти настройки подправлю при установке оно требует доступ к device id и wifi аандроид ид я меня лне помогает такгже мануфактурэд итп  imei в мотион все 0  может изо этого но как его сменить пока не нашёл сам в этом новичёк  но в програмах разбираюсь подскажите куда смотреть

За идентификацию устройства в build.prop отвечают в основном строки, с ro.build и ro.product. Только не изменяйте ro.product.cpu.* - скорее всего из-за них и не хочет загружаться.
Но в целом методов обнаружения работы в эмуляторе может быть несколько. И причина может крыться совсем не в build.prop.

Добавить комментарий

Войти, используя один из провайдеров Google Account Yandex Mail.ru API Mail.ru Vkontakte Facebook Twitter Loginza MyOpenID WebMoney Rambler Flickr Last.fm Verisign AOL OpenID

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.