Android下的Linux指令集
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);
静默安装
为什么有静默安装的需求
- 正规应用。电子市场,方便用户静默安装
- 流氓软件。后台偷偷下载安装。
自动下载应用,然后静默安装
//静默安装
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指令集的更多相关文章
- 在Android下运行Linux平台编译的程序
编译时需注意使用 -static 编译选项: 否则会提示运行:/system/bin/sh: ./i2c: No such file or directory
- ubuntu12.04下编译Linux tina 2.1/android经验
用的是osboxes下的vdi. 编译Linux 1. 不能在root用户下操作 2. 执行 make kernel_menuconfig 报错,需要 apt-get install zlib1g z ...
- Android下添加新的自定义键值和按键处理流程
Android下添加新的自定义键值和按键处理流程 说出来不怕大家笑话,我写这篇博客的原因在于前几天去一个小公司面试Android系统工程师,然后在面试的时候对方的技术总监问了我 ...
- android下的数据存储
android下数据存储的几种方式:(简单讨论) 1.文件 举例:登陆时“记住密码” 因为是基于Linux系统,直接建文件,文件会出现在项目工程:而手机登陆时,应该把文件放在手机里,通常数据放在dat ...
- android下tcpdump抓包
tcpdump是最快捷方便的抓包方式,还可以加深对网络协议的理解.android下可以通过如下方式抓包: 1 Android上启动tcpdump Android设备可以把tcpdump的可执行文件上传 ...
- Android 下使用tcpdump网络抓包方法
Android 下使用tcpdump网络抓包方法 抓包需要tcpdump以及Root权限,tcpdump在本文后有下载. 首先把tcpdump传进手机,用adb命令(放SD卡有时会有问题,我一次可以用 ...
- Android下NDK开发环境搭建
Android下NDK开发环境搭建 1. AndroidNDK安装与配置 1.1 NDK简介 Android NDK是一套允许开发人员使用本地代码(如C/C++)进行Android APP部 ...
- [android] android下文件访问的权限
/**************2016年5月4日 更新**************************/ 知乎:android编程中写文件(例如a.txt)后存在手机哪个位置啊? 用FileOut ...
- [android] android下junit测试框架配置
我们的业务代码一般是放在一个新的包下面,这个业务类不能够通过右键run as java application,因为android项目只能运行在手机上的dalvak虚拟机里面 新建一个包,里面写测试类 ...
随机推荐
- php中引用符号(&)的使用详解
php的引用就是在变量或者函数.对象等前面加上&符号,在PHP 中引用的意思是:不同的名字访问同一个变量内容,下面介绍如何使用PHP的引用 与C语言中的指针是有差别的.C语言中的指针里面存储的 ...
- 已经安装php后,再增加扩展模块(不重新编辑php)
下面以安装curl为例,介绍具体安装步骤. 1.安装crul wget http://curl.haxx.se/download/curl-7.19.6.tar.gz tar -zxvf curl-7 ...
- 用Python和Django实现多用户博客系统——UUBlog
又过了一周,把代码整个的优化和完善了一下,也把TBlog更名为UUBlog.这次基本是把上次的整个更新了一下具体的功能大家可以下载后自己看看说一下主要的变化增加了频道表.博客表. 功能方面主要有增加频 ...
- ThinkPHP学习手记——环境搭建
怀着激动的心情打开了thinkPHP的文档,开启了第一次php框架学习. 下载 ThinkPHP最新版本可以在官方网站(http://thinkphp.cn/down/framework.html) ...
- Java编程规范整理
分享一份网友整理的编程过程中的命名规范 包命名 包名按照域名的范围从大到小逐步列出,恰好和Internet上的域名命名规则相反. 由一组以"."连接的标识符构成,通常第一个标识符为 ...
- C语言程序设计做题笔记之C语言基础知识(上)
C语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行事.并且C是相当灵活的,用于执行计算机程序能完成的几乎 ...
- UML类图的6中关系
引用自: http://blog.csdn.net/tianhai110/article/details/6339565 UML类图分为如下四种关系: 1. 泛化 (Generalization) ...
- Linux数据管理——文件锁定
一.什么是文件锁定 对于锁这个字,大家一定不会陌生,因为我们生活中就存在着大量的锁,它们各个方面发挥着它的作用,现在世界中的锁的功能都可归结为一句话,就是阻止某些人做某些事,例如,门锁就是阻止除了屋主 ...
- Linux 下报错:A Java RunTime Environment (JRE) or Java Development Kit (JDK) must解决方案
一.报错环境:在Linux mint下,前几天还用得很好的的eclipse,今天开机不知为什么这样. Linux 下报错:A Java RunTime Environment (JRE) or Jav ...
- HDU-1716 排列2 (DFS)
排列2 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submissio ...