如何将AndroidStudio编译出来的APP设置为系统应用

声明

  • 前阶段需要在开发一个system权限的APP,整理了两种方法,在此做个整理总结。
  • 两种方法的前提都是要有Android系统源码,或Android系统源码中系统签名文件:platform.pk8、platform.x509.pem
  • 参考文章:keytool-importkeypair 的使用

1 在AndroidStudio中采用platform.pk8、platform.x509.pem生成的签名编译

  1. 设定APP的system权限
    可在AndroidStudio中将AndroidManifest.xml中添加:android:sharedUserId=“android.uid.system”

  2. 参考博文:keytool-importkeypair 的使用

2 讲AndroidStudio编译出的apk放入Android系统源码中和系统一起编译

  1. 设定APP的system权限
    可在AndroidStudio中将AndroidManifest.xml中添加:android:sharedUserId=“android.uid.system”

  2. 在Android源码目录/packages/apps创建该APP目录,新建Android.mk文件,还需要在对应的Android.mk中添加LOCAL_CERTIFICATE := platform这一项。即用系统的签名,通过这种方式只能使apk的权限升级到system级别

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := TestFFmpeg
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_MODULE_CLASS := APPS
LOCAL_PACKAGE_NAME := TestFFmpeg
LOCAL_MODULE_PATH := $(TARGET_OUT)/app
LOCAL_SRC_FILES := testffmpeg.apk
LOCAL_CERTIFICATE := platform
LOCAL_DEX_PREOPT := false
LOCAL_PREBUILT_JNI_LIBS := \
        lib/arm64-v8a/libavcodec.so  \
		lib/arm64-v8a/libavdevice.so  \
		lib/arm64-v8a/libavfilter.so  \
		lib/arm64-v8a/libavformat.so  \
		lib/arm64-v8a/libavutil.so  \
		lib/arm64-v8a/libnative-lib.so  \
		lib/arm64-v8a/libswresample.so  \
		lib/arm64-v8a/libswscale.so  \
		lib/arm64-v8a/libx264.159.so  \
		lib/arm64-v8a/minicap.so

include $(BUILD_PREBUILT)
  1. 在系统编译控制的Makefile文件中添加:
PRODUCT_PACKAGES += \
		TestFFmpeg
  1. 重新编译系统镜像,刷机,运行APP即为system权限的了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小馬佩德罗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值