Android: пункт меню сброса заводских настроек эмулятора не работает - PullRequest
0 голосов
/ 10 сентября 2018

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

Через созданный мной Android Studio AVD Managerнесколько эмулируемых устройств Android TV, версии Oreo (8.0.0) и Pi (9.0), но ни одно из них не позволяет применить успешный сброс к заводским настройкам.

Шаги, которые я выполнил:

  • Запуск только что созданного эмулированного устройства (с возможностью записи в системный раздел), например.

~/Android/Sdk/emulator/emulator -avd Android_TV_1080p_API_26_Oreo_8.0.0_ -writable-system

  • Использование прав доступа root для разрешения перемонтированиябыть успешным, например.

adb root

  • Перемонтировать для облегчения корневого доступа к эмулируемому устройству, например.

adb remount

  • Создайте каталог системного приложения, например.

adb -e shell mkdir /system/priv-app/ftiApp

  • Переместите новое системное приложение в целевой каталог, например.

adb push app-debug.apk /system/priv-app/ftiApp/

  • Установите запрошенный System App например.

adb install -r -d -t app-debug.apk

  • Перезагрузите устройство, чтобы принять изменения устройства, например.

adb reboot

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

(для Oreo 8.0.0) Перейдите к следующей опции меню Настройки> Хранение и сброс> Сброс к заводским данным и выберите Кнопка сброса заводских данных всегда приводит к ошибке со следующим сообщением в журнале:

09-07 12:13:57.911 5979-5979/? I//system/bin/uncrypt:   received command: [--wipe_data
    --reason=ResetConfirmFragment
    --locale=en-US
    ] (57)
09-07 12:13:57.911 5979-5979/? E//system/bin/uncrypt: failed to set bootloader message: failed to find /misc partition
09-07 12:13:57.912 5979-5979/? I//system/bin/uncrypt:   received 0, exiting now
09-07 12:13:57.912 1962-5908/system_process E/RecoverySystemService: uncrypt failed with status: -1
09-07 12:13:57.916 1962-5908/system_process E/MasterClear: Can't perform master clear/factory reset
    java.io.IOException: Reboot failed (no permissions?)
        at android.os.RecoverySystem.bootCommand(RecoverySystem.java:935)
        at android.os.RecoverySystem.rebootWipeUserData(RecoverySystem.java:773)
        at com.android.server.MasterClearReceiver$1.run(MasterClearReceiver.java:75)
09-07 12:14:06.572 1962-2893/system_process I/GnssLocationProvider: WakeLock acquired by sendMessage(REPORT_SV_STATUS, 0, com.android.server.location.GnssLocationProvider$SvStatusInfo@7f1448f)

Эта ошибка в поиске раздела / misc , кажется, суть вопроса, ноЯ не знаю, как решить эту проблему, поскольку AVD Manager запускает эти эмулированные устройства в составе Android Studio с использованием стандартных изображений?

(Обратите внимание, что это последнее воплощение Android Studio 3.1.4)

Это фактили сброс таким образом не поддерживается этими эмулируемыми устройствами?Или что-то не так с настройкой этих устройств, не позволяющей восстановить заводские настройки?

...