Android目录结构

  • data

    • app:用户安装的应用
    • 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:打印当前用户的id

    • uid=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指令为例:

    Runtime.getRuntime().exec("su");
    

小案例:冻结解冻应用(这里执行指令通过第三方jar包完成RootTools.jar)

  • 冻结和解冻指定的应用
  • 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);
    

静默安装

  • 为什么有静默安装的需求

    1. 正规应用。电子市场,方便用户静默安装
    2. 流氓软件。后台偷偷下载安装。
  • 自动下载应用,然后静默安装

    //静默安装
    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

Android下的linux指令集相关推荐

  1. Android下的Linux

    1. Android目录结构 data app:用户安装的应用 data:应用的专属文件夹 system:系统的配置信息,注册表文件 anr:anr异常的记录信息 dev:devices的缩写 存放设 ...

  2. Android Linux指令集

    android下的linux指令集 android应用层访问底层组件 1,jni 2,直接使用linux命令 android系统结构 1,data目录 /data/data 目录:存放apk的数据目录 ...

  3. linux android编译环境,Linux下Android开发安装环境配置

    --1.概述 为什么要在Linux搭建开发环境呢?从直观来说,Android虚拟机在Linux下运行速度更快,而且性能更稳定. 我使用的Linux环境是ubuntu-10.10-desktop-i38 ...

  4. Android在Shell环境下运行Linux命令

    Android的底层其实linux,所以可以在android shell下运行linux命令,尤其是经过root处理的Android系统,基本上可以通过调用linux命令完全操作手机,下面的RootC ...

  5. 鸿蒙os能运行win软件吗,暂无在Windows、Linux、Android下运行华为鸿蒙OS的模拟器

    在网络上有人开发出了Flmage,用它可以模拟运行谷歌的Fuchsia OS,然后有人想是不是也有同样的工具能够运行华为鸿蒙OS(HarmonyOS).可惜的是,在Windows.Linux.Andr ...

  6. hal层 摄像头 android,Android下Linux摄像头的HAL封装设计

    摘要: 随着Android系统的推广,手机,移动设备以及各种智能终端大量采用Android作为操作系统.在Android系统当中,camera HAL (硬件抽象层)是联系上层摄像头接口与下层Linu ...

  7. 嵌入式Linux支持dlopen,Android下使用dlopen函数动态调用.so链接库

    在这篇文章([09.03.25]Linux环境中dlopen函数的简单应用)中.实现了在UBUNTU LINUX环境下使用dlopen函数动态调用.so链接库.但是也提到了在Android下未能成功. ...

  8. 安卓抓包工具 linux,Android 下使用tcpdump网络抓包方法

    Android 下使用tcpdump网络抓包方法 抓包需要tcpdump以及Root权限,tcpdump在本文后有下载. 首先把tcpdump传进手机,用adb命令(放SD卡有时会有问题,我一次可以用 ...

  9. Android下NDK开发环境搭建

    Android下NDK开发环境搭建 1.     AndroidNDK安装与配置 1.1  NDK简介 Android NDK是一套允许开发人员使用本地代码(如C/C++)进行Android APP部 ...

最新文章

  1. MySQL面试题 | 附答案解析(八)
  2. join left 大数据_Java并发编程笔记-JDK内置并行执行框架Fork/Join
  3. python网络爬虫的基本步骤-Python网络爬虫学习手记(1)——爬虫基础
  4. 谁说只有VGG才能做风格迁移,ResNet也可以
  5. 解决Redis超卖问题
  6. vue打包完index.html空白,解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题-20210315083204.pdf-原创力文档...
  7. 手动抽油机_察雅县抽油机钢丝绳橡胶皮带生产厂家
  8. 拷贝构造函数编程实验
  9. PMP之项目整合管理之变更管理计划
  10. vue --- 使用vue-router获取带参数的路由
  11. 线程加入 java 1615477815
  12. 一个mysql复制中断的案例
  13. c语言万年历报告ppt,万年历设计报告
  14. 昨天发现,博客排名进行了两次
  15. js实现正方体旋转动画
  16. [EMQX-V3.4.6源码解析系列]-1-EMQX简介
  17. 通讯录管理系统的设计与实现
  18. linux安装pytorch
  19. 使用LaTeX表示数学方程(附源码)
  20. inittab文件详解

热门文章

  1. virtualbox安装ubuntu时,not syncing: attempt to kill the idle task
  2. 嵌入式应用层开发应该学习什么?
  3. 电脑显示wifi连接但是不能上网(dns无法连接)
  4. C++删除文件末尾的空行
  5. 定时器轮播图---(功能:自动轮播,左右箭头点击切换,点击圆点跳转图片)
  6. java计算机毕业设计网上宠物商城管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  7. HBase-拆分合并和调优参考
  8. 计算机安装Hp1005打印机,hp1005打印机驱动 (64)
  9. 满城尽带黄金“假”(二)——断臂殇为谁而鸣
  10. C语言小黄鸭-->函数()