如何预置Android 手机 APK

如何预置Android 手机 APK,第1张

预制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) 打开文件 build/target/product/${Project}.mk (其中 ${Project} 表示工程名)

将 Test 添加到 PRODUCT_PACKAGES 里面。

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_CERTIFICATE := PRESIGNED

include $(BUILD_PREBUILT)

4) 打开文件 build/target/product/${Project}.mk (其中 ${Project} 表示工程名)

将 Test 添加到 PRODUCT_PACKAGES 里面。

5) 将从Test.apk解压出来的 so库拷贝到alps/vendor/mediatek/${Project}/artifacts/out/target/product/${Project}/system/lib/目录下,若无 so 库,则去掉此步;

6) 重新 build 整个工程

注:Google在KK上修改protection Level为System的permission控管机制

如果App使用System Level的permission,需要预置到/system/priv-app底下 (原在/system/app)。

举例来讲:

关于获取副SD卡的写入权限的案例,App需要在AndroidManifest.xml宣告WRITE_MEDIA_STORAGE permission获取副卡的写入权限

\

(Ref: KK/alps/frameworks/base/cZ喎�"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcmUvcmVzL0FuZHJvaWRNYW5pZmVzdC54bWwpPGJyPgrS0daqYW5kcm9pZC5wZXJtaXNzaW9uLldSSVRFX01FRElBX1NUT1JBR0XK9NPaU3lzdGVtT3JTaWduYXR1cmUgbGV2ZWy1xHBlcm1pc3Npb26jrLao0uXI58/Co7o8YnI+CjwvcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20140723/2014072309052360.bmp" alt="\">

KK上,您需要采用以下方法,获取该permission:

修改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_CERTIFICATE := PRESIGNED

LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)

include $(BUILD_PREBUILT)

4) 打开文件 build/target/product/${Project}.mk (其中 ${Project} 表示工程名)

将 Test 添加到 PRODUCT_PACKAGES 里面。

5) 重新 build 整个工程

注意:这个比不能卸载的多了一句

LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)

四、如何预置APK使得用户可以卸载,并且恢复出厂设置时能够恢复?

方法一:预置apk到system/vendor/operator下面

具体做法如下:

在packages/apps下面以需要预置的 APK 名字创建文件夹,以预置一个名为Test的APK为例:

1) 将Test.apk 放到 packages/apps/Test 下面;

2) 在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_CERTIFICATE := PRESIGNED

LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app

include $(BUILD_PREBUILT)

3) 打开文件 build/target/product/${Project}.mk (其中 ${Project} 表示工程名), 将 Test 添加到 PRODUCT_PACKAGES 里面

4) 重新 build 整个工程

1、电脑安装线刷宝刷机工具,手机打开USB连接电脑,线刷宝会自动安装手机驱动;

2、同时确保你手机打开了可发者模式的USB调试模式、

3、到ROM市场找到你手机型号的Rom包,选择自己想要刷入的ROM包之后,点击下载即可。

4、点击下载之后出现以下界面,然后等待ROM包下载好

5、下载好ROM包之后,会出现“一键刷机”的按钮

6、最后点击一键刷机,刷机前可以选择是否备份系统和相关资料,之后点下一步即可进入自动刷机流程


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7943169.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存