aosp12 把第三方应用设置为系统应用

117 阅读1分钟

最近一直在忙很久没有更新framework的东西了,今天教大家如何把第三方应用设置为系统级别的应用,首先我们看效果图

kazam_11lw2cmj.movie.gif 我们可以看到我们把一个第三方的应用设置为系统应用后,在设置中是没有卸载操作的,所以就表示我们的操作是成功的,接下来我们看一下怎么操作。 我们的所有app都是在packagees/apps下的,我们来看一下图片

2e914dea-5d58-49ef-bdc6-5fc439e6cdb1.png 我们首先需要在这里创建一个MyApp文件夹,细心的同学已经看到了,我的截图是有的,创建完成后,我们需要在这个文件夹中放两个东西,一个是我们的第三方apk,另一个是android.mk

ab91bf3b-9018-47bd-8241-e20e0b6c60cc.png Myapp文件夹下载 提取码:68ps 我们来看一下Android.mk中有些什么东西

       LOCAL_PATH:= $(call my-dir)
       include $(CLEAR_VARS)
       $(warning "MyApp of LOCAL_PATH is $(LOCAL_PATH)")#打印输出
       # Module name should match apk name to be installed
       LOCAL_MODULE := MyApp
       LOCAL_MODULE_TAGS := optional 
       #不管是user 还是eng 版本都会编译此app
       LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
       LOCAL_MODULE_CLASS := APPS
       LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
       LOCAL_CERTIFICATE := PRESIGNED
       include $(BUILD_PREBUILT)

接下来我们还需要配置一个东西,就是把我们的这个Module放在系统级别的mk中 我们的aosp12和 7 8 9 版本是有差异的,所有放至的位置也不同, 我们需要在build/make/traget/product/base_system.mk

28cbb1a1-6990-4977-9b94-62cc70b53efb.png 我们把这里配置完成后,就和之前修改activity中代码一样,需要make . build/envsetup.sh lunch aosp_car_x86-userdebug make emulator 等make成功后,我们启动模拟器就可以看到效果了