android展讯6820内置可卸载可恢复的apk应用
来源:互联网 发布:网络销售好不好 编辑:程序博客网 时间:2024/06/06 08:54
内置应用并不复杂,我们都知道手机中有两个目录存放应用的,一个是/system/app 目录,这里面的应用是用户不能卸载的,一个是 /data/app目录,这里的应用是可以卸载的。处理的方法就是在代码中把要内置的应用复制到对应目录就可以了,有lib库的话也别忘记复制到/system/lib目录下,否则应用可能无法使用。前段时间遇到一个需求,要求内置的应用用户可以卸载,但是恢复出厂设置时又可以还原。这个就不是仅仅一个复制操作就能够搞定的了。
展讯代码中默认就内置了几个apk,放在packages\apps\Prebuilt_apps目录下,我们也可以把所有内置的应用都放置在这里,便于管理。
首先在packages\apps\Prebuilt_apps目录下新建4个文件夹。systemapp里面放置不可卸载的应用,dataapp里面放置可以卸载的应用,preloadapp里面放置可卸载又可恢复的应用,lib目录放的是apk中解压出来的so文件。在当前文件的Android.mk文件(如果没有就新建一个)中,写入如下代码。
[plain] view plaincopy
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
#创建文件夹的命令
LOCAL_POST_PROCESS_COMMAND := $(shell mkdir $(TARGET_OUT)/app)
LOCAL_POST_PROCESS_COMMAND := $(shell mkdir $(TARGET_OUT_DATA)/app)
LOCAL_POST_PROCESS_COMMAND := $(shell mkdir $(TARGET_OUT)/preloadapp)
LOCAL_POST_PROCESS_COMMAND := $(shell mkdir $(TARGET_OUT)/lib)
#复制所有apk文件到system/app目录下
PRODUCT_COPY_FILES += \
$(call find-copy-subdir-files,*.apk,$(LOCAL_PATH)/systemapp,system/app)
#复制所有apk文件到data/app目录下
PRODUCT_COPY_FILES += \
$(call find-copy-subdir-files,*.apk,$(LOCAL_PATH)/dataapp,data/app)
#复制所有apk文件到system/preloadapp目录下
PRODUCT_COPY_FILES += \
$(call find-copy-subdir-files,*.apk,$(LOCAL_PATH)/preloadapp,system/preloadapp)
#复制所有so文件到system/lib目录下
PRODUCT_COPY_FILES += \
$(call find-copy-subdir-files,*.so,$(LOCAL_PATH)/lib,system/lib)
现在要内置那种应用就直接放到相应的文件夹中就可以了,是不是很方便呀。
前面两种apk基本上这样就可以结束了。要实现preloadapp中的可卸载又可恢复还得改点东西
在\3rdparty\tools\tools-binary\special\tools目录下新建文件preloadapp.sh 代码如下
[plain] view plaincopy
#!/system/xbin/busybox sh
PRELOAD_DEST=/data/app
PRELOAD_FLAG=${PRELOAD_DEST}/.preloadapp
PRELOAD_SOURCE=/system/preloadapp
if [ ! -d ${PRELOAD_DEST} ]
then
mkdir -p ${PRELOAD_DEST}
fi
if [ ! -f ${PRELOAD_FLAG} ]
then
files=$(ls ${PRELOAD_SOURCE}/)
for i in ${files};do
cat ${PRELOAD_SOURCE}/${i} > ${PRELOAD_DEST}/${i}
done
echo "abcd" > ${PRELOAD_FLAG}
fi
大概得意思就是一大堆复制的动作了。
然后在\3rdparty\tools\tools-binary\special\build.sh里面加上一句
[plain] view plaincopy
tools/preloadapp.sh:/system/xbin
最后在\3rdparty\tools\tools-binary\special\init.3rdparty.rc
[plain] view plaincopy
service boot_complete /system/xbin/boot_must_complete.sh
oneshot
下面增加
[plain] view plaincopy
#CaineZhu add 20130219
#copy the preloadapp to data/app
service preloadapp /system/xbin/preloadapp.sh
oneshot
使得恢复出厂设置的时候会再次把apk复制到data下面。
这样就可以实现某些apk可以被卸载但恢复出厂设置又能被恢复了。
展讯代码中默认就内置了几个apk,放在packages\apps\Prebuilt_apps目录下,我们也可以把所有内置的应用都放置在这里,便于管理。
首先在packages\apps\Prebuilt_apps目录下新建4个文件夹。systemapp里面放置不可卸载的应用,dataapp里面放置可以卸载的应用,preloadapp里面放置可卸载又可恢复的应用,lib目录放的是apk中解压出来的so文件。在当前文件的Android.mk文件(如果没有就新建一个)中,写入如下代码。
[plain] view plaincopy
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
#创建文件夹的命令
LOCAL_POST_PROCESS_COMMAND := $(shell mkdir $(TARGET_OUT)/app)
LOCAL_POST_PROCESS_COMMAND := $(shell mkdir $(TARGET_OUT_DATA)/app)
LOCAL_POST_PROCESS_COMMAND := $(shell mkdir $(TARGET_OUT)/preloadapp)
LOCAL_POST_PROCESS_COMMAND := $(shell mkdir $(TARGET_OUT)/lib)
#复制所有apk文件到system/app目录下
PRODUCT_COPY_FILES += \
$(call find-copy-subdir-files,*.apk,$(LOCAL_PATH)/systemapp,system/app)
#复制所有apk文件到data/app目录下
PRODUCT_COPY_FILES += \
$(call find-copy-subdir-files,*.apk,$(LOCAL_PATH)/dataapp,data/app)
#复制所有apk文件到system/preloadapp目录下
PRODUCT_COPY_FILES += \
$(call find-copy-subdir-files,*.apk,$(LOCAL_PATH)/preloadapp,system/preloadapp)
#复制所有so文件到system/lib目录下
PRODUCT_COPY_FILES += \
$(call find-copy-subdir-files,*.so,$(LOCAL_PATH)/lib,system/lib)
现在要内置那种应用就直接放到相应的文件夹中就可以了,是不是很方便呀。
前面两种apk基本上这样就可以结束了。要实现preloadapp中的可卸载又可恢复还得改点东西
在\3rdparty\tools\tools-binary\special\tools目录下新建文件preloadapp.sh 代码如下
[plain] view plaincopy
#!/system/xbin/busybox sh
PRELOAD_DEST=/data/app
PRELOAD_FLAG=${PRELOAD_DEST}/.preloadapp
PRELOAD_SOURCE=/system/preloadapp
if [ ! -d ${PRELOAD_DEST} ]
then
mkdir -p ${PRELOAD_DEST}
fi
if [ ! -f ${PRELOAD_FLAG} ]
then
files=$(ls ${PRELOAD_SOURCE}/)
for i in ${files};do
cat ${PRELOAD_SOURCE}/${i} > ${PRELOAD_DEST}/${i}
done
echo "abcd" > ${PRELOAD_FLAG}
fi
大概得意思就是一大堆复制的动作了。
然后在\3rdparty\tools\tools-binary\special\build.sh里面加上一句
[plain] view plaincopy
tools/preloadapp.sh:/system/xbin
最后在\3rdparty\tools\tools-binary\special\init.3rdparty.rc
[plain] view plaincopy
service boot_complete /system/xbin/boot_must_complete.sh
oneshot
下面增加
[plain] view plaincopy
#CaineZhu add 20130219
#copy the preloadapp to data/app
service preloadapp /system/xbin/preloadapp.sh
oneshot
使得恢复出厂设置的时候会再次把apk复制到data下面。
这样就可以实现某些apk可以被卸载但恢复出厂设置又能被恢复了。
- android展讯6820内置可卸载可恢复的apk应用
- android展讯6820内置可卸载可恢复的apk应用
- android展讯6820内置可卸载可恢复的apk应用
- android预装内置可卸载的应用
- Android 高通代码预制apk可卸载,恢复出厂设置apk可恢复 Android M 6.0
- Android预装可卸载apk方法 卸载后恢复出厂设置可恢复
- Android 高通代码预制apk可卸载,恢复出厂设置apk可恢复
- Android高通预置apk可卸载,恢复出厂设置可恢复
- 卸载Android的apk应用
- Android预安装内置应用可卸载实现
- Android系统之路(初识MTK) ------ 内置三方apk到Rom可移动/可卸载
- android 内置apk 卸载后开机自动恢复的实现
- android adb 卸载内置系统apk方法
- android启动:app_process实现恢复出厂设置可恢复的apk预置
- Android apk的安装、卸载
- Android 对于第三方预置可卸载的apk,如何客制化其在主题中的资源?
- MTK预置可卸载的应用
- 如何在ROM中集成可卸载的APK
- SEO优化案例
- PPP协议解析一
- ##(两个井号)和#(一个井号)都是什么意思 《转》
- grails 实战项目
- css3阴影属性box-shadow
- android展讯6820内置可卸载可恢复的apk应用
- poj 2773 Happy 2006
- Android:onNewIntent的使用
- 免费文字转语音的网站
- IE下模拟css3中的box-shadow(阴影)
- springMVC入门(三)
- maven入门
- 《TCPIP详解卷一》第五章(RARP逆地址解析协议)学习笔记
- 拖拽文件上传