Android安装系统App(adb push实现)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hexingen/article/details/76736708

备注:硬件或者手机上切勿装,360软件容易接管adb,导致push出现问题。

添加程序为系统级别应用,需要通过命令行 adb push到/system/app下。

adb push 运用程序案例操作


前期工作

  1. 系统签名后的程序:

    运用程序名:

     launcherApp.apk
  2. 设备通过USB链接电脑。

adb命令行,详细操作

注意点

若是没有配置adb的环境,需要在sdk下的platform-tools文件夹下运行cmd。

若不是在platform -tools文件夹下,运行adb命令行,会提示如下错误:

这里写图片描述

1. 将apk push到sdcard中

adb push launcherApp.apk/sdcard/

以上是launcherApp.apk放到同一个文件夹下的命令行。

若是apk和adb是在不同文件夹,需要将apk拖动到命令行中

adb push C:\Users\fhu7\Desktop\signapk.jar\launcherApp.apk /sdcard/

执行完命令行中后,会显示结果:

C:\Users\fhu7\Desktop\signapk.jar\launcherApp.apk: 1 file pushed. 6.9 MB/s (9021168 bytes in 1.247s)

这里写图片描述

2. 运行 adb shell:

输入以下命令:

F:\AndroidStudio2.3.3\sdk\platform-tools>adb shell

执行完后,会出现:

shell@rk3288:/ $

这里写图片描述

3. 切换到root用户

输入以下命令:

shell@rk3288:/ $su

这里写图片描述

注意点:系统需要root权限。

4. 获取分区读写

一定要注意空格,以下是输入错误的命令行,且执行报错:

shell@rk3288:/ # mount-o remount,rw -t yaffs2/dev/block/mtdblock3/system
sh: mount-o: not found
127|shell@rk3288:/ # mount -o remount,rw -t yaffs2/dev/block/mtdblock3/system
Usage: mount [-r] [-w] [-o options] [-t type] device directory
1|shell@rk3288:/ # mount -o remount,rw -t yaffs2 /dev/block/mtdblock3/system
Usage: mount [-r] [-w] [-o options] [-t type] device directory
1|shell@rk3288:/ # mount -o remount,rw -t yaffs2 /dev/block/mtdblock3/system
Usage: mount [-r] [-w] [-o options] [-t type] device directory

正常的命令句子(最好拷贝,不手输入):

mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system 

这里写图片描述
若是上步骤成功,则跳过这里。

若是出现问题:

mount: '/system' not in /proc/mounts

换用Linux系统自动维护存在mount表,输入现有的挂在点:

mount -o remount,rw /system 

来源remount-system-in-rw

若是出现问题:

mount permission denied 

解决方式:来源

5. 将apk移动到系统app文件夹下

输入以下命令:

cat /sdcard/launcherApp.apk > /system/app/launcherApp.apk 

这里写图片描述

6. 恢复分区属性,只读状态

输入以下命令:

mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system

这里写图片描述

7. 保存:

执行两个exit,进行保存操作。

exit 

这里写图片描述

8. 重启设备

adb reboot

综合:将以上8步骤,构成一个完整push apk命令行操作,展示如下

F:\AndroidStudio2.3.3\sdk\platform-tools>adb push C:\Users\fhu7\Desktop\signapk.jar\launcherApp.apk /sdcard/
C:\Users\fhu7\Desktop\signapk.jar\launcherApp.apk: 1 file pushed. 6.3 MB/s (9021430 bytes in 1.373s)

F:\AndroidStudio2.3.3\sdk\platform-tools>adb shell
shell@rk3288:/ $ su
shell@rk3288:/ # mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
shell@rk3288:/ # cat /sdcard/launcherApp.apk > /system/app/launcherApp.apk
shell@rk3288:/ # mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system
shell@rk3288:/ # exit
shell@rk3288:/ $ exit

这里写图片描述

遇到的问题

若是设备没有连接成功,执行命令行会报错:

error: device offline

这里写图片描述

资源参考

阅读更多

扫码向博主提问

新根

SDK开发者,适配国产ROM
  • 擅长领域:
  • Framework源
  • SDK开发
  • 广告业务
  • 开发框架jar
  • Android开发者
去开通我的Chat快问

没有更多推荐了,返回首页