Android:模拟器出厂数据重置菜单选项不起作用

kyt*_*erk 5 android android-virtual-device android-emulator android-studio

我正在尝试测试我自己创建的一个新的 Android 系统级应用程序,它在执行设备出厂重置后捕获各种系统事件挂钩。

通过 Android Studio AVD 管理器,我创建了多个模拟的 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 root

  • 重新安装以促进对模拟设备的 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)导航到以下菜单选项设置 > 存储和重置 > 出厂数据重置并选择出厂数据重置按钮始终会导致失败并显示以下日志消息:

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)
Run Code Online (Sandbox Code Playgroud)

未能找到/misc分区似乎是问题的症结所在,但我不知道如何解决它,因为这些模拟设备是由 AVD Manager 使用标准图像作为 Android Studio 的一部分启动的?

(注意这是 Android Studio 3.1.4 的最新版本)

这些仿真设备不支持以这种方式恢复出厂设置吗?或者这些设备的配置是否存在合法错误,使恢复出厂设置数据无法工作?