改版本号,型号,内置apk,白名单,后台不可清除,不可卸载
改版本号就在项目下的的ProjectConfig.mk里面有宏FREEME_PRODUCT_INFO_SW_VERNO,看着手机里的版本号也可以定位,然后换就是了。型号也是在这里面定位比如FREEME_PRODUCT_INFO_NAME,这个涉及的比较多,其他地方也有。
内置apk如果遇到内置后无法打开应用,报错是在路径下没找到什么库文件,.so类似的,解决方法:
把这个apk右击解压出来,得到speak.apk_FILES,里面有lib文件夹,把这个lib文件夹里面报错涉及到的 放到这个prebuilts/应用目录下 ,一般是armeabi-v7a和arm64-v8a ,把这俩目录放到应用目录下就可以,其实只要把armeabi-v7a放进去就行了,因为mk里面只写了这个LOCAL_PATH)/lib/armeabi-v7a/ -name *.so,在这里面找所有的so文件
然后编译mk文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := TAppDeskPub
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
JNI_LIBS :=
$(foreach FILE,$(shell find $(LOCAL_PATH)/lib/armeabi-v7a/ -name *.so), $(eval JNI_LIBS += $(FILE)))
LOCAL_PREBUILT_JNI_LIBS := $(subst $(LOCAL_PATH),,$(JNI_LIBS))
LOCAL_MULTILIB := 32
include $(BUILD_PREBUILT)
内置apk,就是 在对应的项目下的prebuilts目录下,你自己创个关于这个apk的文件夹,比如customApp,最好是一个apk一个文件夹,另外再把你mk文件里提到的apk放到同级目录下就可。主要是mk文件的编写,比如
include $(CLEAR_VARS)
# Module name should match apk name to be installed
LOCAL_MODULE :=zello
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
//与下面那句一个意思LOCAL_MODULE_PATH := $(TARGET_OUT)/priv-app
//EGED_MODULE := true
LOCAL_DEX_PREOPT := false
LOCAL_SRC_FILES := zello.apk
include $(BUILD_PREBUILT)
LOCAL_MODULE_TAGS 是指定在什么版下才会编译这个Android.mk
user: 指该模块只在user版本下才编译
eng: 指该模块只在eng版本下才编译
tests: 指该模块只在tests版本下才编译
optional:指该模块在所有版本下都编译
LOCAL_MODULE_SUFFIX 是指文件后缀.apk
LOCAL_CERTIFICATE指apk的签名,可以有:testkey、media、platform、shared,如果文件已经签过名,则使用PRESIGNED。
其中testkey是作为android编译的时候默认的签名key,如果系统中的apk的android.mk中没有设置LOCAL_CERTIFICATE的值,就默认使用testkey。
LOCAL_MODULE_PATH 指你要安装的apk的路径。
$(TARGET_OUT)/priv-app这个路径下,apk不可卸载。
$(TARGET_OUT_DATA_APPS)这个路径下apk卸载后不再恢复
$(TARGET_OUT)/vendor/operator/app这个路径下apk卸载后恢复出厂设置可以恢复apk
LOCAL_PRIVILEGED_MODULE
决定编译后apk的位置,如果设置为true,则生成在/system/priv-app,如果不设置或false,则生成在/system/app。在system/priv-app目录主要是存放手机厂商定制的系统的系统级应用这些应用需要系统及权限,而又不能被用户卸载掉。, 二者区别在于前者的权限要高于 后者
LOCAL_CERTIFICATE := PRESIGNED,打包apk时,沿用apk中原来的签名
- LOCAL_MODULE_CLASS
LOCAL_MODULE_CLASS := APPS
标识所编译模块放置的位置, APPS表示放置在/system/app目录下。
预置到system/app/目录 (不可卸载),但是可以禁用disable
预置到system/priv-app/目录 (不可卸载,系统核心应用),不可以禁用,disable无法点到
预置到data/app/目录 (可卸载)
加上这句就是预置到vendor/app下,当然也是不可卸载
LOCAL_PROPRIETARY_MODULE := true
如果这个apk是对讲apk且与型号是绑定的,那么改所有型号时不要改动ro.product.model ro.product.device ro.product.brand
这三个,意思就是在ProjectConfig里面不要动FREEME_PRODUCT_INFO_MODEL
FREEME_PRODUCT_INFO_BRAND
FREEME_PRODUCT_INFO_DEVICE就可以了
但是不动这几个,型号是不会变的,接下来是单纯只改设置里的表象型号
vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/deviceinfo/DeviceModelPreferenceController.java
在这里面把Build.MODEL都换换成对应的型号就可以"E560"
vendor/freeme/packages/providers/FreemeSettingsProvider/res/values/defaults.xml
这里面有个WiFip2p的名字要改掉
<string name="def_wifi_p2p_device_name" translatable="false">E560</string>
一般改版本号的都是这个项
目的子项目,需要另外起一个文件夹,自己取个名字,可以到别的项目里面复制过来,但是里面的名字得换掉,包括里面很多配置文件。可以全局搜一下原来的名字,把名字换掉就可
白名单的话就是后台不被清除。要把这个apk的包名在override/frameworks/base/data/etc/platform.xml里面写一个标签,就是设置里面电池优化里面,加上去了后,后台就无法清除了。就相当于添加白名单<allow-in-power-save package="com.loudtalks" />
还有一种base/data/data/deviceidle.xml里面添包名
+<wl n="com.fleetclient"/>
+<wl n="com.corget"/>
+<wl n="com.shli.interphone"/>
改版本号,型号,内置apk,白名单,后台不可清除,不可卸载相关推荐
- Android 系统工程中内置APK
有些时候需要将一些自已写的apk内置到系统,也就是第三方内置.内置的原因一部是让apk拥有系统级权限,一部分为了内置apk定制刷机包. 系统级: 1.先在package/apps中创建一个文件夹,如H ...
- 当不小心更改了matlab工具箱的内置函数怎么办?以及matlab指定工具箱卸载
前阵子,更改matlab内置函数的时候不小心将函数修改好,关闭matlab后再次打开时运行内置函数确报错了,总之提示各种错误.现在总结下原因以及解决办法: 原因:其实支持修改内置函数,但是后修改记得要 ...
- android预置第三方apk,android 内置APK成系统应用
一. 这种方法必须要自己编写Android.mk文件(关于Android.mk可以参考),在研发中,自己有源码时,可以将APK的源码包置于Android源码中(比如:alps/package/apps ...
- mt6761平台 源码内置APK报错“/lib/xxxx.so“ not found
内置到安卓系统里的APP运行失败,抓取log有以下类似的报错时: lang.UnsatisfiedLinkError: dlopen failed: library "/system/app ...
- mtk android apk lib,Android MTK 拷贝第三方App 内置apk文件到系统目录
MTK 的第三方App文件或者so库,都存在在Vendor目录下面 vendor\retch\thirdapp 我们要实现App 的拷贝,可以在pacakage\apps 下面去新建一个文件夹Retc ...
- Android 12 内置APK mismatch in the <uses-library> tags
Android系统源码开发系列教学视频链接: Android 10.0 AOSP源码编译: AOSP源码开发环境搭建教学视频-百问100ask Android系统 10.0 AOSP源码编译--CSD ...
- Android S内置APK时AndroidManifest使用uses-library编译报错
(1)安装或编译出现的错误 Google关于这方面在Android S的改动有文档输出,可以参考如下:Dexpreopt 和 uses-library 检查. 此项报错主要是构建系统在Android. ...
- android 内置apk方法,Android预置Apk方法
因为工作需要,经常要开发和合入系统App,所以在此开篇作为收集和记录Android合入系统应用的方法,以备日后查阅. 一.预置apk方法 Case 1:如何将带源码的APK预置进系统 在 packag ...
- MTK Android12 内置APK三方应用问题小结
#Android.mk配置的问题 error: mismatch in the tags between the build system and the manifest: - required l ...
最新文章
- 《强化学习周刊》第38期:DreamingV2、Shadow-price DRL、离线强化学习
- 破解入门(六)-----实战“内存镜像法”脱壳
- CMMI之需求管理和股票池管理
- Python爬虫开发:fake_useragent库伪造User-Agent
- SpringSide 4 QuickStart运行Demo
- HDU - 6967 G I love data structure 线段树维护矩阵 + 细节
- 【转】构建C1000K的服务器(1) – 基础
- python字典(dict)合并的操作
- 计算两个经纬度的距离_HTML5 地理定位+地图 API:计算用户到商家的距离
- 基于SSM的作业管理(在线学习)系统
- pycharm的python解释器选择_pycharm中配置python解释器
- 英伟达显卡不同架构_【英伟达NVIDIA显卡GPU架构核心代号名称一览】(截止到 2018·08)...
- svnadmin命令[转]
- paraview的安装和使用
- 2022年iOS最新面试(底层基础)问题答案
- html怎么改表格背景,javascript修改表格背景色实例代码分享
- 韩媒:开城韩商访朝申请或最晚25日出结果
- python视频字幕处理_用Python处理字幕文件
- 帆软报表在已经搭载服务器上开发_报表案例_数据报表开发_做报表的步骤_报表开发流程-帆软...
- 操作系统原理课程设计任务书
热门文章
- vue实现就诊人信息的增删改查
- Jil,高效的json序列化和反序列化库
- win10如何给已分区的磁盘(如C盘)进行扩容?
- 挂件巡检机器人_一“人”分饰多角 京东新一代巡检机器人上岗!
- 使用labview进行自动对焦
- 想从事网络信息安全的工作,该如何自学?
- vob转mp4,每天一个实用小技巧
- txt文本QQ群推广方式
- [Swift]LeetCode1135. 最低成本联通所有城市 | Connecting Cities With Minimum Cost
- FLEX提高篇--------ShareObject对象详解