MTK 预置apk
一、如何将带源码的APK预置进系统?
1) 在 packages/apps 下面以需要预置的 APK的 名字创建一个新文件夹,以预置一个名为Test的APK 为例
2) 将 Test APK的Source code 拷贝到 Test 文件夹下,删除 /bin 和 /gen 目录
3) 在 Test 目录下创建一个名为 Android.mk的文件,内容如下:
LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_PACKAGE_NAME := Test include $(BUILD_PACKAGE)
4) 打开文件 device/mediatek/common/device.mk
将 Test 添加到 PRODUCT_PACKAGES 里面。
PRODUCT_PACKAGES += Test
5) 重新 build 整个工程
二、如何将无源码的 APK 预置进系统?
1) 在 packages/apps 下面以需要预置的 APK 名字创建文件夹,以预置一个名为Test的APK为例
2) 将 Test.apk 放到 packages/apps/Test 下面
3) 在 packages/apps/Test 下面创建文件 Android.mk,文件内容如下:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) # Module name should match apk name to be installed LOCAL_MODULE := Test LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(LOCAL_MODULE).apk LOCAL_MODULE_CLASS := APPS LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) LOCAL_PREBUILT_JNI_LIBS:= / @lib/armeabi/libtest.so / @lib/armeabi/libtest2.so LOCAL_CERTIFICATE := PRESIGNED include $(BUILD_PREBUILT) 若无so,删除LOCAL_PREBUILT_JNI_LIBS 若有so,使用LOCAL_PREBUILT_JNI_LIBS列出所有so的路径,不要忘记使用@。@标识符会将apk中的so抽离出来build进apk同级目录下的lib文件夹中 若apk支持不同cpu类型的so,针对so的部分的处理: Ifeq ($(TARGET_ARCH),arm) LOCAL_PREBUILT_JNI_LIBS := / @lib/armeabi-v7a/xxx.so/ @ lib/armeabi-v7a/xxxx.so else ifeq ($(TARGET_ARCH),x86) LOCAL_PREBUILT_JNI_LIBS := / @lib/x86/xxx.so else ifeq ($(TARGET_ARCH),arm64) LOCAL_PREBUILT_JNI_LIBS := / @lib/armeabi-v8a/xxx.so …
即将和TARGET_ARCH对应的so抽离出来
4) 打开文件 device/mediatek/common/device.mk
将 Test 添加到 PRODUCT_PACKAGES 里面。
PRODUCT_PACKAGES += Test
5) 重新 build 整个工程
注:如果App使用System Level的permission,需要預置到/system/priv-app底下 (原在/system/app)。
修改Android.mk,增加LOCAL_PRIVILEGED_MODULE := true,以声明app需要放在/system/priv-app下。
三、如何预置APK使得用户可以卸载,恢复出厂设置时不能恢复?
1) 在 packages/apps 下面以需要预置的 APK 名字创建文件夹,以预置一个名为Test的APK为例
2) 将 Test.apk 放到 packages/apps/Test 下面
3) 在 packages/apps/Test 下面创建文件 Android.mk,文件内容如下:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) # Module name should match apk name to be installed LOCAL_MODULE := Test LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(LOCAL_MODULE).apk LOCAL_MODULE_CLASS := APPS LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) # LOCAL_PRIVILEGED_MODULE := true LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS) LOCAL_CERTIFICATE := PRESIGNED include $(BUILD_PREBUILT)
4) 打开文件 device/mediatek/common/device.mk
将 Test 添加到 PRODUCT_PACKAGES 里面。
PRODUCT_PACKAGES += Test
5) 重新 build 整个工程
注意:这个比不能卸载的多了一句
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
四、如何预置APK使得用户可以卸载,并且恢复出厂设置时能够恢复?
1在 vendor/mediatek/proprietary/binary/3rd-party/free下面以需要预置的 APK 名字创建文件夹,以预置一个名为Test的APK为例
2 将Test.apk 放入vendor/mediatek/proprietary/binary/3rd-party/free/Test下面
3 在vendor/mediatek/proprietary/binary/3rd-party/free/Test 下面创建文件 Android.mk,文件内容如下
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) # Module name should match apk name to be installed LOCAL_MODULE := Test LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(LOCAL_MODULE).apk LOCAL_MODULE_CLASS := APPS LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) LOCAL_CERTIFICATE := PRESIGNED LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app include $(BUILD_PREBUILT)
2 打开文件device/mediatek/common/device.mk
将 Test 添加到 PRODUCT_PACKAGES 里面。
PRODUCT_PACKAGES += Test
3 然后重新build整个工程
请注意:
若需要apk作为32bit的apk运行,则需要在Android.mk中定义
LOCAL_MULTILIB :=
MTK 预置apk的更多相关文章
- MTK Android O1平台预置apk
在MTK Android O1平台预置apk为可卸载时.预置到旧的路径system/vendor/operator/app会编译报错,"You cannot install files to ...
- MTK Android 预置APK
[FAQ03038] 如何预置APK [DESCRIPTION]1, 如何将带源码的 APK 预置进系统?2, 如何将无源码的APK预置进系统?3, 如何预制APK使得用户可以卸载?4, 如何使得用户 ...
- Android 如何预置APK M
前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net ...
- Android预置Apk方法
这一套8.0过时了 需要修改pms代码 否则apk会被pms删除掉 因为工作需要,经常要开发和合入系统App,所以在此开篇作为收集和记录Android合入系统应用的方法,以备日后查阅. 一.预置apk ...
- mtk预装apk 方案公司内置预装apk
mtk预装apk 方案公司内置预装apk 韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha == MTK 预知第三方的APK 流程_yua ...
- Android 预置APK
1. 预置apk,使其不可卸载 第一步: 在 "/vendor/huawei/packages/apps" 目录下创建一个对应名称的文件夹. 第二步: 将 ...
- MTK平台Android项目APK预置方案
项目开发中,通常需要向系统中预置一些APK,这里简单介绍一下MTK平台预置APK的方法. 需要预置的apk可以放置在目录:vendor/mediate/${Project}/artifacts/out ...
- 预置第三方apk到MTK项目相关问题总结
目前5.0之后项目预置方式通用步骤为: 建立apk文件夹; 置目标apk到该文件夹下; 解压缩apk查看是否包含lib/文件夹(apk项目是否包含lib库文件); 在该文件夹下编写Androi ...
- 怎样预置Android 手机 APK
预制APK有下面4种情况: 1, 怎样将带源代码的 APK 预置进系统? 2, 怎样将无源代码的APK预置进系统? 3, 怎样预置APK使得用户能够卸载,恢复出厂设置时不能恢复? 4, 怎样预置APK ...
随机推荐
- 初试 spring web mvc
作为一名code需要了解更多的知识,编程方面的东西太多了,是个逐渐积累的过程.最近学习一下spring web mvc,写下我个人的一些经验. 1.准备jar包.spring mvc 已经到了版本4, ...
- linux源配置
阿里云源配置官网:http://mirrors.aliyun.com 1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS ...
- Ogre2.0 全新功能打造新3D引擎
不知当初是在那看到,说是Ogre2.0浪费了一个版本号,当时也没多想,以为没多大更新,一直到现在想做一个编辑器时,忽然想到要看下最新版本的更新,不看不知道,一看吓一跳,所以说,网络上的话少信,你不认识 ...
- python3 异步模块asyncio
yield方法引入, 这里存在的问题是,如果你想创建从0到1,000,000这样一个很大的序列,你不得不创建能容纳1,000,000个整数的列表. 但是当加入了生成器之后,你可以不用创建完整的序列,你 ...
- C艹重复输入小方法,for循环+while
#include <iostream> #include <cctype> #include <string> ; int main(int argc, char ...
- 【转】【WPF】WPF - MVVM - 如何将ComboBox的Selectchange事件binding到ViewModel
将所有的事件,属性,都映射到ViewModel中.好处多多,以后开发尽量用这种模式. 解决方法: 使用System.Windows.Interactivity.dll,添加该dll到项目引用 xmln ...
- Json转换工具类(基于google的Gson和阿里的fastjson)
在项目之中我们经常会涉及到字符串和各种对象的转换,为此特地整理了一下常用的转换方法 一.基于com.google.code.gson封装的json转换工具类 1. 在pom.xml文件里面引入gson ...
- e797. 显示JSlider的标记
The slider supports two levels of tick marks, major and minor. Typically, the minor tick-mark spacin ...
- Microsoft Jet 数据库引擎打不开文件,它已经被别的用户以独占方式打开,或没有查看数据的权限。
System.Data.OleDb.OleDbException (0x80004005): Microsoft Jet 数据库引擎打不开文件'D:\wwwroot\gonghouxie\wwwroo ...
- Cisco 3550配置DHCP中继代理
实验环境: 1.配置两个VLAN 10 和 VLAN 20 VLAN 10 IP地址设置:192.168.10.1 255.255.255.0 (192.168.10.1是VLAN 10网关 ...