android - 如何使用平台权限将预构建的 APK 包含到 AOSP 中

标签 android apk android-source privileges

我正在为自定义硬件构建一个 AOSP 版本,我想使用一些根权限(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 中。一旦我有了这些签名,我就可以创建一个新的 keystore 。然后,我使用此处找到的工具 keytool-importkeypair 将 key 导入新的 keystore 。

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

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

最佳答案

这是我所拥有的:我的应用程序是我使用 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)

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

关于android - 如何使用平台权限将预构建的 APK 包含到 AOSP 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34189833/

相关文章:

android - 如何为 x86 编译 Android AOSP

Android AOSP boot.img 在编辑 Seliunx 规则时未更新

android - 如何将 Android 应用的翻译说明上传到开发人员控制台?

android - 带自动换行的 EditText,没有换行符,键盘操作设置为 "next"

android - Google Maps Lite Mode 导致 RecyclerView 卡顿

flutter - 我的apk重150 mb,有什么办法可以减少这种情况?

android - 从 Google Play 下载后应用无法运行

c# - Xamarin - Resource.X 不包含 Y 的定义

java - pm 命令给出段错误

android - AOSP 午餐错误的目标