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

时间:2015-12-09 22:03:15

标签: android apk android-source privileges

我正在为自定义硬件构建一个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中选择密钥库,并正确安装和调试具有必要权限的程序。

2 个答案:

答案 0 :(得分:3)

以下是我的内容:我的应用程序是使用Android Studio开发的系统应用程序。当我想将它包含在我的ROM中时,以下是步骤:

  1. 将应用程序导出为Android Studio
  2. 中的未签名apk
  3. 将apk放入packages / apps / your_app文件夹
  4. 像这样使用Android.mk
  5. 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在您的设备上运行您的应用程序。

答案 1 :(得分:0)

因此,您正在制作自定义Android版本,只需将您的应用程序源与其他系统应用程序放在同一目录级别,例如电话,消息,日历......然后它最终将构建并生成为系统应用程序,在将图像刻录到硬件后将保留在/system/app