【问题标题】:How to include prebuilt APK into AOSP with platform privileges如何将预构建的 APK 包含到具有平台权限的 AOSP 中
【发布时间】:2015-12-09 22:03:15
【问题描述】:

我正在为自定义硬件构建一个 AOSP 版本,并且我想使用一些 root 权限(INJECT_EVENTS、UPDATE_DEVICE_STATS、CONNECTIVITY_INTERNAL)。

对于转速控制,最好使用基于 APK 的发行版。因此,我想在构建中包含 APK,而不是每次都构建源代码。程序成功包含,但系统权限被忽略。

有没有办法包含这个程序以便它获得必要的权限?我希望 Android.mk 中的 LOCAL_CERTIFICATE、LOCAL_MODULE_CLASS 或 BUILD_PREBUILT 可以实现一些连接。

编辑: 解决方案是首先确定用于构建 Android 系统的签名。它们存在于 AOSP 内的 /build/target/product/security/platform 中。一旦我有了这些签名,我就可以创建一个新的密钥库。然后,我使用此处找到的工具 keytool-importkeypair 将密钥导入新的密钥库。

https://github.com/getfatday/keytool-importkeypair

完成后,我可以在 Android Studio 中选择密钥库并正确安装和调试具有必要权限的程序。

【问题讨论】:

  • “android”中的应用程序没有“root 权限”之类的东西 - AOSP 中没有应用程序提供的代码以 root 身份运行。也许您误解了 Android 权限和 root 是如何完全正交的?应用程序提供的代码的实际“root”执行仅存在于各种系统中,这些系统已移植了 root-exploit hack,并且特定于该 hack 决定允许自己被使用的情况。

标签: android apk android-source privileges


【解决方案1】:

这就是我所拥有的:我的应用程序是我使用 Android Studio 开发的系统应用程序。当我想将它包含在我的 ROM 中时,步骤如下:

  1. 从 Android Studio 将应用导出为未签名的 apk
  2. 将 apk 放在 packages/apps/your_app 文件夹中
  3. 像这样使用Android.mk

.

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := your_app
LOCAL_CERTIFICATE := platform
LOCAL_PRIVILEGED_MODULE := true // if required
LOCAL_MODULE_CLASS := APPS
LOCAL_SRC_FILES := app-release-unsigned.apk
include $(BUILD_PREBUILT)

除此之外,您还可以从平台证书生成密钥库文件。你可以用谷歌搜索一下,它涉及几个 shell 命令(我使用相同的方法),然后你可以通过适当的签名配置从 Android Studio 在你的设备上运行你的应用程序。

【讨论】:

    【解决方案2】:

    所以你正在做一个自定义的Android构建,只需要将你的应用源代码与其他系统应用程序放在同一目录级别,例如电话,消息,日历......然后它最终将被构建和生成为一个系统应用程序,将图像刻录到硬件后将留在/system/app

    【讨论】:

    • 这是项目最初的设置方式,但它使独立的应用程序开发/修订控制有点像噩梦。我不想将单个应用程序源代码保存在 AOSP 存储库中,而是将应用程序保存在自己的地方,任何开发人员都可以在 Android Studio 中轻松地“签出、修改、编译、运行”。如果没有经过适当的发布过程,对该应用程序主干的任何修改都不会被推送到 AOSP 主干中。
    • 如果你想避免噩梦问题,请使用 git
    • @PeteHouston 我需要帮助...使用 Android Studio 3.1 开发 AOSP 无法为仪器测试构建测试 apk stackoverflow.com/questions/50415724/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    相关资源
    最近更新 更多