首页 > 解决方案 > Android:模拟器出厂数据重置菜单选项不起作用

问题描述

我正在尝试测试我自己创建的一个新的 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

adb root

adb remount

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

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

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

adb reboot

我可以在系统应用程序目录中看到已安装的系统应用程序,此时我想应用恢复出厂设置,以便将模拟设备踢回应该触发我的首次启动设置向导事件的状态系统应用正在监听。

(对于 Oreo 8.0.0)导航到以下菜单选项Settings >Storage & Reset >Factory Data Reset并选择Factory data reset按钮始终会导致失败并显示以下日志消息:

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 的最新版本)

这些模拟设备是否不支持以这种方式恢复出厂设置?或者这些设备的配置是否存在合法错误,导致恢复出厂设置数据无法正常工作?

标签: androidandroid-studioandroid-emulatoravd

解决方案


推荐阅读