admin 发表于 2017-2-17 10:07:00

[教程] MIUI6电脑端反编译环境搭建及回编译错误处理

[教程] MIUI6电脑端反编译环境搭建及回编译错误处理。

写在前面的话:近来看到论坛有人求助反编MIUI6的方法,或有人虽搭建了反编译环境,但在编译过程中会失败,或有人虽然反编译成功了,但回编译出错,所以盟生写下此帖的想法。本文仅对有志于踏入MIUI6反编译队伍的同学,提供一个完整的搭建反编译环境的方法,“授人以鱼不如授人以渔”。本文适合玩机小白阅读,高手请无视之。
  本帖最下方提供反反编工具合集下载。java有32位和64位之分,请大家针对自己的系统下载不同的版本。
  一、安装Java的JDK和JRE:
  JRE是Java Runtime Enviroment的缩写,是指Java的运行环境,是面向Java程序的使用者,而不是开发者。JDK就是Java Development Kit的缩写,简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。
  由于安装过程相对简单,直接按照默认设置点击下一步就可以安装完成,所以这里不作赘述,我仅在这里强调2点。
  一是安装jdk时应记下其安装路径,以便下述环境设置方面用到。我习惯将程序安装到d盘,所以我更改了路径。
http://attach.bbs.miui.com/forum/201412/29/163452kq6qncb88kqf6yx6.jpg.thumb.jpg
  二是安装jre时务必保持与jdk相同的安装路径。
http://attach.bbs.miui.com/forum/201412/29/163456y5eeqyqxhfsojsoq.jpg.thumb.jpg
  二、配置Java基本环境:
  在桌面上的“计算机图标”上右击,在弹出的快捷菜单中选择属性进入属性对话框。
http://attach.bbs.miui.com/forum/201412/29/163459a65mzoh60o6szh66.jpg.thumb.jpg
  单击高级系统设置,弹出“系统属性”窗口。
http://attach.bbs.miui.com/forum/201412/29/163504yosyvtraa6yps6s4.jpg.thumb.jpg
  单击最下端的环境变量,进入变量设置界面。
http://attach.bbs.miui.com/forum/201412/29/163510uiiy1vt2vyn3kep3.jpg.thumb.jpg
  在系统变量框架下方单击新建,建立JAVA_HOME变量,表示设定JDK所在的位置。将其路径设置为你刚才安装JDK的路径,如下图所示。我的是在d盘的哈。
http://attach.bbs.miui.com/forum/201412/29/163512u9iv6cbw0gbsjbz2.jpg.thumb.jpg
  点确定后回到系统设置界面,在系统变量中找到path这一项,单击编辑,在path路径中加入JDK的bin文件夹路径,即“%JAVA_HOME%\bin;”,如下图。注意“;”号不可少。
http://attach.bbs.miui.com/forum/201412/29/163514ucrnvc9i2xaj4t2c.jpg.thumb.jpg
  为了验证Java环境是否配置正确,windows徽标键+字母R弹出运行对话框,输入cmd回车,在cmd界面输入java –version,弹出java版本信息则表示配置成功。如提示“java不是内部或外部命令”,请仔细检查环境设置的路径及字母书写是否正确。
http://attach.bbs.miui.com/forum/201412/29/163517atnggltnqi5qiiyn.jpg.thumb.jpg
  三、MIUI6反编译工具准备及框架文件搭建。
  1.由于MIUI6是基于安卓4.4的系统,因此以前的很多工具不能使用用了,本文附件的apk工具可以完美反编译4.4的系统。解压附件提供的apk工具产生apktool文件夹,将它放到电脑的任何地方均可。
  2.MIUI6相比v5而言,框架发生了很大改变,MIUI6的框架文件有app目录下的miui.apk,MiuiFramework.apk和framework目录下的framework-res.apk,framework-ext-res.apk这4个必须的文件,很多人不知道miui,apk也是框架文件,所以会反编译失败。将这4个文件拷贝到apktool目录,如下图。
http://attach.bbs.miui.com/forum/201412/29/163520sadnrvb2g2hxk7ob.jpg.thumb.jpg
  3.双击一键apktool.exe,打开对话框,键盘输入数字1分别安装上面四个框架文件。
http://attach.bbs.miui.com/forum/201412/29/163527jywjajbwrbzib23s.jpg.thumb.jpg
  产生的框架文件位于当前用户目录的apktool\framework里面,即1.apk,8.apk,9.apk,10.apk。当然如果你够细心,2-7的框架文件你也可以补齐它。如果反编普通apk文件失败,请手动删除这4个框架文件。
http://attach.bbs.miui.com/forum/201412/29/163523hwgzvob666obdv3w.jpg.thumb.jpg
  将需要反编译的apk文件复制到apktool目录,输入2进入apk列表进行选择,我选择反编译状态栏文件MiuiSysteUI.apk,没有出现任何错误提示即表示成功。
http://attach.bbs.miui.com/forum/201412/29/163530oadhwdadhgd54gh8.jpg.thumb.jpg
  接下来我们就可以美化图标,或者修改布局,比如时间居中等。
  四、回编译错误的处理。
  很多同学反映即使能反编译成功,但不作任何修改回编译时也会出现许多错误信息。下面以我反编译的MiuiSystemUi作为范例,给大家介绍下我已知的解决办法。先来看看产生的错误信息,真是一大堆啊,看到它你们是不是感觉很头痛呢?
http://attach.bbs.miui.com/forum/201412/29/163540fkkhfyx3j46jjx3e.jpg.thumb.jpg
  不要为这些错误信息所迷惑,其实错误就只有3行,上图的红框部分便是真正的错误所在。归纳起来其实就是一名话“以下目录无效”。换言之,即是这些目录不能被回编译程序识别。
  这些文件夹位于res目录内,如下图所示。
http://attach.bbs.miui.com/forum/201412/29/163544vch2fu32u22fko22.jpg.thumb.jpg
  那是不是我将这些目录删除就可以了呢?其实不止这么简单,删除它你只对了50%,因为这些文件夹里面还包括了一些资源信息。下面我们来看下这些文件夹里有哪些资源,以largeui为例来揭开这些文件的庐山真面目。
http://attach.bbs.miui.com/forum/201412/29/163545bf4y9hgjg45tty89.jpg.thumb.jpg
  以上这些文件你是否感觉到有几分相识?它们不就是values下的那些个资源文件么。所以我们接下来要做的事情就是把这几个无效目录内的资源文件合并到values目录下。首先用ultraedit32分别打开bools.xml文件,窗口水平平铺以便于观察对比。注:因ultraedit32为破解免费软件,所以会被杀毒软件误报,所以安装前请先关闭。
http://attach.bbs.miui.com/forum/201412/29/163552xv3em929fl34y4j3.jpg.thumb.jpg
  从上图可以看出,largeui的bools.xml文件中有一个名称为“miui_font_scale_switch”的资源ID,复制它,窗口焦点移到values的bools.xml文件,ctrl+f调出查找框,将刚才这条资源ID粘帖上去,看有没有重复的ID,红色表示没有查找到该ID。好的,现在我们将这个ID加入到values的bools.xml文件中,放在第一行。接下来,另2个文件及另2个文件夹中的文件依葫芦画瓢,加入到values的其它资源中去。最后记得要保存下,并删除所有产生的备份文件和以上3个无效文件夹,否则编译会失败。
http://attach.bbs.miui.com/forum/201412/29/163557hth2gtfnqtqbreot.jpg.thumb.jpg
  好的,下面我们再次进行编译,看看,是不是已经通过了呢。
http://attach.bbs.miui.com/forum/201412/29/170225x9vsprwmwipgwvwn.jpg.thumb.jpg
  MIUI6系统其实已经是非常好的系统,所以我不推介大家修改,任何修改可导致系统产生不稳定,轻则运行时错误,重则卡MI或无限重启。我来论坛不久,初识MIUI系统,也是一玩机小白,愿与大家共同学习和交流。
  附件在下边,也许你用得着。

MIUI6反编译工具合集

https://pan.baidu.com/s/1bAzXHc

页: [1]
查看完整版本: [教程] MIUI6电脑端反编译环境搭建及回编译错误处理