【赚分贴】android如何预置apk
【赚分贴】android怎么预置apk
我手头有个apk文件,准备预置到系统中,用户是不能删除的。
这个apk通过push命令不能运行,只能通过install命令安装才能运行。
------解决方案--------------------
push只是下载文件到设备 install才是安装Apk
你要用户不能删除可以把apk放到system/app文件下,再重启一次。
system/app
系统自带的应用程序,无法删除
data/app
用户程序安装的目录,有删除权限。
------解决方案--------------------
如果是install预置进去的话,在应用程序管理一样可以删除;
想删除不了,只有修改代码
不知道你们添加apk是怎么添加的,我们这直接在andorid根目录下新建了一个文件夹,直接把需要预置的apk放进去,再修改一下Android.mk文件就OK了
------解决方案--------------------
下载root工具,root设备一下,如果文件系统是只读的还要remount一次设成可读写的文件系统。
------解决方案--------------------
可以啊,有源码的话,直接把它放在out/target/product/generic/system/app目录下,然后make snod就行了啊
------解决方案--------------------
修改Android.mk将apk文件复制到system/app下,将解包出来的lib库,放到system/lib下就行了
------解决方案--------------------
我是这么实现系统预装apk的:
你先adb install 之后,adb shell 进去看看在/system/app、/system/lib、/data等下都多了什么,把它们全都pull出来。我记得会有classes.dex一系列文件,也要pull到本地,不仅仅是.apk和.so 的,也会出现拆分apk-1 和apk-2情况。总之要pull 全。
不用修改Android.mk,init.rc末尾添加一个脚本(通常系统开发都会添加的),把pull出来的资源全部放入烧写包, 在系统启动时增加cp 这些资源文件 到 你的系统文件目录 ,别忘记chmod 。就是实现在启动系统的时候,自己copy 一下。
这样就实现预装了,而且用户无法卸载。只能root 后adb shell 进来rm掉相关资源文件达到删除的目的。
------解决方案--------------------
你可以在Application Manager里看到你所预装的app的大小,如果和adb install进去的大小不一样,就是少东西了。
这样方便自查
------解决方案--------------------
恩,没有源码直接预装的情况妞妞已经说的很清楚了,如果你是源码开发(android源码)的话,比这个应该简单多了。直接把它放在out/target/product/generic/system/app目录(前提是你已经编过了一次)下,然后make snod就会将这个apk打包到system.img中,如果是模拟器开发,就用生成的那几个img替换掉SDK里面相对应版本的img就行了
------解决方案--------------------
预置apk没那么复杂的,只需要把apk放到out/target/product/***/system/app目录下就可以了,该目录下的文件,在系统启动过程中,会通过packageManager进行安装的,就和你用install安装的效果一样。
如果是做手机的话,就需要些一些makefile在编译的过程中,把你的apk拷贝到上面提高的目录下,这样就不用每次出版本的时候,都需要再拷贝一次了。
------解决方案--------------------
把apk放到out/target/product/***/system/app目录下就可以了.
我手头有个apk文件,准备预置到系统中,用户是不能删除的。
这个apk通过push命令不能运行,只能通过install命令安装才能运行。
------解决方案--------------------
push只是下载文件到设备 install才是安装Apk
你要用户不能删除可以把apk放到system/app文件下,再重启一次。
system/app
系统自带的应用程序,无法删除
data/app
用户程序安装的目录,有删除权限。
------解决方案--------------------
如果是install预置进去的话,在应用程序管理一样可以删除;
想删除不了,只有修改代码
不知道你们添加apk是怎么添加的,我们这直接在andorid根目录下新建了一个文件夹,直接把需要预置的apk放进去,再修改一下Android.mk文件就OK了
------解决方案--------------------
下载root工具,root设备一下,如果文件系统是只读的还要remount一次设成可读写的文件系统。
------解决方案--------------------
可以啊,有源码的话,直接把它放在out/target/product/generic/system/app目录下,然后make snod就行了啊
------解决方案--------------------
修改Android.mk将apk文件复制到system/app下,将解包出来的lib库,放到system/lib下就行了
------解决方案--------------------
我是这么实现系统预装apk的:
你先adb install 之后,adb shell 进去看看在/system/app、/system/lib、/data等下都多了什么,把它们全都pull出来。我记得会有classes.dex一系列文件,也要pull到本地,不仅仅是.apk和.so 的,也会出现拆分apk-1 和apk-2情况。总之要pull 全。
不用修改Android.mk,init.rc末尾添加一个脚本(通常系统开发都会添加的),把pull出来的资源全部放入烧写包, 在系统启动时增加cp 这些资源文件 到 你的系统文件目录 ,别忘记chmod 。就是实现在启动系统的时候,自己copy 一下。
这样就实现预装了,而且用户无法卸载。只能root 后adb shell 进来rm掉相关资源文件达到删除的目的。
------解决方案--------------------
你可以在Application Manager里看到你所预装的app的大小,如果和adb install进去的大小不一样,就是少东西了。
这样方便自查
------解决方案--------------------
恩,没有源码直接预装的情况妞妞已经说的很清楚了,如果你是源码开发(android源码)的话,比这个应该简单多了。直接把它放在out/target/product/generic/system/app目录(前提是你已经编过了一次)下,然后make snod就会将这个apk打包到system.img中,如果是模拟器开发,就用生成的那几个img替换掉SDK里面相对应版本的img就行了
------解决方案--------------------
预置apk没那么复杂的,只需要把apk放到out/target/product/***/system/app目录下就可以了,该目录下的文件,在系统启动过程中,会通过packageManager进行安装的,就和你用install安装的效果一样。
如果是做手机的话,就需要些一些makefile在编译的过程中,把你的apk拷贝到上面提高的目录下,这样就不用每次出版本的时候,都需要再拷贝一次了。
------解决方案--------------------
把apk放到out/target/product/***/system/app目录下就可以了.