Android下的linux指令集
2016-01-08 22:04
429 查看
Android目录结构
dataapp:用户安装的应用
data:应用的专属文件夹
system:系统的配置信息,注册表文件
anr:anr异常的记录信息(默认是没有的只有当程序发生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:unix system resrouces 系统应用程序和相关文件 (键盘编码和按键编码的映射存放在这里)
xbin:是专为开发人员准备的二进制指令
Android下的Linux指令
id:打印当前用户的iduid=0:root
uid=1000:system
uid=2000:shell
uid=10000+:一般应用程序的id
chown 0.0 文件名 修改该文件的所有者为root
mount:挂载文件系统
mount -o remount rw /:挂载当前目录为可读可写权限
mount -o remount rw /system:重新挂载指定目录
Android中特有的指令
am:ActivityManager,可以进行跟activity相关的操作am start -n 应用包名/应用包名.MainActivity:开启指定Activity
am kill 应用包名:结束非前台进程 (尝试结束在不影响用户使用的进程)
am force-stop 应用包名:结束进程 (强制结束)
pm:PackageManager
pm disable 包名:冻结指定应用
pm enable 包名:解冻指定应用
monkey -p 应用包名 1000:自动点击指定应用1000次
刷机,rom写文件(su)
如果想让真实手机运行这些指令,手机必须要有root权限刷root原理:把su二进制文件拷贝到/system/bin或者/system/xbin(这里会出现一个死循环,复制su进入/system/bin需要root权限,而我们就是要获取root权限而这样搞。这时我们可以自己修改rom,把su命令弄进去,此时注意这个su命令的权限必须是4755。755不用多说就是rwx的三个组合,而前面的4表示SUID权限。s属性出现在文件所有者的x权限上 如linux系统上:/usr/bin/passwd 是属性s。作用是:仅在执行该程序的过程中有效.执行者将会具有该程序的所有者(owner)的权限)
Android刷root软件,工作的原理全部都是利用系统的漏洞实现
rom:可以理解为android系统的安装文件
刷机的具体过程是把su文件和superuser.apk写入ROM的img文件 (superuser.apk是当某个应用需要root权限是我们可以通过这个apk来选择是否允许它拥有root权限,su文件写入到/system/bin或者/system/xbin中,而superuser.apk写入到系统app的文件下。两个文件的权限全部写为4755)
在代码中执行指令:已执行su指令为例:
[code]Runtime.getRuntime().exec("su");
小案例:冻结解冻应用(这里执行指令通过第三方jar包完成RootTools.jar)
冻结和解冻指定的应用RootTools.sendShell(“pm disable ” + package, 300000);
RootTools.sendShell(“pm enable ” + package, 300000);
小案例:零权限读取用户隐私数据(即不通过内容提供者)
直接修改短信数据库访问权限[code]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);
静默安装
为什么有静默安装的需求正规应用。电子市场,方便用户静默安装
流氓软件。后台偷偷下载安装。
自动下载应用,然后静默安装
[code]//静默安装 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文件刷进ROM包img中Android系统默认的中文字体为DroidSansFallBack.ttf
用你想使用的字体ttf文件替换掉这个文件即可
修改开机动画
从真机中得到bootanimation.zip把bootanimation.zip放入system/media目录下
删除锁屏密码
删除data/system下的key文件文本密码为password.key
手势密码为gesture.key
相关文章推荐
- 一张图解释Linux的目录结构
- Linux重复执行上一条命令
- 去掉Linux尖锐的提示音
- Linux运维 第三阶段 (十八) haproxy
- Linux下MySQL中文乱码
- Linux登录用户查看及相应操作
- linux配置java环境变量
- Linux查看系统配置常用命令
- 【Linux学习】epoll详解
- 最小化安装CentOS7,没有ifconfig命令---yum search command_name搜索未知包名
- 嵌入式
- linux学习笔记
- Linux扩展根目录
- linux基础知识总结
- Linux 系统应用编程——进程间通信(上)
- linux下一些软件的安装
- Linux:如何获取Linux发行版的内核头文件
- CentOS配置smaba与Windows共享文件
- CentOS 64位上编译 Hadoop 2.6.0
- Centos 6.5 X64 环境下编译 hadoop 2.6.0 --已验证