首先把APK拷贝到特定的目录下面 把所有apk放在 pre_install 文件夹下,然后在同级的android.mk 文件夹下面增加下面代码

 

  • #################################################  
  • $(shell mkdir -p $(TARGET_OUT)/pre_install)  
  • $(shell cp -r $(LOCAL_PATH)/pre_install/*apk $(TARGET_OUT)/pre_install/)  
  • #################################################

 

二  创建copy_apps.sh 文件,此文件作用是拷贝pre_install目录下面apk到data/app下面       因为data/app下面的apk文件时可卸载的apk,这就完成预制的apk是可卸载的。       我们看下此copy_apps.sh 文件的内容如下:
  • #!/system/bin/sh  
  • sleep 10  
  • if [ ! -f /data/app/did ]; then  
  •     chmod 777 /data/app/  
  •     cp /system/pre_install/*apk /data/app/  
  •     echo 1 > /data/app/did  
  •     chmod 775 /data/app/*apk  
  • fi  


这sh文件内容就是拷贝apk到data/app下面
 

  • ## add by ben for third app  
  • #################################################  
  • COPY_APPS_SH := copy_apps.sh  
  • $(shell mkdir -p $(TARGET_OUT)/vendor/SPECcfg)  
  • $(shell cp -r $(LOCAL_PATH)/$(COPY_APPS_SH) $(TARGET_OUT)/vendor/speccfg/$(COPY_APPS_SH))  
  • $(shell chmod 755 $(TARGET_OUT)/vendor/speccfg/$(COPY_APPS_SH))  

 

在此目录的mk文件里可以看到如上。        最后在device\qcom\msm8909\init.target.rc文件里添加所要启动的服务
  • #add for pre install app  
  • service copy_apps /system/bin/sh /system/vendor/speccfg/copy_apps.sh  
  •    class late_start  
  •    user root  
  •    group root  
  •    oneshot  
 

如果是Android 5.0的话到此结束;


由于Android 6.0 权限做了很多的限制; 所以还需要给与写入的执行的权限;

 

device\qcom\sepolicy\common\ app.te  增加下面这句
allow appdomain apk_data_file:dir {read ioctl};
  device\qcom\sepolicy\common\ init_shell.te 增加黄色底部分 # core-ctl
allow qti_init_shell cgroup:dir add_name;
allow qti_init_shell apk_data_file:dir { write setattr read add_name open create };
allow qti_init_shell apk_data_file:file { write read create setattr };
      如上就能完成所有的操作。

更多相关文章

  1. ubuntu 9.04使用adb调试Android方法
  2. cordova build android提示No installed build tools found的解
  3. Android轻量级开源缓存框架——ASimpleCache(ACache)源码分析
  4. Android(安卓)Studio 图片资源存放位置 + drawable文件夹的创建
  5. [android] 构建menu的一种方法
  6. Android(安卓)适配器Adapter的学习
  7. Android(安卓)开发笔记之界面开发
  8. Spatialite for Android编译及测试
  9. 如何解压system.img

随机推荐

  1. Android(安卓)Zxing修改为竖屏扫描,和连续
  2. Android代码混淆打包
  3. Android安装卸载程序具体操作方法解析
  4. Android(安卓)JNI 获取应用程序签名
  5. android 编译单个模块
  6. android 5.1禁止休眠
  7. android之发送短信的方法研究
  8. android触摸屏坐标手工校准/调整成功
  9. ImageView的scaletype属性
  10. Android(安卓)获取当前日期 时间