第一步:
在 “/vendor/.../packages/apps” 目录下创建一个对应名称的文件夹。
第二步:
将所需apk放入文件夹中。
第三步, 编辑 Android.mk :
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Module name should match apk name to be installed.
#设置apk的名字,XXX为apk名称
LOCAL_MODULE := XXX
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
#签名方式,如果是platform,代表签名成系统软件, 如果还是PRESIGND,表示用的是apk原本的签名。
LOCAL_CERTIFICATE := platform
#将apk编进“/system/priv-app/目录”,如果为false,或者不加这句话,就会编进“/system/app” 目录, 二者区别在于前者的权限要高于 后者
LOCAL_PRIVILEGED_MODULE := true
#(如果 LOCAL_MULTILIB 是32,意思是编译出32位的lib库,64异曲同工,如果是both,代表编译出两种库文件, 当然,首先要解压 apk,看看lib库是32的还是64的。 另外,如果手机系统是64位的,而lib库是32位的,则需要在 “/frameworks/base/services/core/java/com/android/serve/pm/PackageManagerService.java” 中进行配置, lineNumber : 6221)
LOCAL_MULTILIB := 32
include $(BUILD_PREBUILT)
补充: LOCAL_OVERRIDES_PACKAGES := Calculator #覆盖掉之前有的一个apk,名字叫Calculator
第四步:
在 /device/平台/.../项目目录下找到相应的版本,打开其中的 “项目名.mk” 文件, 添加:
#编译项目时,会在对应的版本中添加上这个apk。
PRODUCT_PACKAGES += XXX
第五步:
编译一下整个项目,运行调试,就会将apk编进 "/system/priv-app/" 或 " /system/app"。
转载出处:https://www.cnblogs.com/neo-java/p/6830451.html
本文介绍了如何制作Android系统中不可卸载的预制APK。步骤包括在`/vendor/.../packages/apps`创建文件夹,放入apk,编辑Android.mk设置模块信息和签名方式,以及在设备特定的`project.mk`中添加产品包。完成这些步骤后,编译项目即可将APK安装到`/system/priv-app/`目录,使其成为系统应用,无法被普通用户卸载。
1691

被折叠的 条评论
为什么被折叠?



