如何运行系统Android系统用户上的应用程序

How to run System Android App on system user

我正在开发 Android 系统应用程序,这意味着我使用平台密钥对其进行了签名并将其推送到“/system/priv-app”,但是当我用“adb shell ps”检查时,我发现用户是“u0_a40”不是“系统

谁能向我解释发生了什么以及我可以对系统用户 运行 应用程序做什么?

AndroidManifest.xml 需要指定您的应用应该 运行 作为 system 用户:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.mysystemapp"
          android:sharedUserId="android.uid.system"
          coreApp="true">

为了完整起见,如果您想通过 Android.mk 文件将系统应用编译为 AOSP 构建过程的一部分,则需要将其放入 Android.mk:

LOCAL_PRIVILEGED_MODULE := true
LOCAL_CERTIFICATE := platform

这可确保应用程序在 /system/priv-app 中结束并由平台密钥签名。

实际上,您不需要在manifest中添加coreApp="true",因为当应用程序需要运行在某些启动模式下时,例如"safe mode". sharedUserId 和平台证书就足够了。