安卓手机,怎么把用户安装的软件,设置成内置软件!已经ROOT!

安卓手机,怎么把用户安装的软件,设置成内置软件!已经ROOT!,第1张

用RE管理器,软件必须安装在手机内存,进入data,app选择软件移动到system里的app和carrier,一般都选择移动到carrier,还可以移动到另一个文件,opl,apps,apk里也可以放系统软件,要记得重启手机。

将apk放置系统目录:/vendor/companyname/

新建apk目录(apk为名)-->放入apk和Android.mk文件

Android.mk作用主要是解压apk包将lib库文件解压到 system/lib或system/lib64包下,拷贝到system/app或system/pri-app/ 下

第一种方式    Android.mk通过shell命令 mkdir -p  创建对应的文件夹,shell cp命令拷贝到对应的system/app或system/priv-app:

include $(CLEAR_VARS)

LOCAL_MODULE := TestDemo

$(shell mkdir -p $(PRODUCT_OUT)/system/priv-app/TestDemo)

$(shell cp $(LOCAL_PATH)/$(LOCAL_MODULE).apk $(PRODUCT_OUT)/system/priv-app/TestDemo/)

第二种方式:如果apk文件中有依赖的so文件库,可以解压将其拷贝到系统system/lib和system/lib64

Android.mk的内容主要就是解压拷贝:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := TestDemo

LOCAL_MODULE_CLASS := APPS

LOCAL_CERTIFICATE := PRESIGNED

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := TestDemo.apk #源文件

LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)

LOCAL_POST_INSTALL_CMD := $(hide) UNZIP_PATH=$(LOCAL_PATH)/$(LOCAL_MODULE)\

        unzip -o $(LOCAL_PATH)/$(LOCAL_SRC_FILES) -d $$UNZIP_PATH\

        mv $$UNZIP_PATH/lib/armeabi-v7a/ $$UNZIP_PATH/lib/arm\

        mv $$UNZIP_PATH/lib $(TARGET_OUT)/app/$(LOCAL_MODULE)/lib\

        rm $$UNZIP_PATH -rf

include $(BUILD_PREBUILT)

相同的方式建立文件夹,脚本文件和Android.mk文件:

Android.mk内容:

include $(CLEAR_VARS)

LOCAL_MODULE := test.sh    #脚本名称

LOCAL_MODULE_TAGS := optional

LOCAL_MODULE_PATH := $(TARGET_OUT)/bin #编译后生成位置

LOCAL_SRC_FILES := $(LOCAL_MODULE)  #源码文件

LOCAL_MODULE_CLASS := FAKE

如/vendor/companyname/mycompany.mk

PRODUCT_PACKAGES := \

                PrebuiltGmsCore \

                GmsCoreSetupPrebuilt \

                GoogleServicesFramework \

                GoogleLoginService \

                Phonesky \

                libDPN_SECURITY \

                 test.sh  \ #加入

然后在device/目录下找到本工mk文件,例如:device/softwinner/mycompany/mycompany.mk

加入

$(call inherit-product,vendor/companyname/mycompany.mk) #这样系统就可以找到这个mycompany.mk文件,将这些申明的apk编译进系统

基本步骤

新建文件夹(与安装包名字一致)

(1)文件内容:APK安装包

(2)文件内容:Android.mk

在Android 源码编译时必定执行的Makefile里添加自己的APK名字

PRODUCT_PACKAGES +=

SouGouInput

可以参考Android源码下APK的目录结构

Android.mk(以搜狗输入法为例,预装到 /system/priv-app)

最后修改为

因为报了下面的错误,所以添加了(LOCAL_BUILT_MODULE_STEM := package.apk)

正在使用的 Android.mk

###############################################################################

库很重要,apk会先在当前目录寻找库文件。如果没有库文件的话apk会奔溃掉。

关键的语法规则

(1)决定了其编译后的在ROM中的安装位置

(2)如果不设置或者设置为false,安装位置为system/app;如果设置为true,安装位置为system/priv-app。

(1)预置apk到/data/app中,即让预置的apk可以卸载。

(2)在5.0 6.0之后的系统中,这样配置即可实现这个功能。

如果以后对应的APK要进行在线升级,则需要把这个加上。编译时不会进行预优化,保证了APK的完整性。

(1)用于加载库

(2)参考

注意:

这里没有测试过安装到/data/app这个目录。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存