Отказано в разрешении на восстановление ADB, но доступ к супер-пользователю в оболочке - android

Итак, я пытаюсь отправить некоторые файлы в /system на устройстве Android (zte), которое я получил, подключившись к ADB,

adb remount -> мне отказано в разрешении adb shell su -> я могу получить доступ к оболочке, создавать папки и т. д. и редактировать файловую систему

(но в оболочке я не могу скопировать файл с моего компьютера на устройство)

Любая помощь, пожалуйста

9 ответов

Решение

На случай, если у кого-то возникнет такая же проблема в будущем:

$ adb shell
$ su
# mount -o rw,remount /system

И то и другое adb remount а также adb root не работайте в производственной сборке без изменения ro.secure, но вы все равно можете перемонтировать /system, открыв оболочку, запросив права доступа root и введя команду mount.

Для людей, использующих эмулятор: Другая возможность заключается в том, что вам нужно запустить эмулятор с -writable-system. Это было единственное, что сработало для меня при использовании стандартного эмулятора, поставляемого в комплекте с android studio с изображением 4.1. Проверьте здесь: /questions/29501864/nevozmozhno-izmenit-sistemnyij-katalog-android-na-rw/29501869#29501869

Использование

#adb root

это запустит adb demon как root. Тогда беги

#adb remount

, это будет перемонтировать устройство с соответствующим разрешением

Некоторые новые сборки требуют, чтобы следующие дополнительные команды adb запускались первыми

adb root
adb disable-verity
adb reboot

затем

adb root
adb remount

Ты можешь использовать:

adb shell su -c "your command here"

работает только рутированные устройства с su.

Система запуска / записи с возможностью записи

Использование изображений эмулятора без Google Play

Это не работает с производственными изображениями Android, т. Е. С изображениями из Google Play.

Используйте изображения, не принадлежащие Google Play, для корневого доступа и системы с возможностью записи

Запустите эмулятор из командной строки как систему с возможностью записи, используя его имя AVD ( Pixel3aв этом примере см. « Имя AVD» ниже, чтобы найти или изменить свое. При использовании этой команды убедитесь, что другой экземпляр эмулятора не запущен):

      emulator @Pixel3a -writable-system

(Держите эту команду под рукой. Вам нужно будет использовать ее каждый раз, когда вы захотите получить доступ к своему эмулятору как «доступный для записи». Я использую псевдоним в gitbash, чтобы запускать мой эмулятор из терминала gitbash, каждый раз.)

Это запускает эмулятор.

Когда запуск будет завершен, откройте другую командную строку / терминал (он завис при запуске эмулятора) и:

      adb root

Результат должен быть:

      $ adb root
restarting adbd as root

Потом:

      adb remount

Результат:

      $ adb remount
remount succeeded

Когда ты:

      adb shell

а также:

      su

Теперь у вас должен быть полный root / доступ для записи:

      $ adb shell
generic_x86_arm:/ # su
generic_x86_arm:/ # 

Чтобы добавить домен в файл hosts

      $ cd /etc
$ cp hosts hosts.bak1
$ cat hosts
127.0.0.1       localhost
::1             ip6-localhost

$ echo '10.0.2.2 my.newdomain.com' >> hosts
$ cat hosts
127.0.0.1       localhost
::1             ip6-localhost
10.0.2.2        my.newdomain.com

10.0.2.2 - это "localhost" для эмулятора Android. Он будет делегировать вашим файлам хостов Windows / Mac и службам DNS. Любой домен, который вы добавляете к своей машине разработки hosts файл, будет работать как 10.0.2.2 в файле hosts вашего эмулятора Android.

Имя AVD

В Android Studio AVD Manager можно запустить из меню:

Инструменты> AVD Manager

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

Я назвал свой эмулятор «Pixel3a» без пробелов для удобства набора текста.

Я тогда перезагрузился в рекавери

      adb root; adb adb remount system; 

у меня работало мое рекавери twrp v3.5

Попробуйте использовать эмулятор API lvl 28 (Android 9). Я пробовал с api lvl 29 и продолжал получать ошибки.

@echo off
color 0B
echo =============================================================================
echo.
echo              ClockworkMod Recovery for SAMSUNG GALAXY SIII E210L
echo.
echo                  ClockworkMod Recovery (v6.0.1.2 Touch)
echo.
echo     ¡ô¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¡ô
echo     ¨U                                                                  ¨U
echo     ¨U SAMSUNG GALAXY SIII E210L                                        ¨U
echo     ¡ô¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¡ô
echo.
echo  1) (Settings\Developer options©¥ USB debugging)
echo.
echo  2) CWM SAMSUNG GALAXY SIII E210L 
echo.
echo  3) THANK!!!!!!
echo.
echo =============================================================================
echo                           ARE YOU READY? GO! ¡·¡·¡·
@pause
echo.
echo adb...
adb.exe kill-server
adb.exe wait-for-device
echo wiat¸!
echo.
echo conect...
adb.exe push IMG /data/local/tmp/
adb.exe shell su -c "dd if=/data/local/tmp/GANGSTAR-VEGAS-1.3.0-APK-Andropalace.net.apk of=/mnt/sdcard/Android/GANGSTAR-VEGAS-1.3.0-APK-Andropalace.net.apk
adb.exe shell su -c "rm /data/local/tmp/bootloader.img"
adb.exe shell su -c "rm /data/local/tmp/recovery.img"


echo ===============================================================
echo     ClockworkMod Recovery!
echo.
@pause
Другие вопросы по тегам