zoukankan      html  css  js  c++  java
  • Android入门之旅4—M9系统Root权限获取及目录结构分析

    关于M9系统Root权限背景:因为M9的系统尚未完全成熟,所以魅族还未向用户放出Root权限。而开放了Root权限也意味着会有更高几率的误操作导致手机返修,所以JW甚至放出了破解了Root的M9手机魅族将不再负责保修之类的言论。

    因此这里也郑重警告:对Linux终端操作不熟悉的用户请慎重Root权限进行“adb shell”相关的操作。

    ===============

    通过adb连接M9手机后发现没有Root权限(连接操作参见“ubuntu11.4上通过adb连接M9手机”一文),从而导致很多文件无法浏览。

    幸好有网友开发出可以临时获取Root权限的软件,安装完之后就可以Root了。

    好像还不止一种方案:如LBE开发的隐私卫士,还有VisioNarry+(汉化版叫“一键ROOT+”)等等。

    这里选择的是第一种:LBE开发的隐私卫士;根据介绍它虽然也是临时获取Root,但重启之后会继续临时获取Root,也就相当于永久了。

    下载APK文件并安装到M9手机:downfile.m8fans.com/m9/Application/LBE_P...rd_M9EX_1.2.1123.apk 或者 u.115.com/file/clci9n23
    下载后双击安装,经过几次"下一步"之后就安装完成了。

    然后通过"adb shell"连接后就可以通过执行"su"变成ROOT用户了:

    $ adb shell
    $ su
    #

    终端提示符号由"$"变成了"#",熟悉Linux的用户应该都懂的。

    系统的大部分命令都在/system/bin目录下,除此之外/sbin目录下还有一个busybox可执行文件(该文件应该就是安装隐私卫士时安装的)。

    # busybox ls -lh /sbin
    -rwxr-x--- 1 0 0 111.2K Jun 14 04:40 adbd
    -rwxr-xr-x 1 0 0 1.0M Jun 14 04:40 busybox
    -rwsr-xr-x 1 0 0 5.4K Jun 14 04:40 su

    可见该busybox文件有1M大小,所以包含的工具应该不会少。但因为没有做链接,所以只能通过“ busybox command”进行执行了。
    自己可以尝试一下,执行"ls -l"与"busybox ls -l"显示结果是不一样的,后者会彩色显示,看起来比较舒服。
    对于系统没有的命令,自己可以做个busybox的链接以方便调用,如vi命令:

    # cd /sbin
    # ln -s busybox vi

    然后就可以直接执行vi命令了。(像ls这种系统已经存在的当然也可以再做链接,但直接执行的话还是执行系统的那个,所以可以考虑使用别名:$ alias ls='busybox ls')

    关于系统的目录机构,跟传统的Linux目录结构还是有差别的:

    # busybox ls -l 
    drwxr-xr-x 3 0 0 0 Jun 14 04:34 acct
    lrwxrwxrwx 1 0 0 11 Jun 14 04:34 cache -> /data/cache
    drwxr-xr-x 1 0 0 4096 May 19 03:11 cache1
    dr-x------ 2 0 0 0 Jun 14 04:34 config
    lrwxrwxrwx 1 0 0 17 Jun 14 04:34 d -> /sys/kernel/debug
    drwxrwx--x 19 1000 1000 1440 Jun 14 03:42 data
    -rw-r--r-- 1 0 0 118 Jan 1 1970 default.prop
    drwxr-xr-x 11 0 0 2740 Jun 14 04:36 dev
    lrwxrwxrwx 1 0 0 11 Jun 14 04:34 etc -> /system/etc
    -rwxr-x--- 1 0 0 127096 Jan 1 1970 init
    -rwxr-x--- 1 0 0 1677 Jan 1 1970 init.goldfish.rc
    -rwxr-x--- 1 0 0 571 Jan 1 1970 init.m9.rc
    -rwxr-x--- 1 0 0 18383 Jan 1 1970 init.rc
    drwxrwxr-x 5 0 1000 0 Jun 14 04:34 mnt
    dr-xr-xr-x 238 0 0 0 Jan 1 1970 proc
    drwx------ 2 0 0 0 May 12 08:57 root
    drwxrwxrwt 2 0 0 100 Jun 14 04:40 sbin
    d---rwxr-x 59 1000 1015 32768 Jan 1 1970 sdcard
    drwxr-xr-x 12 0 0 0 Jun 14 04:34 sys
    drwxr-xr-x 1 0 0 4096 May 19 03:10 system
    -rw-r--r-- 1 0 0 0 Jan 1 1970 ueventd.goldfish.rc
    -rw-r--r-- 1 0 0 818 Jan 1 1970 ueventd.m9.rc
    -rw-r--r-- 1 0 0 3764 Jan 1 1970 ueventd.rc
    lrwxrwxrwx 1 0 0 14 Jun 14 04:34 vendor -> /system/vendor
    • init :系统启动到文件系统时第一个运行的程序,也是系统的第一个进程
    • init.m9.rc,init.rc,init.goldfish.rc : 均为初始化脚本文件,用于挂载系统,加载模块等等操作
    • cache : 是缓存临时文件夹,据说是除了T-mobile的OTA更新外,别无用处
    • sdcard :是SD卡中的FAT32文件系统挂载的目录
    • etc :指向/system/etc ,配置文件存放目录
    • system :一个很重要的目录,系统中的大部分东西都在这里
    • sys :用於挂载 sysfs文件系统
    • sbin: 只放了一个用於调试的adbd程序(安装隐私卫士后会发现多两个文件su和busybox)
    • proc :/proc 文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用
    • data :存放用户安装的软件以及各种数据
    • root :什么都没有
    • dev :设备节点文件的存放地


    /system目录是在Android文件系统占有及其重要的位置,基本上所有的工具和应用程序都在这个目录下。
    它在M9手机中映射的是nandflash中的mtdblock4分区,是一个yaffs2文件系统,在启动时被挂载到/system目录下:

    # mount | busybox grep system
    /dev/block/mtdblock4 /system yaffs2 ro,relatime 0 0

    关于system目录下的结构:

    # busybox ls -l system
    drwxr-xr-x 1 0 0 4096 May 19 03:10 app
    drwxr-xr-x 1 0 2000 4096 May 19 03:10 bin
    -rw-r--r-- 1 0 0 1800 Aug 1 2008 build.prop
    drwxr-xr-x 1 0 0 4096 May 19 03:10 etc
    drwxr-xr-x 1 0 0 4096 May 19 03:10 fonts
    drwxr-xr-x 1 0 0 4096 May 19 03:10 framework
    drwxr-xr-x 1 0 0 4096 May 19 03:10 lib
    drwxr-xr-x 1 0 0 4096 May 19 03:10 lost+found
    drwxr-xr-x 1 0 0 4096 May 19 03:10 media
    drwxr-xr-x 1 0 0 4096 May 19 03:10 tts
    drwxr-xr-x 1 0 0 4096 May 19 03:10 usr
    drwxr-xr-x 1 0 0 4096 May 19 03:10 vendor
    drwxr-xr-x 1 0 0 4096 May 19 03:10 xbin
    • app :顾名思义,存放的是Android系统自带的JAVA应用程序
    • bin :存放用户常用的工具程序的
    • build.prop :是一个属性文件,在Android系统中.prop文件很重要,记录了系统的设置和改变,类似於/etc中的文件
    • etc :存放了系统中几乎所有的配置文件,根目录下的/etc就链结於此
    • fonts :字库文件的存放目录
    • framework: 是JAVA平台的一些核心文件,属於JAVA平台系统框架文件,里面的文件都是.jar和.odex文件
    • lib :存放几乎所有的共享库(*.so)文件
    • lost+found :类似回收站的文件夹,ext,yaffs等文件系统固有的
    • media :存放系统的铃声的,分为 notifications(通知)、ui(界面)、alarms(警告)和ringtones(铃声),里面都是.ogg音频文件
    • tts :存放语言相关的文件
    • usr :用户的配置文件,如键盘布局、共享、时区文件等等,可以通过cat查看
    • vendor :制造商提供的二进制和库文件
    • xbin :存放系统管理工具的


    几点备注:
    1、关于odex文件 : odex是被优化过的JAVA程序文件,体积通常是.jar的4倍左右。执行效率比.jar高
    2、/system/app中存放的系统自带的应用程序,总共也没几个;用户自己安装的则存放到/data/app之中了(安装到SD卡的肯定存放到/sdcard里面了)。
    3、关于/sys :在设备模型中,sysfs文件系统用来表示设备的结构。将设备的层次结构形象的反应到用户空间中,用户空间可以修改sysfs中的文件属性来修改设备的属性值。

    参考链接:
    [1] www.m8fans.com/news/Article-162-1.html
    [2] pandastudio.themex.net/?p=498
    [3] hi.baidu.com/tigerpan/blog/item/4046aa21b24c8be3d7cae20f.html

  • 相关阅读:
    创建ASP.NET WEB自定义控件——例程2
    创建ASP.NET WEB自定义控件——例程1
    自己空余時間完成的textbox控件
    创建ASP.NET WEB自定义控件——例程3
    datagrid分頁,排序,跨頁多選。
    ”Bug“一词的来源
    『HTML』Frame框架运用的技术
    JavaScript脚本关闭浏览器窗口不出现提示框小技巧
    『JavaScript』利用Javascript获取IP地址内容方法
    【转】WinForm中实现各窗体之间切换,关闭,打开的操作
  • 原文地址:https://www.cnblogs.com/wzc0066/p/2948110.html
Copyright © 2011-2022 走看看