Apktool(4)——实战篇:修改小米桌面

准备工作:

1.下载对应手机型号线刷Rom包,进入小米官网Rom下载频道

2.解压下载下来的Rom包,并用Rom助手提取出system.img中的文件内容。这方面的文章很多,请参考Rom助手如何提取IMG文件

3.找到跟小米桌面相关的apk——/system/priv-app/MiuiHome.apk(5.0及以上系统是在MiuiHome文件夹下的MiuiHome.apk)

实战篇:

1.尝试反编译MiuiHome.apk,具体可参考:Apktool(3)

2.步骤1会提示需要依赖的framework文件,这里依赖文件是/system/app/miui.apk

运行:apktool if miui.apk –t xiaomi

该命令只需执行一次,以后再次反编译时会到默认路径下去load依赖文件。其中-t参数是给依赖文件加标识。

3.再次反编译MiuiHome.apk,运行:apktool d –cf MiuiHome.apk –t xiaomi

则会得到MiuiHome文件夹。

4.修改桌面

尽管已经反编译了MiuiHome.apk,但想要修改桌面,必须找到直接关系到小米桌面的配置文件。那么桌面的配置文件在哪里呢?

我在Apktool(2)中介绍了res目录则是程序中所有的资源文件,显然,我们需要在该目录下寻找。

小米手机首次启动,会加载哪个配置文件呢?结论是:res/xml/default_workspace4x5.xml(4列5行桌面图标)

该目录下有这么多配置文件,怎么知道启动加载的是该文件呢?具体可参考:http://forum.xda-developers.com/showpost.php?p=40167735

由此可得出结论:如果我们不希望手机启动时加载该文件也可以修改res/values/integers.xml文件中的config_cell_count_x和config_cell_count_y

(未验证,读者可自行验证)

知道关系到小米桌面的关键配置文件,那我们就可以通过修改该配置文件来修改桌面了。(该配置文件部分如下)

#1.几个关键词

folder代表文件夹,该默认桌面有两个文件夹。

launcher:title为文件夹的名称,前面com.miui.home:string/是固定的,告知系统从该位置下加载配置文件。

launcher:screen为桌面的屏数,默认第一屏launcher:screen=0,后面以此类推。

launcher:x和launcher:y分别代表列号和行号,默认都是从0开始编号的,如第三行第四列,则launcher:x=3,launcher:y=2。

clock2x4为系统加载的系统时钟。

favorite为程序(apk)的快捷方式。

launcher:className为apk的类名,launcher:packageName为apk的包名。对于获取类名和包名,后续博文会介绍,请关注。

#2.修改favorite

显然,我们可以通过修改launcher:x和launcher:y来调整apk的位置,launcher:screen来修改apk该放在哪一屏。

#3.修改folder文件夹

同样,可以通过修改launcher:x和launcher:y来调整文件夹的位置,launcher:screen来修改文件夹该放在哪一屏。

这里还需要说明的是:

1)怎么定义文件夹的名字?

系统加载的中文名字的配置文件是res\values-zh-rCN\string.xml,可以看到系统默认加载的两个文件夹的名字为“系统工具”和“推荐”。

因此,我们可以在这里修改文件夹名字,或者增加自定义的文件名。

2)怎么添加程序apk到文件夹?

launcher:container为文件夹的id,默认从1开始编号。

通过观察launcher:x和launcher:y,我们发现y是固定不变,x从0开始编号,这样,添加进文件夹的apk快捷方式就会从左到右,从上到下依次排列。

#4.修改hotseat

hostseat为如图所示apk

查看配置文件:

可以看到launcher:container定义为-101,launcher:y固定不变,launcher:x从0开始编号。这样也可以对其进行相应的修改。

5.编译

至此,我们通过修改配置文件修改小米的桌面了。

最后,我们必须反编译修改后的文件,生成修改后的apk。

运行:apktool b -cf -t xiaomi MiuiHome -o out\MiuiHome.apk

这样,我们就编译生成了修改后的apk了。

疑问:1.怎么获取apk类名和包名呢?

2.怎么刷入修改后的apk系统到小米手机呢?

3.通过rom助手解开的system.img,怎么打包生成img文件呢?

请持续关注博客更新。

参考文献:

1.http://forum.xda-developers.com/showpost.php?p=40167735

2.Rom助手如何提取IMG文件http://www.yzmg.com/news/show-89909.html

时间: 2024-11-10 00:51:58

Apktool(4)——实战篇:修改小米桌面的相关文章

caffe框架下目标检测——faster-rcnn实战篇操作

原有模型 1.下载fasrer-rcnn源代码并安装 git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git 1)  经常断的话,可以采取两步: git clone https://github.com/rbgirshick/py-faster-rcnn.git 2)  到py-faster-rcnn中,继续下载caffe-faster-rcnn,采取后台跑: git submodule update --in

2天驾驭DIV+CSS (实战篇)(转)

这是去年看到的一片文章,感觉在我的学习中,有不少的影响.于是把它分享给想很快了解css的兄弟们.本文是实战篇. 基础篇[知识一] “DIV+CSS” 的叫法是不准确的[知识二] “DIV+CSS” 将你引入两大误区[知识三] 什么是W3C标准?[基础一] CSS如何控制页面[基础二] CSS选择器[基础三] CSS选择器命名及常用命名[基础四] 盒子模型[基础五] 块状元素和内联元素 实战篇[第一课] 实战小热身[第二课] 浮动[第三课] 清除浮动[第四课] 导航条(上) | 导航条(下)[大练

Systemd 入门教程:实战篇

Systemd 入门教程:实战篇 上一篇文章,介绍了 Systemd 的主要命令,这篇文章主要介绍如何使用 Systemd 来管理我们的服务,以及各项的含义: 一.开机启动 对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件,如果你想让该软件开机启动,就执行下面的命令(以httpd.service为例). $ sudo systemctl enable httpd 上面的命令相当于在/etc/systemd/system目

前端开发--实战篇之测试框架

如果不了解前端开发环境,请参考搭建前端开发环境, 如果不了解实战篇的项目配置,请参考前端开发--实战篇 步骤一:待命 在cmd里面,进入到public文件夹待命. 步骤二:初始化karma配置文件karma.conf.js 执行初始化配置文件的命令: karma init 根据向导,大多数使用默认配置即可.具体见下图: 步骤三:根据当前目录结构,修改配置文件karma.conf.js 添加待测试的js文件: files: [   'app/dist/lib/angular/*.js',   'a

MySQL的进阶实战篇

[版权申明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/69857949 出自[zejian的博客] 关联文章: MySQL的初次见面礼基础实战篇 MySQL的进阶实战篇 本篇上一篇博文MySQL的初次见面礼基础实战篇的延续,是mysql的进阶内容的记录,本篇主要知识点如下: 进阶实战篇 进阶实战篇 mysql视图机制 什么是视图 视图创建与使用 视图的本质 高效索引 使用索引的理由 索引

MySQL的初次见面礼基础实战篇

[版权申明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/61614366 出自[zejian的博客] 本篇将以最简单的方式呈现并演绎mysql数据库的必知必会的知识点,通过本篇博文您将会对mysql从起点到终点的较为全面的认识,关于mysql的知识,将分两篇来记录,即MySQL的基础实战篇和MySQL的进阶实战篇,以下是本篇的主要知识点. 基础实战篇 环境准备 数据库与表的创建以及SQL增

ROS2.9.27架设网吧软路由实战篇之端口映射与回流

转载:http://blog.csdn.net/zm2714/article/details/7924280 上一篇:ROS2.9.27架设网吧软路由实战篇之连通网络,主要讲述了网吧架设软路由ROS2.9.27的基本配置,目的就是使网吧能顺利连接外网.没有涉及到更丰富的其它功能和网络安全等方面,本章主要讲述在网吧中架设WEB服务器为例,引出ROS2.9.27的端口映射和回流.部分内容要以上一章为基础,在此特意注明. 网吧内网中有一台机器做为WEB服务器和FTP服务器,因此需要在ROS2.9.27

《nodejs+gulp+webpack基础实战篇》课程笔记(三)--webpack篇

webpack引入 前面我们简单学习了gulp,这时一个前端构建框架---webpack产生了(模块打包) 它能帮我们把本来需要在服务端运行的JS代码,通过模块的引用和依赖打包成前端可用的静态文件.(这里有需要了解一下CommonJS规范,具体请自行查看http://commonjs.org). 安装webpack: npm install -g wabpack //这里我们采用全局安装,保证每个项目中都能使用到 设置配置文件:  在项目目录下,新建一个webpack.config.js文件 m

Web安全测试中常见逻辑漏洞解析(实战篇)

Web安全测试中常见逻辑漏洞解析(实战篇) 简要: 越权漏洞是比较常见的漏洞类型,越权漏洞可以理解为,一个正常的用户A通常只能够对自己的一些信息进行增删改查,但是由于程序员的一时疏忽,对信息进行增删改查的时候没有进行一个判断,判断所需要操作的信息是否属于对应的用户,导致用户A可以操作其他人的信息.? 逻辑漏洞挖掘一直是安全测试中"经久不衰"的话题.相比SQL注入.XSS漏洞等传统安全漏洞,现在的攻击者更倾向于利用业务逻辑层的应用安全问题,这类问题往往危害巨大,可能造成了企业的资产损失和