Android.mk 源码编译无法内置成系统共享android.uid.system应用

介绍:

配置系统共享android.uid.system应用分为两步:

  • 1.AndroidManifest.xml文件中配置:android:sharedUserId="android.uid.system"
  • 2.使用系统平台签名在Android.mk文件中添加:LOCAL_CERTIFICATE := platform

问题:

以上两步我都做过但发现应用只是系统应用但没有共享android.uid.system,导致很多权限没有。

可以通过反编译apk拿到AndroidManifest.xml,我拿到AndroidManifest.xml文件后发现没有加入android:sharedUserId="android.uid.system",说明打包合并AndroidManifest.xml的时候出了问题。

 

解决:

应用中我们通常会有多个代码目录和多个AndroidManifest.xml文件,这些文件都需要被引用进入最后编译打包的时候合并到一个AndroidManifest.xml文件中,其中就包括两种引入:

1.这些是引入依赖库或者是其他目录的AndroidManifest文件(库文件)

LOCAL_FULL_LIBS_MANIFEST_FILES := \
    $(LOCAL_PATH)/xxx/AndroidManifest.xml \
    $(LOCAL_PATH)/AndroidManifest-common.xml

2.LOCAL_MANIFEST_FILE这个是主AndroidManifest.xml文件

LOCAL_MANIFEST_FILE := AndroidManifest.xml

因为我把主AndroidManifest.xml文件写到库引入里面了导致编译合并的时候没有写入

你可能感兴趣的:(共享uid,uid.system失败)