【赚分贴】android怎么预置apk

lose_forest 2011-08-22 04:15:42
我手头有个apk文件,准备预置到系统中,用户是不能删除的。
这个apk通过push命令不能运行,只能通过install命令安装才能运行。
...全文
897 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
陈家沟小民 2013-04-17
  • 打赏
  • 举报
回复
push的话需要push到对应目录并且重新开关机才会生效
Amos80 2013-03-14
  • 打赏
  • 举报
回复
终于找到了,解决了困扰我很久的问题,不但要把apk放到system/app下,如果apk中引用了so库的话,还要把so文件放到system/lib下面,不然那个程序运行不起来,感谢这份帖子。
念茜 2011-08-23
  • 打赏
  • 举报
回复
你可以在Application Manager里看到你所预装的app的大小,如果和adb install进去的大小不一样,就是少东西了。
这样方便自查
念茜 2011-08-23
  • 打赏
  • 举报
回复
我是这么实现系统预装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掉相关资源文件达到删除的目的。
hmg25 2011-08-23
  • 打赏
  • 举报
回复
修改Android.mk将apk文件复制到system/app下,将解包出来的lib库,放到system/lib下就行了
dinko321 2011-08-23
  • 打赏
  • 举报
回复
mark备用
七夜_雪 2011-08-23
  • 打赏
  • 举报
回复
恩,没有源码直接预装的情况妞妞已经说的很清楚了,如果你是源码开发(android源码)的话,比这个应该简单多了。直接把它放在out/target/product/generic/system/app目录(前提是你已经编过了一次)下,然后make snod就会将这个apk打包到system.img中,如果是模拟器开发,就用生成的那几个img替换掉SDK里面相对应版本的img就行了
wangzzh29 2011-08-23
  • 打赏
  • 举报
回复
把apk放到out/target/product/***/system/app目录下就可以了.
wl327065681 2011-08-23
  • 打赏
  • 举报
回复
预置apk没那么复杂的,只需要把apk放到out/target/product/***/system/app目录下就可以了,该目录下的文件,在系统启动过程中,会通过packageManager进行安装的,就和你用install安装的效果一样。
如果是做手机的话,就需要些一些makefile在编译的过程中,把你的apk拷贝到上面提高的目录下,这样就不用每次出版本的时候,都需要再拷贝一次了。
七夜_雪 2011-08-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lose_forest 的回复:]

将apk内置在system/app下
将其所需lib放在system/lib下
已完成~!



敢问 修改Android.mk是怎么处理了?我今天试了编译不通过!~
[/Quote]
你要改什么?
lose_forest 2011-08-22
  • 打赏
  • 举报
回复
将apk内置在system/app下
将其所需lib放在system/lib下
已完成~!



敢问 修改Android.mk是怎么处理了?我今天试了编译不通过!~
七夜_雪 2011-08-22
  • 打赏
  • 举报
回复
我说的不是应用的code哦,我是的是android的源码啊
lose_forest 2011-08-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 louiswangbing 的回复:]
引用 2 楼 lose_forest 的回复:

引用 1 楼 fontlose 的回复:
push只是下载文件到设备 install才是安装Apk

你要用户不能删除可以把apk放到system/app文件下,再重启一次。

system/app
系统自带的应用程序,无法删除

data/app
用户程序安装的目录,有删除权限。

能不能将这apk直接打包到system……
[/Quote]
第三方应用 ,没有code


[Quote=引用 3 楼 fff32165 的回复:]

如果是install预置进去的话,在应用程序管理一样可以删除;
想删除不了,只有修改代码
不知道你们添加apk是怎么添加的,我们这直接在andorid根目录下新建了一个文件夹,直接把需要预置的apk放进去,再修改一下Android.mk文件就OK了

[/Quote]

敢不敢细说下,
我搜了下 我的问题同http://topic.csdn.net/u/20100927/16/041313DD-5ACB-4399-8E43-E21251E1F7A0.html#r_68708650
七夜_雪 2011-08-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lose_forest 的回复:]

引用 1 楼 fontlose 的回复:
push只是下载文件到设备 install才是安装Apk

你要用户不能删除可以把apk放到system/app文件下,再重启一次。

system/app
系统自带的应用程序,无法删除

data/app
用户程序安装的目录,有删除权限。

能不能将这apk直接打包到system.img中?
[/Quote]
可以啊,有源码的话,直接把它放在out/target/product/generic/system/app目录下,然后make snod就行了啊
fontlose 2011-08-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lose_forest 的回复:]
引用 1 楼 fontlose 的回复:
push只是下载文件到设备 install才是安装Apk

你要用户不能删除可以把apk放到system/app文件下,再重启一次。

system/app
系统自带的应用程序,无法删除

data/app
用户程序安装的目录,有删除权限。

能不能将这apk直接打包到system.img中?
[/Quote]

下载root工具,root设备一下,如果文件系统是只读的还要remount一次设成可读写的文件系统。



六百万 2011-08-22
  • 打赏
  • 举报
回复
如果是install预置进去的话,在应用程序管理一样可以删除;
想删除不了,只有修改代码
不知道你们添加apk是怎么添加的,我们这直接在andorid根目录下新建了一个文件夹,直接把需要预置的apk放进去,再修改一下Android.mk文件就OK了
lose_forest 2011-08-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fontlose 的回复:]
push只是下载文件到设备 install才是安装Apk

你要用户不能删除可以把apk放到system/app文件下,再重启一次。

system/app
系统自带的应用程序,无法删除

data/app
用户程序安装的目录,有删除权限。
[/Quote]
能不能将这apk直接打包到system.img中?
fontlose 2011-08-22
  • 打赏
  • 举报
回复
push只是下载文件到设备 install才是安装Apk

你要用户不能删除可以把apk放到system/app文件下,再重启一次。

system/app
系统自带的应用程序,无法删除

data/app
用户程序安装的目录,有删除权限。

80,359

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧