如何使用简单的Android之RootTools框架

    作者:课课家教育更新于: 2017-05-11 15:10:38

      欢迎各位阅读本篇文章,本篇文章将讲述如何使用简单的Android之RootTools框架,课课家教育平台温馨小提醒:本篇文章中有许多的小细节,因此大家一定要认真阅读本篇文章哦!

      Android目录结构如下:

    如何使用简单的Android之RootTools框架_框架_RootTools_Android_课课家教育

      data:

      app:用户安装的应用

      data:应用的专属文件夹

      system:系统的配置信息,注册表文件

      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:用户设备的配置信息,键盘编码和按键编码的映射

      xbin:是专为开发人员准备的二进制指令

      Android下的Linux指令

      su:superuser

      切换到超级用户

      rm:remove,删除文件

      rm 文件名

      ls:列出目录下的所有文件和文件夹cd:切换到某个目录

      ls -l:查看文件的详细信息

      ls -a:查看隐藏文件

      cat:查看文件内容

      cat 文件名

      不要cat二进制可执行文件

      mv:move 修改文件名

      mv 原文件名 新文件名

      mkdir:创建文件夹

      mkdir 文件夹名字

      rmdir:删除文件夹

      rmdir 文件夹名字

      touch:创建新文件

      touch 文件名

      chmod:change mode,切换文件访问权限

      chmod 777 文件名

      echo:回显数据;重定向数据sleep:睡眠几秒

      echo 数据 > 文件名

      df:显示指定目录的容量

      id:打印当前用户的idps:列出系统中运行的所有进程

      uid=0:root

      uid=1000:system

      uid=2000:shell

      uid=10000+:一般应用程序的id

      kill:杀死指定pid的进程

      kill pid

      chown:change owner,修改拥有者

      chown 0.0 文件名

      mount:挂载文件系统

      mount -o remount rw /:挂载当前目录为可读可写权限

      mount -o remount rw /system:重新挂载指定目录

      Android中特有的指令

    Android中特有的指令

      am:ActivityManager,可以进行跟activity相关的操作

      am start -n com.itheima.createfile/com.itheima.createfile.MainActivity:开启指定Activity

      am kill com.itheima.createfile:结束非前台进程

      am force-stop com.itheima.createfile:结束进程

      pm:PackageManagermonkey -p com.itheima.createfile 1000:自动点击指定应用1000次

      pm disable 包名:冻结指定应用

      pm enable 包名:解冻指定应用

      刷模拟器,rom写文件(su)

      如果想让真实手机运行这些指令,手机必须要有root权限

      刷root原理:把su二进制文件拷贝到/system/bin或者/system/xbin

      Android刷root软件,工作的原理全部都是利用系统的漏洞实现

      rom:可以理解为android系统的安装文件

      把su文件和superuser.apk写入img文件

      执行su指令

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

      小案例:冻结解冻应用

      冻结和解冻指定的应用

    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文件刷进img中

      Android系统默认的中文字体为DroidSansFallBack.ttf

      用你想使用的字体ttf文件替换掉这个文件即可

      修改开机动画

      从真机中得到bootanimation.zip

      把bootanimation.zip放入system/media目录下

      删除锁屏密码

      删除data/system下的key文件

      文本密码为password.key

      手势密码为gesture.key

      课外知识分享:

      在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型。

    虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型。

      SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。

      例如:可以在Integer类型的字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值。

      但有一种情况例外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数,当向这种字段保存除整数以外的数据时,将会产生错误。 另外,在编写CREATE TABLE 语句时,你可以省略跟在字段名称后面的数据类型信息,如下面语句你可以省略

      name字段的类型信息:CREATE TABLE person (personid integer primary key autoincrement, name varchar(20)) SQLite可以解析大部分标准SQL语句,如:查询语句:select * from 表名 where 条件子句 group by 分组字句 having ... order by 排序子句 如:select * from person 、select * from person order by id desc、select name from person group by name having count(*)>1 分页SQL与MySQL类似。

      下面SQL语句获取5条记录,跳过前面3条记录 select * from Account limit 5 offset 3 或者 select * from Account limit 3,5 插入语句:insert into 表名(字段列表) values(值列表)。如: insert into person(name, age) values(‘**’,3) 更新语句:update 表名 段名set 字=值 where 条件子句。如:update person set name=‘**‘ where id=10 删除语句:delete from 表名 where 条件子句。如:delete from person where id=10 获取添加记录后自增长的ID值:SELECT last_insert_rowid()

      小结:相信最后大家阅读完毕本篇文章后,一定学到了不少知识吧?其实大家私下还得多多自学才能了解更多的知识,如果大家还想更深入的了解相关方面的内容的话呢,课课家教育平台欢迎各位咨询!

课课家教育

未登录