作为一名程序员,有的时候并不是使用软件,而是去改造软件,不仅仅只是会编程而已,还要满足客户的需求。这样,才能开发出符合客户需求的应用,在关于到涉及到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

android系统将普通应用升级为系统应用的更多相关文章

  1. 【转】Android 将自己的应用改为系统应用

    所谓系统程序就是system/app目录中的程序,普通应用转换成系统程序后有稳定.减少内存(DATA)空间占用.恢复出厂设置后不会消失.修改系统时间.调用隐藏方法.系统关机重启.静默安装升级卸载应用等 ...

  2. 在Linux运行期间升级Linux系统(Uboot+kernel+Rootfs)

    版本:v1.2   Crifan Li 摘要 本文主要介绍了如何在嵌入式Linux系统运行的时候,进行升级整个Linux系统,包括uboot,kernel和rootfs.以及简介Linux中的已有的通 ...

  3. Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面

    现在开发中的功能需要直接跳转到拨号.联系人.短信界面等等,查找了很多资料,自己整理了一下. 1.跳转到拨号界面,代码如下: 1)直接拨打 Intent intentPhone = new Intent ...

  4. 基于Android 4.4 开发的多窗体系统 开放源代码

    Hi, 这是我基于Android 4.4开发的多窗体系统,还有非常多不足,还请多多不吝赐教啊,代码已经所有开源. 视频地址 源代码地址 Done: 1. APP以窗体化显示 在 PhoneWindow ...

  5. 升级iOS8系统后,保险箱Pro、私人保险箱、私密相冊打开就闪退的官方解决方式

    升级iOS8系统后,保险箱Pro.私人保险箱.私密相冊打开就闪退的官方解决方式   写在前面的话: 1.   本文适用条件    适用于:您的保险箱Pro.私人保险箱.私密相冊在iPhone或iPad ...

  6. Android开发环境的发展以及重装系统之后在myeclipse重配Android开发环境。

    android的开发环境早期要自己去去官网下SDK,ADT,AVD等.不仅在一开始要面临国内防火墙的阻拦,四处奔波之后都下载好了,还得自己Linked,可谓困难重重.随着android开发的火热,上面 ...

  7. [Android] 字体使用dp单位避免设置系统字体大小对排版的影响

    [Android] 字体使用dp单位避免设置系统字体大小对排版的影响 以魄族mx3为例,在设置->显示->字体大小中能够选择字号大小例如以下图: 图1. 魄族mx3 会导致软件在有固定定高 ...

  8. CentOS 6.4系统中编译和升级内核

    CentOS 6.4系统中编译和升级内核 [日期:2013-08-25] 来源:Linux社区  作者:vipshichg [字体:大 中 小] 可能因为以下几种原因,你可能需要对Linux kern ...

  9. Android笔记(五十五) Android四大组件之一——ContentProvider,使用系统提供的ContentProvider

    因为在Android中,存储系统联系人姓名和电话是存在与不同的ContentProvider中的,具体如何查找,可以从Android的源代码中查看,在android.providers包中列出了所有系 ...

随机推荐

  1. [Python] 发送email的几种方式

    python发送email还是比較简单的,能够通过登录邮件服务来发送,linux下也能够使用调用sendmail命令来发送,还能够使用本地或者是远程的smtp服务来发送邮件,无论是单个,群发,还是抄送 ...

  2. Javascript进阶篇——( JavaScript内置对象---上-Date,string,charAt,indexOf,split,substring,substr)笔记整理

    什么是对象JavaScript 中的所有事物都是对象,如:字符串.数值.数组.函数等,每个对象带有属性和方法.对象的属性:反映该对象某些特定的性质的,如:字符串的长度.图像的长宽等:对象的方法:能够在 ...

  3. 自学Android的第一个小程序(小布局、button点击事件、toast弹出)

    因为上班,学习时间有限,昨晚才根据教程写了一个小程序,今天忙里偷闲写一下如何实现的,来加深一下印象. 首先创建一个Android项目, 通过activity_xxx.xml布局文件来添加组件来达到自己 ...

  4. 在Vim中查看文件编码

    :set fileencoding 即可显示文件编码格式. 如果你只是想查看其它编码格式的文件或者想解决 用Vim查看文件乱码的问题,那么在 ~/.vimrc 文件中添加以下内容: set encod ...

  5. 从汇编看c++成员函数指针(三)

    前面的从汇编看c++中成员函数指针(一)和从汇编看c++成员函数指针(二)讨论的要么是单一类,要么是普通的多重继承,没有讨论虚拟继承,下面就来看一看,当引入虚拟继承之后,成员函数指针会有什么变化. 下 ...

  6. 深入理解JavaWeb技术内幕(一)

    最近在看许令波的<深入理解JavaWeb技术内幕>.整理了一些笔记.想做一个系列,这篇是系列的第一篇,讲Web请求. B/S架构 最常见的架构方式. 优点: 1.客户端使用统一(此处的统一 ...

  7. ORACLE触发器和new、old特殊变量

    :new --为一个引用最新的列值;:old --为一个引用以前的列值; 这两个变量只有在使用了关键字 "FOR EACH ROW"时才存在.且update语句两个都有,而inse ...

  8. jquery 鼠标右键事件、左键单击事件判定

    $(function(){ $('a').mousedown(function(e){ alert(e.which) // 1 = 鼠标左键 left; 2 = 鼠标中键; 3 = 鼠标右键 retu ...

  9. 七牛云Fetch第三方资源并转码(PHP版)

    七牛云的图片加速一直在用,好用没得说,最近项目需要做个微信端录音,然后上传,别人试听的功能,录音和上传用的都是微信的接口,有文档,比较方便,但是上传后,微信只给保存3天,所以就下载到了七牛,也就用到了 ...

  10. 定义#define

                                                    定义符号常量   当我们不止一次用到某个符号常量时,常选择对符号变量进行定义,这样就能当成一般常量来用. ...