У меня самсунг т355с. Китайская модель обычного планшета без гаппсов и насколько я понял заблокированный загрузчик. Для него нет кастомного рекавери. Работает 5.0.1
Мне удалось рутировать его с помощью kingo и перепробовать множество способов вставлять в него приложения Google. Закончилось тем, что он пока замуровался ... перезагрузил оригинальный ром.
Вопрос в том. После исправляю и рутирую его снова Используя adb с рутом. Как я могу нажать гаппсы
Я действительно не пробовал это, но возможный подход будет следовать шагам, которые пользовательское восстановление будет выполнять при установке («перепрошивке») файла, .zip
который можно найти в META-INF/com/google/android/updater-script
(после извлечения из архива). Для архива Kitkat GApps это выглядит так:
ui_print("Установка файлов..."); run_program("/sbin/busybox", "mount", "/system"); показать_прогресс (1, 15); удалить("/system/app/Provision.apk","/system/app/QuickSearchBox.apk","/system/app/priv-app/SetupWizard.apk","/system/app/priv-app/Velvet .apk","/system/app/Vending.apk","/system/app package_extract_dir("система", "/система"); set_perm(0, 0, 0755, "/system/addon.d/70-gapps.sh"); package_extract_dir("необязательный", "/tmp"); package_extract_file("install-Optional.sh", "/tmp/install-Optional.sh"); set_perm(0, 0, 0777, "/tmp/install-Optional.sh"); run_program("/tmp/install-Optional.sh", ""); показать_прогресс (1, 15); ui_print("Очистка и настройка метаданных..."); set_metadata_recursive("/system/addon.d", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "возможности", 0x0, "selabel", "u:object_r: системный_файл:s0"); set_metadata_recursive("/system/app", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "возможности", 0x0, "selabel", "u:object_r:system_file: с0"); set_metadata_recursive("/system/priv-app", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "возможности", 0x0, "selabel", "u:object_r: системный_файл:s0"); set_metadata_recursive("/system/etc/permissions", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "возможности", 0x0, "selabel", "u:object_r: системный_файл:s0"); set_metadata_recursive("/system/etc/preferred-apps", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "возможности", 0x0, "selabel", "u: объект_r:системный_файл:s0"); set_metadata("/system/etc/g.prop", "uid", 0, "gid", 0, "режим", 0755, "возможности", 0x0, "selabel", "u:object_r:system_file:s0" ); set_metadata_recursive("/system/framework", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "возможности", 0x0, "selabel", "u:object_r:system_file: с0"); set_metadata_recursive("/system/lib", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "возможности", 0x0, "selabel", "u:object_r:system_file: с0"); set_metadata_recursive("/system/usr/srec/en-US", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "возможности", 0x0, "selabel", " u:object_r:системный_файл:s0"); set_metadata_recursive("/system/vendor/pittpatt", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "возможности", 0x0, "selabel", "u:object_r: системный_файл:s0"); run_program("/sbin/busybox", "umount", "/system"); ui_print("Установка завершена!");
Мы, конечно, можем пропустить комментарии/отладочный вывод и, таким образом, по существу закончить эти шаги. Я предполагаю, что вы распаковали .zip
содержимое файла где-то на своем устройстве и сидите в оболочке (терминал или adb shell
) с правами root ( su
), чтобы начать с:
mount -o remount,rw /system
(строка 2)rm -f <file>
для каждого из них.zip
файла system/
в /system
(строка 5)chmod 0755 /system/addon.d/70-gapps.sh
(строка 6)sh /tmp/install-optional.sh
(строка 10)Теперь становится немного сложнее (для новичков) интерпретировать set_metadata_recursive
команды. Я объясню это на первом (строка 13):
/system/addon.d
должен принадлежать uid 0 и gid 0, права доступа к файлам должны быть 0755 (dmode — режим каталога, fmode — файловый режим), атрибуты SELinux — u:object_r:system_file:s0
. Вы могли заметить, что я пропустил два столбца: я понятия не имею, что это "capabilities", 0x0
значит, поэтому я не могу это объяснить (если кто-то знает, пожалуйста, прокомментируйте). Итак, давайте сделаем это:
chown -R root:root /system/addon.d # -R is recursive, root is user/group id 0
chmod -R 755 /system/addon.d # as dmode and fmode are the same, we can do that
# at this place missing: SELinux properties. I've never dealt with those
Если, как в строке 14, fmode и dmode различаются, вам также придется позаботиться об этом. Примените dmode, как указано выше, и за ним следует a find <dir> -type f -print0 | xargs chmod <mode>
, заменив его <dir>
первым аргументом set_metadata_recursive
и <mode>
соответствующим fmode.
Наконец, снова перемонтируйте /system
только для чтения: mount -o remount,ro /system
– или просто перезагрузитесь (в любом случае вам придется это сделать), что также позаботится об этом.
Я пропустил материал SELinux из-за отсутствия знаний. Скорее всего, он будет работать и без него, но может быть полезно сделать для дополнительной безопасности :)
gapps-remove.txt
Некоторые GApps также
поставляются с файлом. Его можно сравнить с файлами, которые у вас есть или которые вы собираетесь копировать в /system. Это может помочь им узнать, чего им не хватает.Метки SElinux, которые вы устанавливаете с помощью команды «chcon», и вы можете проверить результат с помощью «ls -laZ».
Для: set_metadata_recursive("/system/addon.d", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u: объект_r:системный_файл:s0");
это будет: chcon "u:object_r:system_file:s0" /system/addon.d
Вы можете проверить это, введя: ls -laZ /system/addon.d
источник использования "chcon": https://books.google.pl/books?id=AKbNBgAAQBAJ&pg=PA101&lpg=PA101&dq=%22u:object_r:system_file:s0%22&source=bl&ots=MbpesnKLkI&sig=ACfU3U2sJc-vYndDkUOk1Tru42hrcuPyUQX&hl&pl&sa= =2ahUKEwjqwqKiwZDnAhWiAxAIHZH8AGAQ6AEwAXoECAkQAQ#v=onepage&q=%22u%3Aobject_r%3Asystem_file%3As0%22&f=false
Повелитель огня
Иззи
/system
чтение-запись до и обратно в режим только для чтения после нажатия приложений.Яковль
Иззи
.zip
содержит скрипт:META-INF/com/google/android/updater-script
содержит шаги, которые обычно выполняет пользовательское восстановление. Используйте это как руководство — хотя вам придется «преобразовать» команды.