android - 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 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)导航到以下菜单选项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 的最新版本)
这些模拟设备是否不支持以这种方式恢复出厂设置?或者这些设备的配置是否存在合法错误,导致恢复出厂设置数据无法正常工作?
解决方案
推荐阅读
- mysql - MYSQL - 通过查询从组中的最后一个 id 获取值
- sql - 使用带有 oracle sql 的 max 函数从列中获取值,包括重复项
- java - 使用 shoppy api 更新产品
- c++ - 使用队列结构的基数排序
- .net - 分析明显的 .NET 1.1 Windows 服务挂起
- python - 在 Python 的 GEKKO 中实现宏观经济模型
- powershell - 支持管道的反向 TLS powershell
- python - 谷歌编码果酱 b 2019 年建设平原不断抛出运行时错误
- mongodb - 如果父对象为空,则 Cosmos DB 查询失败
- python - 即使终端允许,Pycharm 也不允许为 pygame 安装 pip