本文主要是介绍AndroidLinux--------指令集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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 rwx101 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 3ls -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
重启的命令
- 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权限下的编程开发
这篇关于AndroidLinux--------指令集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!