Android下的linux指令集

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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Idea快捷键是IntelliJ IDEA集成开发环境中的一些快捷键操作。通过使用这些快捷键,开发人员可以更高效地进行代码编辑、编译和调试等操作。一些常用的Idea快捷键包括:Ctrl + C(复制)、Ctrl + V(粘贴)、Ctrl + S(保存)、Ctrl + Z(撤销)、Ctrl + Y(删除)、Ctrl + F(查找)等等。这些快捷键可以帮助我们节省时间,提高开发效率。 Linux指令壁纸是指在Linux操作系统中,通过使用壁纸的方式将一些常用的Linux命令和它们的用法展示在桌面上。这样,用户在日常使用电脑时就可以通过查看壁纸来熟悉和记忆这些命令。Linux壁纸中通常会列出一些基本的命令,如ls(显示文件和目录)、cd(切换目录)、mkdir(创建目录)、rm(删除文件或目录)等等。同时,一些高级的命令和常用的选项也会出现在壁纸中,帮助用户更好地掌握和使用Linux系统。 无论是Idea快捷键还是Linux指令壁纸,它们都是为了让开发人员和Linux用户更加高效地工作和学习。通过学习和使用这些工具,我们可以更快速地完成开发任务,提升工作效率,并且掌握更多有关Idea和Linux的技能。希望这样的回答对你有所帮助。 ### 回答2: Idea快捷键是IntelliJ IDEA集成开发环境(IDE)中的一种功能。IntelliJ IDEA是一款非常强大且受欢迎的Java开发工具,拥有很多方便和高效的快捷键,可以帮助开发人员提高代码编写和编辑的速度。 使用Idea快捷键可以快速进行代码编写、编辑、导航和调试等操作。其中一些常用的快捷键包括: - CTRL + S:保存当前文件。 - ALT + ENTER:显示快速修复和建议的菜单,用于解决代码中的问题。 - CTRL + D:复制当前行或选定的代码。 - CTRL + SHIFT + F:在工程中进行全局搜索。 - CTRL + P:在方法调用时显示参数列表。 - CTRL + /:在当前行或选定的代码行前插入或删除注释。 - CTRL + ALT + L:格式化选定的代码。 这些快捷键可以显著提高开发效率,尤其对于经常使用IntelliJ IDEA进行开发的开发人员来说更是如此。 另外,Linux指令壁纸是一种将常用的Linux命令以图标或文字的形式呈现在桌面上的壁纸。Linux是一种类Unix操作系统,广泛应用于服务器和嵌入式设备等领域。它有着强大的命令行界面和丰富的指令集,通过使用这些指令可以完成各种各样的任务。 Linux指令壁纸可以帮助用户快速查找和学习各种常用的Linux命令。当用户遇到问题或需要执行特定任务时,他们可以简单地查看壁纸上的指令图标或文字,并从中获得必要的信息。 此外,使用Linux指令壁纸还可以提高用户对Linux命令的熟悉程度,从而更好地掌握Linux系统的使用和管理。这对于那些初学者或只是偶尔使用Linux系统的用户来说尤为有益。 总的来说,Idea快捷键和Linux指令壁纸都是为了提高开发和使用效率而设计的工具,它们在相应领域内的用户中非常受欢迎。 ### 回答3: Idea快捷键是IntelliJ IDEA集成开发环境中的快捷键。IntelliJ IDEA是一款功能强大的Java开发工具,常用于开发Java、Android、Kotlin等项目。通过使用快捷键,开发者可以提高效率、节省时间。Idea快捷键包括编辑、导航、编译、调试等各个方面的操作。例如,Ctrl+C用于复制选中的内容,Ctrl+V用于粘贴剪贴板中的内容,Ctrl+Z用于撤销操作,Ctrl+S用于保存文件,Ctrl+F用于在当前文件中查找,Ctrl+Shift+F用于在整个项目中查找,等等。熟练掌握Idea快捷键可以提高开发效率,减少重复劳动。在使用Idea时,开发者可以参考相关的文档和教程,学习和使用各种快捷键,例如官方网站上提供的快捷键索引。 Linux指令壁纸是一种桌面壁纸,其背景图片是一些常用的Linux指令。Linux是一种开源的操作系统,以其稳定性、安全性和灵活性而闻名。使用Linux指令可以进行文件管理、软件安装、系统配置等各种操作。Linux指令壁纸将一些常用的指令整理成图片,用作桌面背景。在使用Linux操作系统时,用户可以随时查阅桌面壁纸上的指令,方便了解和记忆常用指令的用法。通过这种方式,用户可以快速学习和掌握Linux系统的基本操作。此外,用户也可以根据自己的需要定制壁纸,添加或删除指令,使其更适合自己的使用习惯。通过使用Linux指令壁纸,用户可以提高工作效率,减少操作失误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值