【问题标题】:How to run System Android App on system user如何在系统用户上运行系统 Android 应用程序
【发布时间】:2020-04-10 21:05:19
【问题描述】:

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

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

【问题讨论】:

    标签: android embedded-linux android-source


    【解决方案1】:

    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 中添加 sharedUserId,谢谢@Erlkoenig
    【解决方案2】:

    实际上,您不需要将 coreApp="true" 添加到清单中,因为当应用程序需要在某些启动模式下运行时需要它,例如“安全模式”。 sharedUserId 和平台证书就足够了。

    【讨论】:

    • 我同意你,我没用过。
    猜你喜欢
    • 1970-01-01
    • 2013-03-31
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 2012-01-31
    • 2018-04-07
    相关资源
    最近更新 更多