AndroidLinux--------指令集

2023-10-19 22:32

本文主要是介绍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
      重启的命令
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--------指令集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/242796

相关文章

字节全员标配的内部指令集鼠标垫,我的粉丝每人包邮送一块

最近很多粉丝后台说 steam 都开夏促了,看公号这么久有啥福利没……年中了是该给大家发点福利,我仔细琢磨了一下,找大厂的朋友要了一套他们撸了多年的 Java 算法逻辑 + 面试要点的私货,于是叫上合作伙伴,加急定制了一波桌面大鼠标垫! 很大…很爽、很实用 这批鼠标垫市面上必然买不到,从供应商给我的设计图来看, B 格还是不错的(拿来垫桌子也很实用)。不卖关子,从事 Java 工作的见者有份,

嵌入式:Arm v7-M指令集架构中的字节序(大小端)

相关阅读 嵌入式https://blog.csdn.net/weixin_45791458/category_12768532.html?spm=1001.2014.3001.5482         本文来源于博主无意之中的一个发现,虽然之前就知道Cortex-M3默认为小端模式,但是偶然发现了一些出乎意料的情况。         首先来看看Arm v7-M指令集架构中相关的定义。

ARM指令集——状态寄存器访问指令

ARM中有两条指令用于状态寄存器和通用寄存器之间传送数据。程序不能直接修改CPSR中的T控制位直接将程序状态切换到Thumb状态,必须通过BX等指令完成程序状态的切换。通常修改状态寄存器时通过“读取-修改-写回”的操作序列来实现的。状态寄存器访问指令包括以下两条指令: MRS 状态寄存器到通用寄存器的传送指令MSR 通用寄存器到状态寄存器的传送指令 下面一一介绍之: 1、MRS

ARM指令集——乘法指令

ARM有两类乘法指令:一类为32位的乘法指令,即乘法操作的结果为32位;另一类位64位的乘法指令,即乘法操作的结果为64位。两类指令共有以下6条: MUL 32位乘法指令MLA 32位带加数的乘法指令SMULL 64位有符号数乘法指令SMLAL 64位带加数的有符号乘法指令UMULL 64位无符号数乘法指令UMLAL 64位带加数的无符号数乘法指令 下面一一介绍之: 1、M

ARM指令集——数据处理指令篇

输出传送指令包括以下指令: MOV 数据传送指令MVN 数据求反传送指令CMP 比较指令CMV 基于相反数的比较指令TST 位测试指令TEQ 相等测试指令ADD 加法指令SUB 减法指令RSB 逆向减法指令ADC 带位加法指令SBC 带位减法指令RSC 带位逆向减法指令AND 安位与指令BIC 为清零指令EOR 逻辑异或指令ORR 逻辑或指令 下面分别作详细介绍: 1、MO

arm接口技术二--指令集与异常处理

arm汇编工程 注意事项: 魔法棒 - listing的两个选项勾上Linker --- Text Start: 指定指针起始地址0x0品按钮 – Folder选择arm-none-eabi编译器assemble编译报错:KEIL中错误FCARM - Output Name not specified, please check ‘Options for Target - Utilit解决方法

C++系统相关操作4 - 获取CPU(指令集)架构类型

1. 关键词2. sysutil.h3. sysutil.cpp4. 测试代码5. 运行结果6. 源码地址 1. 关键词 关键词: C++ 系统调用 CPU架构 指令集 跨平台 实现原理: Unix-like 系统: 可以通过 uname -m 命令获取 CPU 架构类型。Windows 系统: 可以通过环境变量 PROCESSOR_ARCHITECTURE 获取 CPU 架构类型。

01_RISC-V 入门及指令集学习

参考文档 risc-v入门:https://blog.csdn.net/bebebug/article/details/128039038RISC-V OS:https://blog.csdn.net/bebebug/article/details/130551378riscv-spec文档:https://riscv.org/wp-content/uploads/2019/12/riscv-s

使用SSE指令集来优化程序

SSE和SSE2的指令系统非常相似,SSE2比SSE多的仅是少量的额外浮点处理功能、64位浮点数运算支持和64位整数运算支持。     SSE为什么会比传统的浮点运算更快呢?因为它使用了128位的存储单元,这对于32位的浮点数来讲,是可以存下4个的,也就是说,SSE中的所有计算都是一次性针对4个浮点数来完成的。     虽然SSE从理论上来讲要比传统的浮点运算会快,但是所受的限制也很

CPU中的寄存器CPU能理解的指令(指令集)

CPU中的寄存器         寄存器有很多种。如指令寄存器,专门存储指令 问:CPU的寄存器存的是什么? 答:CPU寄存器是中央处理器(CPU)内部的一小部分高速存储资源,用于快速访问和存储各种类型的数据和信息。以下是CPU寄存器通常存储的一些内容: 指令:某些CPU寄存器(如指令寄存器,IR)用于存储当前正在执行的指令。 操作数:操作数寄存器用于存储指令的操作数,这些操作数是计算