使用Android Studio/AVD模拟器开发“系统应用”

7
我正在开发一个需要android.permission.DUMP权限的应用程序。这个权限只允许“系统”应用程序(由设备供应商签名的应用程序)或者我假设是拥有root权限的应用程序使用。
如何使用AVD模拟器开发(和测试)这样的应用程序?我声明我需要的权限,然后在模拟器中构建和运行应用程序,但当我运行到运行部分时,无论是否在清单中指定权限,我都会遇到相同的权限错误。
如何开发这些类型的应用程序?
我意识到如果这是一台真实设备,我需要对其进行root或安装自定义ROM。但肯定有一种方法可以告诉模拟器将我的应用程序视为已经是系统应用程序。我一直在寻找IDE中的“将应用程序安装为系统应用程序”或“以root身份运行”的复选框,但我找不到。

1
系统应用需要预先安装。您需要构建自定义ROM,或由OEM预先安装。请注意,它将无法通过Google Play或其他商店运行。如果只需具有root权限并手动在系统应用文件夹中安装apk,则可能能使其正常工作。 - Gabe Sechan
是的!!!您需要对设备进行Root以开发和安装系统应用程序。 - Pankaj
4
“供应商”如何创建这些应用程序?是通过从自己的自定义安装中构建自己的AVD映像吗?每次他们想要测试该应用程序,都需要重新构建他们的ROM吗?肯定有一种方法可以覆盖Android Studio SDK附带的默认ROM设置吧?我一直在寻找一个“将此应用程序安装为系统应用程序”的复选框,在IDE中…… - clemej
由于adb shell和push命令已在模拟器上以root身份运行,因此您可以尝试修改设备时人们有时会做的“重新挂载系统分区为可写,并将apk复制到其他文件旁边”的方法,但不能保证其能够正常工作,因为这不是一项预期功能。 - Chris Stratton
所有模拟器默认都提供 root 权限,但您仍然需要在应用中请求 root 权限,作为用户,必须授权后,应用程序才能真正获得 root 权限。真正的已经获取了 root 权限的设备也是如此。 - Stephan Branczyk
2个回答

2

使用Genymotion作为您的模拟器。它默认提供root权限。


0

正常的工作流程是将应用程序构建为普通的Java应用程序项目,就像您正在为最小Android操作系统做出贡献一样,并创建自定义操作系统映像,然后使用该映像执行模拟器,当然您正在调整Android操作系统以安装预安装的系统应用程序


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接