Android操作系统底层linux
2.6.x内核
Linux文件的访问权限:
rwx rwx rwx
111 111 111
r: 可读
w:可写
x:可执行
7 7 7
600
4755
755
Android操作系统的目录结构
data目录: 保存应用程序的数据
- /data/app目录 用户安装的应用程序的apk
- /data/anr目录 开发人员使用定位anr异常
- /data/system目录 系统配置信息,注册表
dev目录 : devices英文单词的缩写
linux操作系统所有的设备都是用文件表示的
mnt 外置的挂载上来的设备
sdcard u盘
proc 虚拟的文件系统 目录 配置(进程的信息),状态信息(cpuinfo meminfo)
sys 类似 /proc ,也是虚拟的文件系统 .里面主要表示硬件设备信息和设备驱动信息
sbin
system bin系统重要的二进制文件
adbd: adb调试桥的服务器端进程system 系统目录文件夹(重要) Android系统标准目录结构
- /system/app目录 系统应用程序目录 默认卸载不掉
- /system/bin目录 可执行的二进制程序
- /system/etc 扩展目录
- /system/fonts 字体目录
- /system/framework 框架平台中间件
- /system/lib 类库 c/c++代码
- /system/media 媒体资源
- /system/tts 语音发声引擎 不支持中文
- /system/usr 用户设备的配置信息 按键编码映射
- /system/xbin 二进制文件,为开发人员提供的二进制文件
常见的linux指令
建议大家在练习操作指令时在:/data/local/tmp 临时目录中练习。目录里面的文件都是可以任意操作
- su
superuser 切换到超级管理员,无所不能的
# 超级管理员
$ 一般用户
- rm
remove 删除一个文件
rm 文件名
rm *.txt- ls
list
列出来所有的文件和文件夹
ls -l 列出来文件的详细信息 c驱动 d文件夹 -文件
ls -a 显示隐藏文件 文件名前缀带. 就是隐藏文件- cd
切换到某个目录 cd .. 切换到上级目录- cat
猫,好奇害死猫
查看文件详细内容的指令
cat 文件名
注意: 一定不要cat 二进制程序- mv
move 移动
move 源地址 – > 目标地址
常用于文件的重命名 move 源文件名称 目标文件名称- cp
copy 拷贝文件 在Android操作系统并没有被引入进来,用cat命令代替- mkdir
make dir 创建文件夹rmdir
删除文件夹
rm -f xxxx 删除一个非空文件夹的命令
chmod
change mode
更改文件的模式,权限
修改为最高权限 chmod 777 文件名touch
创建文件 操作文件的指令
touch 文件名 如果文件不存在,直接创建文件,如果文件存在,什么事情都不发生echo
回显数据, 数据的重定向
echo ‘abcdef’ > gaga.txt
向gaga.txt 文件里面写入内容 abcdef
可以利用重定向符号去实现文件的拷贝cat gaga.txt > hoho.txt 将gaga.txt文件的内容复制到 hoho.txt文件中,如果没有hoho.txt文件,将会自动创建
sleep
.sh linux系统的下的批处理文件
sleep 睡眠函数 用于延迟多久执行命令df
df /mnt/sdcard 列出来一个目录的空间状态信息
id
打印获取当前的用户组
android系统给不同的应用分配了不同的用户
uid, user id,用户id
uid=0(root) 无所不能,非常强大 如来佛祖
uid=1000(system) 系统用户 比较强大 玉皇大帝
uid=2000(shell) 命令行窗体 执行adb指令
uid=(10000+) 一般应用程序的id 如果不声明权限,什么危险的操作都干不了- ps
列出来操作系统运行的所有的进程
- kill
杀掉进程
kill 进程pid - reboot
重启 root权限下 - chown
change owner 更改所有者
chown 当前文件所有者.当前文件所有者组(0.0 1000.1000 2000.2000 ) 文件名 - mount
挂载,只有文件系统被挂载才可读可写
mount -o remount rw / 挂载当前目录为可读可写权限
mount -o remount ,rw /system 删除任意的文件 Android下特有的linux指令
am
activity manager
am start -n top.lengzheng.linuxcommand/top.lengzheng.linuxcommand.MainActivity 开启一个应用程序
am force-stop top.lengzheng.linuxcommand 强行停止应用
am startservice 开启服务 am startservice -a xxxx (xxx表示action的值-a表示动作,就是你在Androidmanifest里定义的)
am broadcast 发送广播 am broadcast –a XXX (xxx表示action的值)pm
package manager 包管理器
pm clear PACKAGE 清除应用程序数据
pm disable PACKAGE_OR_COMPONENT 冻结应用程序(深度冻结)
pm enable PACKAGE_OR_COMPONENT 解冻应用程序(深度解冻)
pm install xxxxxx.apk
pm unstall 包名monkey
猴子 自动化压力暴力测试
monkey -p top.lengzheng.linuxcommand 1000sendevent
sendevent /dev/input/event0 3 0 +pointX 水平方向坐标
sendevent /dev/input/event0 3 1 +pointY 垂直方向坐标
如果想让真实的手机执行这些指令
前提条件: 手机必须要root权限,手机要刷root
刷root的原理
就是把su二进制文件拷贝到 /system/bin 或者/system/xbin