作为一名程序员,有的时候并不是使用软件,而是去改造软件,不仅仅只是会编程而已,还要满足客户的需求。这样,才能开发出符合客户需求的应用,在关于到涉及到android底层的应用的时候,手机就需要root了,我使用的root工具是下面一款软件,这款软件对手机root之后,这款软件卸载后,手机将不具有root权限,所以使用者可以大大放心,我之前的时候担心手机root完了之后手机有风险,这下不用担心了,下图是我已经root后的手机界面:
root完手机之后,如果我们自己开发了一款app或者发现了一个好用的app,安装到手机上之后,但是我们在恢复出厂设置之后还需要重新下载安装,免不了不少麻烦,或者可能有其他的需求,需要我们将自己客户的应用变为系统的应用,不让用户随意卸载。
第一步:手机需要有root权限
android系统本是linux系统,熟悉linux命令的程序员都知道,在linux系统中,权限很重要,当普通用户切换为root用户的时候使用的是su命令,android系统的底层也是linux内核,所以一个原理,android为了系统的安全,默认的不是root角色登陆,如果想使用root权限,需要使用su命令,但是在android系统中/system是只读权限,如果想修改权限,就需要chmod命令,chmod命令又是只有root角色才可以运行,就这样形成了一个死循环,所以一般的方法就不能获得root权限。
第二步:使用命令修改权限
下面是我操作的命令:
Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。 PS C:\Users\Administrator> adb shell
shell@android:/ $ su
su
root@android:/ # ll
ll
drwxr-xr-x root root -- : acct
-rw-r--r-- root root -- : advanced_meta_init.project.rc
-rw-r--r-- root root -- : advanced_meta_init.rc
drwxr-xr-x system system -- : apps
drwxrwx--- system cache -- : cache
dr-x------ root root -- : config
lrwxrwxrwx root root -- : d -> /sys/kernel/debug
drwxrwx--x system system -- : data
-rw-r--r-- root root -- : default.prop
drwxr-xr-x root root -- : dev
lrwxrwxrwx root root -- : emmc@android -> /dev/block/mmcblk0p4
lrwxrwxrwx root root -- : emmc@apps -> /dev/block/mmcblk0p3
lrwxrwxrwx root root -- : emmc@cache -> /dev/block/mmcblk0p5
lrwxrwxrwx root root -- : emmc@ebr1 -> /dev/block/mmcblk0p1
lrwxrwxrwx root root -- : emmc@fat -> /dev/block/mmcblk0p7
lrwxrwxrwx root root -- : emmc@sec_ro -> /dev/block/mmcblk0p2
lrwxrwxrwx root root -- : emmc@usrdata -> /dev/block/mmcblk0p6
lrwxrwxrwx root root -- : etc -> /system/etc
lrwxrwxrwx root root -- : external_sd -> /mnt/sdcard/external_sd
-rwxr-x--- root root -- : init
-rwxr-x--- root root -- : init.aee.customer.rc
-rwxr-x--- root root -- : init.factory.rc
-rwxr-x--- root root -- : init.goldfish.rc
-rwxr-x--- root root -- : init.project.rc
-rwxr-x--- root root -- : init.rc
-rwxr-x--- root root -- : init.usb.rc
-rwxr-x--- root root -- : init.xlog.rc
-rw-r--r-- root root -- : meta_init.rc
drwxrwxr-x root system -- : mnt
dr-xr-xr-x root root -- : proc
lrwxrwxrwx root root -- : res -> /system/res
drwx------ root root -- : root
drwxr-x--- root root -- : sbin
lrwxrwxrwx root root -- : sdcard -> /mnt/sdcard
lrwxrwxrwx root root -- : sdcard2 -> /mnt/sdcard/external_sd
drwxr-xr-x root root -- : sys
drwxr-xr-x root root -- : system
-rw-r--r-- root root -- : ueventd.goldfish.rc
-rw-r--r-- root root -- : ueventd.rc
lrwxrwxrwx root root -- : vendor -> /system/vendor
root@android:/ # chmod system
chmod system
Unable to chmod system: Read-only file system
|root@android:/ # mount -o rw,remount yaffs2 /system
mount -o rw,remount yaffs2 /system
root@android:/ # ll
ll
drwxr-xr-x root root -- : acct
-rw-r--r-- root root -- : advanced_meta_init.project.rc
-rw-r--r-- root root -- : advanced_meta_init.rc
drwxr-xr-x system system -- : apps
drwxrwx--- system cache -- : cache
dr-x------ root root -- : config
lrwxrwxrwx root root -- : d -> /sys/kernel/debug
drwxrwx--x system system -- : data
-rw-r--r-- root root -- : default.prop
drwxr-xr-x root root -- : dev
lrwxrwxrwx root root -- : emmc@android -> /dev/block/mmcblk0p4
lrwxrwxrwx root root -- : emmc@apps -> /dev/block/mmcblk0p3
lrwxrwxrwx root root -- : emmc@cache -> /dev/block/mmcblk0p5
lrwxrwxrwx root root -- : emmc@ebr1 -> /dev/block/mmcblk0p1
lrwxrwxrwx root root -- : emmc@fat -> /dev/block/mmcblk0p7
lrwxrwxrwx root root -- : emmc@sec_ro -> /dev/block/mmcblk0p2
lrwxrwxrwx root root -- : emmc@usrdata -> /dev/block/mmcblk0p6
lrwxrwxrwx root root -- : etc -> /system/etc
lrwxrwxrwx root root -- : external_sd -> /mnt/sdcard/external_sd
-rwxr-x--- root root -- : init
-rwxr-x--- root root -- : init.aee.customer.rc
-rwxr-x--- root root -- : init.factory.rc
-rwxr-x--- root root -- : init.goldfish.rc
-rwxr-x--- root root -- : init.project.rc
-rwxr-x--- root root -- : init.rc
-rwxr-x--- root root -- : init.usb.rc
-rwxr-x--- root root -- : init.xlog.rc
-rw-r--r-- root root -- : meta_init.rc
drwxrwxr-x root system -- : mnt
dr-xr-xr-x root root -- : proc
lrwxrwxrwx root root -- : res -> /system/res
drwx------ root root -- : root
drwxr-x--- root root -- : sbin
lrwxrwxrwx root root -- : sdcard -> /mnt/sdcard
lrwxrwxrwx root root -- : sdcard2 -> /mnt/sdcard/external_sd
drwxr-xr-x root root -- : sys
drwxr-xr-x root root -- : system
-rw-r--r-- root root -- : ueventd.goldfish.rc
-rw-r--r-- root root -- : ueventd.rc
lrwxrwxrwx root root -- : vendor -> /system/vendor
root@android:/ # chmod system
chmod system
root@android:/ # ll
ll
drwxr-xr-x root root -- : acct
-rw-r--r-- root root -- : advanced_meta_init.project.rc
-rw-r--r-- root root -- : advanced_meta_init.rc
drwxr-xr-x system system -- : apps
drwxrwx--- system cache -- : cache
dr-x------ root root -- : config
lrwxrwxrwx root root -- : d -> /sys/kernel/debug
drwxrwx--x system system -- : data
-rw-r--r-- root root -- : default.prop
drwxr-xr-x root root -- : dev
lrwxrwxrwx root root -- : emmc@android -> /dev/block/mmcblk0p4
lrwxrwxrwx root root -- : emmc@apps -> /dev/block/mmcblk0p3
lrwxrwxrwx root root -- : emmc@cache -> /dev/block/mmcblk0p5
lrwxrwxrwx root root -- : emmc@ebr1 -> /dev/block/mmcblk0p1
lrwxrwxrwx root root -- : emmc@fat -> /dev/block/mmcblk0p7
lrwxrwxrwx root root -- : emmc@sec_ro -> /dev/block/mmcblk0p2
lrwxrwxrwx root root -- : emmc@usrdata -> /dev/block/mmcblk0p6
lrwxrwxrwx root root -- : etc -> /system/etc
lrwxrwxrwx root root -- : external_sd -> /mnt/sdcard/external_sd
-rwxr-x--- root root -- : init
-rwxr-x--- root root -- : init.aee.customer.rc
-rwxr-x--- root root -- : init.factory.rc
-rwxr-x--- root root -- : init.goldfish.rc
-rwxr-x--- root root -- : init.project.rc
-rwxr-x--- root root -- : init.rc
-rwxr-x--- root root -- : init.usb.rc
-rwxr-x--- root root -- : init.xlog.rc
-rw-r--r-- root root -- : meta_init.rc
drwxrwxr-x root system -- : mnt
dr-xr-xr-x root root -- : proc
lrwxrwxrwx root root -- : res -> /system/res
drwx------ root root -- : root
drwxr-x--- root root -- : sbin
lrwxrwxrwx root root -- : sdcard -> /mnt/sdcard
lrwxrwxrwx root root -- : sdcard2 -> /mnt/sdcard/external_sd
drwxr-xr-x root root -- : sys
drwxrwxrwx root root -- : system
-rw-r--r-- root root -- : ueventd.goldfish.rc
-rw-r--r-- root root -- : ueventd.rc
lrwxrwxrwx root root -- : vendor -> /system/vendor
root@android:/ # cd system
cd system
root@android:/system # ll
ll
drwxr-xr-x root root -- : app
drwxr-xr-x root shell -- : bin
-rw-r--r-- root root -- : build.prop
drwxr-xr-x root root -- : etc
drwxr-xr-x root root -- : fonts
drwxr-xr-x root root -- : framework
drwxr-xr-x root root -- : lib
drwxr-xr-x root root -- : lost+found
drwxr-xr-x root root -- : media
-rw-r--r-- root root -- : recovery-from-boot.p
drwxr-xr-x root root -- : res
-rw-r--r-- root root -- : sdcard0.sh
-rw-r--r-- root root -- : sdcard1.sh
drwxr-xr-x root root -- : secro
drwxr-xr-x root root -- : tts
drwxr-xr-x root root -- : usr
drwxr-xr-x root shell -- : vendor
drwxr-xr-x root root -- : weather
drwxr-xr-x root shell -- : xbin
root@android:/system # chmod app
chmod app
root@android:/system # PS C:\Users\Administrator> adb shell
第三步:将app导入 /system/app 目录
mv weixin638android680.apk /system/app
failed on 'weixin638android680.apk' - Cross-device link