- 浏览: 212433 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (196)
- android (153)
- sqlite (1)
- java (3)
- os (4)
- tools (4)
- ResolveInfo 转 packageinf 取信息 (1)
- multimedia (2)
- fastboot (1)
- create user in samba (0)
- android qcn (0)
- windows (0)
- net (2)
- linux (1)
- git (0)
- proguard (0)
- android cpu (1)
- android gts (1)
- MySql (1)
- c/c++ (0)
- network (1)
- python (3)
- AI (1)
- Ultroedit (1)
- HarmonyOS NEXT (0)
MTK
第一情况、如何将带源码的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 整个工程
Second、如何将无源码的 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下。
Third、如何预置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)
4-th、如何预置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 :=32
From:http://www.android100.org/html/201506/17/154721.html
第一情况、如何将带源码的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 整个工程
Second、如何将无源码的 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下。
Third、如何预置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)
4-th、如何预置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 :=32
From:http://www.android100.org/html/201506/17/154721.html
发表评论
-
Android SnappyDB
2018-05-15 11:23 893https://blog.csdn.net/qq_214305 ... -
使用UncaughtExceptionHandler保存全局异常(转)
2018-05-07 15:04 596From: https://blog.csdn.net/dre ... -
android udp
2018-04-10 19:47 561Android之Socket的基于UDP传输 接收方创建步骤: ... -
android DownloadManager
2018-04-10 12:52 545From: https://www.jianshu.com/p ... -
Snackbar 可以交互的Toast
2018-04-08 21:44 722Snackbar 是 Android design sup ... -
android 操作串口
2018-03-19 18:20 596http://blog.csdn.net/akunainian ... -
proguard对 android-support-v4.jar 的配置
2018-03-16 15:32 685-libraryjars libs/android-sup ... -
apk 多个dex
2018-03-16 10:05 965android studio 配置应用生成多个dex ... -
ddmlib 解决android n file explorer 为空问题
2018-03-16 09:27 880百度云:http://pan.baidu.com/s/1sl4 ... -
android 代码混淆
2018-03-15 08:38 1009打开混淆开关 Android.mk ... -
menu item 显示icon
2018-03-07 09:32 643@Override public boolean onMenu ... -
ubuntu 脚本切换root用户,并执行其它脚本
2018-03-05 09:58 0#!/bin/bash expect -c" ... -
DrawerLayout 滑动侧边栏
2018-03-01 10:42 0// TODO -
jack-server 多用户编译问题
2018-02-27 10:44 13983),需要同时修改 $HOME/.jack-server/co ... -
更新eclipse 遇到两个问题 Oxygen.2 Release (4.7.2)
2018-02-26 14:28 12111. the file dx.jar was not load ... -
监听系统开关变化
2018-02-05 14:02 798// 转屏开关 /** * Content obse ... -
android 8.0 模块编译命令
2018-02-02 14:42 1165Invoke ". build/envsetup.s ... -
svn checkout 忽略某个文件夹
2018-01-26 11:14 1347android源码更新时, frameworks\compil ... -
eclipse jni
2018-01-19 16:10 489试过,可以运行 http://blog.csdn.net/sb ... -
opencv for android
2018-01-19 14:37 412http://blog.csdn.net/sbsujjbcy/ ...
相关推荐
1024_v5.0.apk
"Android 5.0 odex合并apk"这个过程主要是为了对系统进行修改或定制时,将Odex文件与Apk应用进行整合。这个操作通常由开发者或者 ROM 制作者进行,目的是为了让修改后的系统或应用更加精简,减少不必要的文件,便于...
Android 5.0 源码
这个tcpdump版本是可以在Android 5.0设备上使用的。
深入解析Android 5.0系统 带目录 扫描版本 超棒的资料
资源名称:深入解析Android 5.0系统内容简介:《深入解析Android 5.0系统》详细剖析了最新Android 5.0 系统主要框架的原理和具体实现。本书共24章,覆盖了Android 5.0 系统中、下层重要的模块,对于每个模块都详细...
**Android-21 Android SDK Platforms 21 (Android 5.0) 知识点详解** Android 5.0(代号Lollipop)是Google在2014年推出的一个重大更新,它对Android系统进行了许多重要的改进和优化,不仅提升了用户体验,也增强了...
9. **性能优化**:Android 5.0还对JNI调用的性能进行了优化,比如减少方法调用开销,提高了JNI与Java之间的数据交换速度。 总之,"Android 5.0 JNI调用"示例旨在帮助开发者理解并掌握在新版本Android中正确、高效地...
《Android 5.0 深入解析:框架代码与应用开发》 Android 5.0,代号“棒棒糖”(Lollipop),是谷歌发布的一个重要版本更新,为移动设备带来了诸多新特性和性能优化。这次更新不仅在用户界面(UI)上进行了大幅度...
下面将详细介绍SwipeRefreshLayout的工作原理、使用方法以及与Android 5.0系统的集成。 ### SwipeRefreshLayout概述 SwipeRefreshLayout是一个容器布局,它允许其子视图支持下拉刷新。当用户在界面上方滑动时,...
根据提供的信息,我们可以推断这本书《深入解析Android 5.0系统》由刘超撰写,主要聚焦于Android 5.0系统的深入分析和技术探讨。由于给出的部分内容并未包含实际的技术细节,下面将围绕该书可能涉及的核心技术点进行...
在早期的Android版本中,开发者可以通过`ActivityManager`的`getRunningAppProcesses()`方法获取当前系统中正在运行的应用进程信息。然而,从Android 5.0(API级别21)开始,谷歌为了提升系统的安全性和性能,对这一...
根据提供的文件信息,我们可以深入探讨Android 5.0(代号Lollipop)的相关知识点,包括其主要特性、改进以及对开发者和用户的意义。 ### Android 5.0 Lollipop概述 Android 5.0 Lollipop是Google于2014年发布的...
在Android开发领域,Android 5.0(代号Lollipop)是一个重要的里程碑版本,它引入了许多新特性、改进和优化,极大地提升了用户体验和开发者的工作效率。这个名为"Android 5.0 samples"的压缩包提供了API Level 21的...
**Android 5.0 (API 21) SDK Platforms 深度解析** Android 5.0,代号“Lollipop”,是Google于2014年推出的一个重大更新,带来了许多新特性和性能改进。这个SDK平台包是开发者进行Android应用开发的重要工具,它...
Android 5.0 录屏和截屏Android 5.0 录屏和截屏Android 5.0 录屏和截屏Android 5.0 录屏和截屏Android 5.0 录屏和截屏Android 5.0 录屏和截屏
182147174068072【知行】潮玩宇宙5.0-5.0.apk
从谷歌官网下载的的帮助文档,现在国内不容易访问谷歌, 所以共享出来,利人利己....最好是用火狐浏览器,然后在浏览器设置脱机工作,...Android5.0帮助文档Part5(共5个压缩包259M) docs.zip (35.7M)(第5个,通过这个文件解压)
从谷歌官网下载的的帮助文档,现在国内不容易访问谷歌, 所以共享出来,利人利己....最好是用火狐浏览器,然后在浏览器设置脱机工作,...Android5.0帮助文档Part5(共5个压缩包259M) docs.zip (35.7M)(第5个,通过这个文件解压)