Android Linux指令集

android下的linux指令集

android应用层访问底层组件

1,jni
2,直接使用linux命令

android系统结构

1,data目录

/data/data 目录:存放apk的数据目录
/data/system目录:系统配置的信息,相当于windows注册表,密码文件
/data/anr目录:开发人员定位错误信息
/data/app目录:用户安装的apk路径(执行文件)

2,dev目录 devices简称 设备文件

3,sbin目录 server bin目录,adbd 桥连接服务器文件

4,mnt目录,挂载的目录,如:sdcard,光驱,软盘

5,proc目录,process进程相关的

   cup信息
   mem信息
   /proc/uid_stat/存放流量信息

6,system目录;

/system/app目录:存放系统的apk目录
/system/bin目录:存放android系统执行文件,特征:ELF打头,可运行的二进制文件,windows系统,特征MZ
/system/etc目录 : 扩展目录,配置信息
/system/fonts目录: 字体库,标准字体库文件:  DroidSansFallback.ttf
/system/framework android系统框架目录,中间件,jar文件
/system/lib 目录: 中间件,so文件
/system/lost+found:手机防盗
/system/medis:多媒体开发目录:开机动画,声音文件(.ogg)
/system/tts目录:android原生的发声文件,目前不支持中文
/system/usr目录:用户相关配置信息
/system/xbin目录:系统二进制文件(扩展)
linux下文件权限
十位组成
第一位代表文件类型 
        d  目录  - 文件 l 链接(快捷方式) c 设备文件 键盘鼠标 b 块文件 硬盘 光驱
第一个三位  本用户权限
第二个三位  本组用户权限
第三个三位  其他用户组的权限
     三位  三位的01代码
            r(读)w(写)x(进入,执行)
            111  7 rwx
            101  rx 

d --- rwx r-x
常用linux命令
  • su

  • super user 超级管理员
  • rm

     remove 移除文件
    
  • ls

    list 列出目录结构 -l列出所有详细信息
    
  • cd

     cd  进入目录命令
              cd .(当前路径) ..(上一级路径) /(绝对路径)
    
  • cat

    cat 查看文件,写文件
    cat > 文件名 << 结束符号 (创建新文件)
    cat >> 文件名 << 结束符号(文件存在追加文件,不存在创建文件)
    拷贝文件
     cat 源文件 > 目标文件
     cat 源文件 >> 目标文件(没有创建,有追加)
    
  • mv

    move 移动文件(源文件删除)
    
  • cp

    copy 拷贝文件,在android系统中不存在此命令
    
  • mkdir

    mkdir 创建文件夹
    
  • rmdir

    rmdir 移除文件夹,文件夹不为空,移除不掉
    
  • chmod

    修改文件或文件夹的权限
    
  • touch

  • 触摸,修改文件的时间为当前时间
  • echo

         回显的命令
        把信息追加到文件中
         echo 信息 >(创建)/>>(追加)  文件名
         ls >(创建)/>>(追加)  文件名
    
  • sleep

    休眠时间  秒为单位
    
  • sh 命令

    linux share编程,类似windows系统的bat批处理
    如: my.sh 文件
       sleep 3
       ls -l
    
      ./my.sh 或 sh my.sh 运行批处理文件
    
  • df

  • device free 设备使用信息
  • id

  • id 查看文件使用者
    0 root
    1000 system
    2000 share
    10000+ 普通用户
  • chown
  •  /data/local/tmp目录 可以是任意权限
    
    change owner 改变使用者
    
  • ps

  • process 当前进程的信息
  • kill

  • kill 杀死进程 kill 进程id
    • mount

      挂载目录
      mount -o remount rw 目录 (重新挂载目录为可读可写)


    • reboot
      重启的命令
android下特有的linux命令

1,am

ActivityManager 

am 打开一个apk
am start -n 包名/包名.activities.HomeActivity
am broadcast -a 广播意图  发送广播
am startservice  -a  服务的意图 发送服务

2,pm

pm install apk路径
pm  uninstall 包名
pm enable 包名   启动apk
pm disable 包名  深度禁用apk 和卸载的唯一区别就是源文件还在

3,monkey
monkey 次数

root刷机
 拷贝su文件到system/xbin目录下 ,重新生成img文件
案例调用特殊linux命令

1, 禁用和启用apk

  输入apk的包名就可以禁用或启用apk

2, 窃取短信

 修改db的权限

3,修改android系统的字体

   只要把您的字体文件覆盖掉下面的文件就可以了
   /system/fonts/DroidSansFallback.ttf 

临时生效: cat 新字体文件  >  /system/fonts/DroidSansFallback.ttf 
永久生效: 修改img文件,打开 把字体覆盖掉,重新生成img文件

4,修改开机动画

生成 bootanimation.zip 放到 /system/media目录下
创建 folder0 folder1 desc.txt文件 压缩 zip 存储格式
   参考资料里文件

5,静默安装
神不知鬼不觉的就给你安装apk
其实在服务器端放apk文件,打开某个apk的时候,从服务器下载apk,安装,打开,卸载,删除

********************************刘亚超内容*****************************

介绍 adb (android debug bridge(桥))

 *adb devices 显示当前连接的设置
 *adb kill-server 停止当前服务
 *adb start-server 启动adb 服务
 * adb /? 显示adb 的帮助
 * adb shell 进入设置的命令行
     * adb -s emulator-5554 shell 当设备比较多时,进入指定设置的shell命令行
 * adb push <local> <remote>  将本地文件考贝至android设置
     * adb push C:\Users\Administrator\Pictures\girl2.jpg /cache
     *  将一个图片考贝至 android 设置根目录下的 cache 文件夹
 * adb pull <romote> <local>    将设备中的文件考贝至本地 
     * adb pull /cache/girl2.jpg d:\ 
 * adb install  将apk 文件安装至设备 
    * adb install C:\Users\Administrator\Desktop\ChartDemo.apk
 * adb uninstall 删除某个应用
     * adb uninstall xxx.ooo.chartdemo

android 的目录结构

 * cache 存放一些缓存,这个目录,谁都可以修改
 * config 存入一些用户的配置文件
 * data 用户的数据
     * /data/app 用户应用,安装后,存放的位置
     * /data/data 目录是用户应用的工作空间
         * /data/data/xxx.ooo.ttt 此目录名称与应用包名相同,在此目录下:
             * databases  应用的数据库文件
             * files 是在代码中用 ctx.getFilesDir() 获得的就是此目录
             * lib 应用运行时,所需要的lib 库
             * shared_prefs  当应用有用到 SharedPresence 时,系统会自动创建该目录,
             * cache  在代码中用 ctx.getCacheDir() 获得的目录
 * dev 系统自身的一些配置文件
 * mnt/sdcard 手机sd卡所在的目录 不同的手机,此路径可能会有不同,
 * proc 保存当手当前运行的信息
     * cpuinfo -- cpu的信息
     * meminfo -- 内存当前的使用信息
 * /system 手机的系统目录 -无论手机是否启动,该目录中的内容都存在,要操作该目录,需要的ROOT 权限
     * app -- 系统应用所有的目录
         * 如果把自己开发的apk有办法放至此目录,那么这个应用就成系统内置应用了
     * bin 系统自带的可执行文件
         * linux 的每一个指令都对应于一个可执行的文件
     * etc -- 系统的核心配置文件
         * apns-config.xml   手机打电话,发短信需要的运营商的配制文件
         * hosts 本地dns解析文件
     * fonts 系统字体文件
         * DroidSans.ttf 默认的英文字体
         * DroidSansFallback.ttf 默认的中文字体
         * 如果要改手机字体的话,可以字体文件考贝到此目录,改个系统认识的名就可以了
     * framework -- android四层架构中,第二层框架所对应的代码( java )
     * lib -- android四层架构中,第三层框架所对应的代码,都是C或C++写的库文件
     * media -- 系统内置的一些声音文件
         * ui/camera_click.ogg 相机拍照时发出的声音。
     * tts -- 老外的一些发声引警
     * usr -- 用户用到的一些配置信息
         * qwerty.kl -- 手机按键印射表
     * xbin -- 扩展性的二进制可执行文件

常见的linux 指令

  • 进行linux 环境
    * adb shell 或者 adb -s xxxxxx shell
    * 如果 以 # 开头,说明当前的root 用户,可以执行任意命令
    * 如果 以 $ 开头,说明当前不是root用户,只能执行一些普通命令
    *ls 列出当前目录下的文件
    • -l(显示详细内容)
    • -a(显示所有内容)
    • 显示结果如下:
      drwxrwx— system cache 2015-06-16 00:58 cache
      lrwxrwxrwx root root 2015-06-16 00:35 sdcard -> /mnt/sdcard
      说明:第一个字母 : d 文件夹 l 表示是一个联接(类似于window中的快捷方式) - 表示是一个普通文件
      然后9个字母如:rwxrwx— 表示,自己可读,可写,可执行,自己所在的组,可读可写可执行,
      所有的,不可读,不可写,不可执行
      system cache 是指当前文件是system用户创建的,同时是属于 cache 用户组的
      *pwd 显示用户当前所在路径
      *cd 改变当前的路径
      cd xxx 进入当前目录的子目录
      cd .. 返回上一级目录
      cd /mnt/sdcard 进入指定的目录
      *su 提升权限,将自己提升为root权限
      *rm (remove 删除文件)
      rm /system/app/xxx.apk 删除指定的文件
      *cat (猫)用于查看文件内容,(文件可以是任何文件)
      cat xxx.xx
      *mkdir 创建文件夹
      mkdir qq
      *touch 创建文件(android 中无此命令,标准linux系统中有)
      *echo 创建文件
      echo 内容>文件名.扩展名
      如: echo “asdfio jadsofi”>ttt.txt
      *mv 移动文件,文件改名
      mv ttt.txt qq 将当前目录下的ttt.txt文件,移至当前目录下的qq目录
      mv ttt.txt qqt.txt 将当前目录下的ttt.txt文件改名为 qqt.txt文件
      *cp (copy 复制,android 不支持这个命令)
      *chmod 修改文件的权限
      如将一个文件改为,自己可读可写,自己所在的组只可读,其他人不可读写,也不可执行
    • rw- r– —
    • 110 100 000
    • 6 4 0
    • chmod 640 qqt.txt
      *sleep 3 休眠 3秒
      *sh 执行shell脚本( shell 脚本,类似 windows中的 bat 批处理命令)
    • 生成脚本:
      echo “sleep 3;rm qqt.txt;”>qq2.sh
    • 执行脚本:
      sh qq2.sh
  • vi vim 是linux命令行中的文件编辑命令,现在已经被图形化所代替
    *df 查看当前的 磁盘文件系统
    *id 查看自己的信息
    uid=0(root) gid=0(root) uid 是用户ID gid 是用户所在群的id
    ID 有个特点,值越小,权力越大
    root 0
    system 100
    shell 1000
    普通用户 10000
    *ps (Process show)显示当前进程信息
    • 每一个android应用都运行在一个独立的linux进程中,这样即便是该进程死掉了,不会影响其他的android 应用。

*kill 杀死进程
kill pid (pid 是进程ID的意思)

*reboot 重启
*chown 改变文件的拥有者
chown system:system qq2.sh 将 qq2.sh 的拥有者改为 system用户和system组

*mount 挂载
常用命令:
mount -o remount rw /system
-o 要加选项参数
remount 重新挂载
rw 是可读可写 ro readOnly 只读

android 命令pm am

* pm  packageManager
    *  pm list packages 列出手机安装的所有的android  应用
    *  pm path zz.itcast.zhbjz5 显示android应用的apk文件所在位置
    *  pm install ChartDemo.apk 直接用命令安装 apk(没有用户提示界面)
    *  pm uninstall xxx.ooo.chartdemo 删除指定包名的应用(没有用户提示界面)
    *  pm clear xxx.ooo.chartdemo  清除指定应用的所有的数据
    *  pm disable zz.itcast.mobileguardz3 禁用指定包名的应用
    *  pm enable zz.itcast.mobileguardz3 启用指定包名的应用
    *  pm setInstallLocation [0/auto] [1/internal] [2/external] 改变应用的安装目录 1 内部存储  2 外部存储
* am  ActivityManager
    * 启动activity 
    * 如启动系统自带计算器 
        am start -a android.intent.action.MAIN -n com.android.calculator2/com.android.calculator2.Calculator

什么是Root

 * /system/bin 目录中如果有 su 可执行程序,就说明手机有root权限
 * 如果没有 su 程序那就没有root 
 * 同时,如果要修改/system 目录,又必须root 权限才可以修改。 

如何获取Root

方法一: 利用手机系统的漏洞,将 su 程序考贝到 /system/bin 目录中,
方法二: 刷机,刷成有root 权限的系统

SuperUser.apk 用于管理root权限,

刷机:

* bootLoader -- 手机启动时,自动执行的程序。 类似于电脑上的BIOS
* Recovery  -- 极小型的手机管理系统,唯一的目的就是安装android系统。类似于windows PE
    * 在手机关机状态下,按音量向上键和电源键开启手机,会进入Recovery模式
    * 在Recovery模式下,可以对手机,备份-还原-清除数据等操作。
* 固件 -- 手机自身,打电话,发短信相关的一些内容。
* ROM -- android系统的安装文件

* 刷机有风险,选择需谨慎
    * 刷机前要确保ROM的版本,和当前手机的型号匹配。

模拟器刷 ROOT 步骤:

1、使用img浏览器,打开 adt-bundle-windows-x86\sdk\platforms\android-10\images 目录中的system.img 文件
2、将su 程序 添加至/bin 目录,并修改权限为 4755 
3、添加 SuperUser.apk 至 /app 目录,并修改权限为 0644 
    * 注意apk 不是一个可执行程序,只是一个压缩文件,由 pm 程序执行
4、修改根目录下的配置文件:build.prop文件
    \#ro.config.nocheckin=yes
5、整理另存成新的img文件

Root权限下的编程开发

你可能感兴趣的:(Linux指令集)