Android目录结构

  • data

    • app:用户安装的应用
    • data:应用的专属文件夹
    • system:系统的配置信息,注册表文件
    • anr:anr异常的记录信息
  • dev:devices的缩写

    • 存放设备所对应的文件
  • mnt:mount的缩写

    • 挂载在系统上的设备:sdcard,u盘
  • proc:硬件配置,状态信息

    • cpuinfo、meminfo
  • sbin:system bin

    • 系统重要的二进制执行文件
    • adbd:服务器的adb进程
  • system:

    • app:存放系统应用,默认不能删除
    • bin:Android中可执行的linux指令文件
    • etc:host:主机名和ip地址的映射
    • fonts:Android中自带的字体
    • framework:存放谷歌提供的java api
    • lib:核心功能的类库,C/C++文件
    • media/audio:存放Android的音效文件
    • tts:语音发声引擎,默认不支持中文
    • usr:用户设备的配置信息,键盘编码和按键编码的映射
    • xbin:是专为开发人员准备的二进制指令

Android下的Linux指令

  • su:superuser

    • 切换到超级用户
  • rm:remove,删除文件
    • rm 文件名
  • ls:列出目录下的所有文件和文件夹
    • ls -l:查看文件的详细信息
    • ls -a:查看隐藏文件
  • cd:切换到某个目录
  • cat:查看文件内容
    • cat 文件名
    • 不要cat二进制可执行文件
  • mv:move 修改文件名
    • mv 原文件名 新文件名
  • mkdir:创建文件夹
    • mkdir 文件夹名字
  • rmdir:删除文件夹
    • rmdir 文件夹名字
  • touch:创建新文件
    • touch 文件名
  • chmod:change mode,切换文件访问权限
    • chmod 777 文件名
  • echo:回显数据;重定向数据
    • echo 数据 > 文件名
  • sleep:睡眠几秒
  • df:显示指定目录的容量
  • id:打印当前用户的id
    • uid=0:root
    • uid=1000:system
    • uid=2000:shell
    • uid=10000+:一般应用程序的id
  • ps:列出系统中运行的所有进程
  • kill:杀死指定pid的进程
    • kill pid
  • chown:change owner,修改拥有者
    • chown 0.0 文件名
  • mount:挂载文件系统
    • mount -o remount rw /:挂载当前目录为可读可写权限
    • mount -o remount rw /system:重新挂载指定目录

Android中特有的指令

  • am:ActivityManager,可以进行跟activity相关的操作

    • am start -n com.itheima.createfile/com.itheima.createfile.MainActivity:开启指定Activity
    • am kill com.itheima.createfile:结束非前台进程
    • am force-stop com.itheima.createfile:结束进程
  • pm:PackageManager

    • pm disable 包名:冻结指定应用
    • pm enable 包名:解冻指定应用
  • monkey -p com.itheima.createfile 1000:自动点击指定应用1000次


刷模拟器,rom写文件(su)

  • 如果想让真实手机运行这些指令,手机必须要有root权限

  • 刷root原理:把su二进制文件拷贝到/system/bin或者/system/xbin

  • Android刷root软件,工作的原理全部都是利用系统的漏洞实现

  • rom:可以理解为android系统的安装文件

  • 把su文件和superuser.apk写入img文件

  • 执行su指令

      Runtime.getRuntime().exec("su");

小案例:冻结解冻应用

  • 冻结和解冻指定的应用
  •   RootTools.sendShell("pm disable " + package, 300000);
    RootTools.sendShell("pm enable " + package, 300000);

小案例:零权限读取用户隐私数据

  • 直接修改短信数据库访问权限

      RootTools.sendShell("chmod 777 data/data/com.android.providers.telephony/databases/mmssms.db", 300000);
    SQLiteDatabase db = SQLiteDatabase.openDatabase("data/data/com.android.providers.telephony/databases/mmssms.db", null, SQLiteDatabase.OPEN_READONLY);
    Cursor cursor = db.query("sms", new String[]{"body", "address"}, null, null, null, null, null);
    while(cursor.moveToNext()){
    String body = cursor.getString(0);
    String address = cursor.getString(1);
    System.out.println(body + ";" + address);
    }
    RootTools.sendShell("chmod 660 data/data/com.android.providers.telephony/databases/mmssms.db", 300000);

静默安装

  • 为什么有静默安装的需求

    1. 正规应用。电子市场,方便用户静默安装
    2. 流氓软件。后台偷偷下载安装。
  • 自动下载应用,然后静默安装

      //静默安装
    RootTools.sendShell("pm install sdcard/flowstat.apk", 30000);
    //打开
    RootTools.sendShell("am start -n com.jijian.flowstat/com.jijian.flowstat.TrafficWidgetSetting", 30000);
    //卸载应用
    RootTools.sendShell("pm uninstall com.jijian.flowstat", 30000);
    //删除下载的apk包
    RootTools.sendShell("rm sdcard/flowstat.apk", 30000);

修改字体

  • 把ttf文件刷进img中
  • Android系统默认的中文字体为DroidSansFallBack.ttf
  • 用你想使用的字体ttf文件替换掉这个文件即可

修改开机动画

  • 从真机中得到bootanimation.zip
  • 把bootanimation.zip放入system/media目录下

删除锁屏密码

  • 删除data/system下的key文件

    • 文本密码为password.key
    • 手势密码为gesture.key

Android下的Linux指令集的更多相关文章

  1. 在Android下运行Linux平台编译的程序

    编译时需注意使用 -static 编译选项: 否则会提示运行:/system/bin/sh: ./i2c: No such file or directory

  2. ubuntu12.04下编译Linux tina 2.1/android经验

    用的是osboxes下的vdi. 编译Linux 1. 不能在root用户下操作 2. 执行 make kernel_menuconfig 报错,需要 apt-get install zlib1g z ...

  3. Android下添加新的自定义键值和按键处理流程

            Android下添加新的自定义键值和按键处理流程     说出来不怕大家笑话,我写这篇博客的原因在于前几天去一个小公司面试Android系统工程师,然后在面试的时候对方的技术总监问了我 ...

  4. android下的数据存储

    android下数据存储的几种方式:(简单讨论) 1.文件 举例:登陆时“记住密码” 因为是基于Linux系统,直接建文件,文件会出现在项目工程:而手机登陆时,应该把文件放在手机里,通常数据放在dat ...

  5. android下tcpdump抓包

    tcpdump是最快捷方便的抓包方式,还可以加深对网络协议的理解.android下可以通过如下方式抓包: 1 Android上启动tcpdump Android设备可以把tcpdump的可执行文件上传 ...

  6. Android 下使用tcpdump网络抓包方法

    Android 下使用tcpdump网络抓包方法 抓包需要tcpdump以及Root权限,tcpdump在本文后有下载. 首先把tcpdump传进手机,用adb命令(放SD卡有时会有问题,我一次可以用 ...

  7. Android下NDK开发环境搭建

    Android下NDK开发环境搭建 1.     AndroidNDK安装与配置 1.1  NDK简介 Android NDK是一套允许开发人员使用本地代码(如C/C++)进行Android APP部 ...

  8. [android] android下文件访问的权限

    /**************2016年5月4日 更新**************************/ 知乎:android编程中写文件(例如a.txt)后存在手机哪个位置啊? 用FileOut ...

  9. [android] android下junit测试框架配置

    我们的业务代码一般是放在一个新的包下面,这个业务类不能够通过右键run as java application,因为android项目只能运行在手机上的dalvak虚拟机里面 新建一个包,里面写测试类 ...

随机推荐

  1. php 接口 implements 使用

    主要对类名,类所拥有的方法,以及所传参数起约束和规范做用,感觉跟php abstract 抽象类又有点像. 一,接口的定义和调用 <?php interface face1 { const pa ...

  2. 《Excel图表之道》读书笔记

    一.突破常规的作图方法 突破Excel的默认颜色 非数据元素用淡色 突破Excel的图表布局 图表要素:主标题.副标题.图例.绘图.脚注 竖向构图 标明数据来源.图表注释.坐标轴截断符号 专业的水蓝色 ...

  3. maven的安装,maven库配置和Eclipse插件的安装

    maven的安装,maven库配置和Eclipse插件的安装 1.下载并解压maven 2.配置环境变量 3.配置maven配置文件 1.下载链接 Downloading Apache Maven 2 ...

  4. ubuntu14.04下unix网络编程环境的配置

    建议 unpv13e/README看一下,忽略一下内容 ===================================================================== 操作 ...

  5. django入门教程(上)

    相信用过python的人都听过Django的大名,知道它是一个web框架,用来支持动态网站.网络应用程序以及网络服务的开发.那么为什么我们需要一个web框架,而不是直接用python来写web应用呢? ...

  6. Dirichlet Process 和 Dirichlet Process Mixture模型

    Dirichlet Process 和 Dirichlet Process Mixture模型 [本文链接:http://www.cnblogs.com/breezedeus/archive/2012 ...

  7. hdu 1827

    强连通分量——tarjin算法: 这题的思路就是找出多少个出度为0的连通分量,结果就是这些连通分量的元素的最小值相加: 一道很简单的题,改了我好久,= =!~ 贴代码: #include<cst ...

  8. vlc

    源码下载地址:http://download.videolan.org/pub/videolan/vlc/ 编译依赖: sudo apt-get install liblua5.2-dev sudo ...

  9. C++的try catch到底能防止什么错误?

    我在.h文件里定义:    LoadingWidget* w;然后.cpp文件里定义: void MyClass::ModifyTask(){    // w = new LoadingWidget( ...

  10. 【HDOJ】2707 Steganography

    简单字符串,读懂题,很容易AC. #include <stdio.h> #include <string.h> ], line[], des[]; int main() { i ...