当前位置:首页 » 编程软件 » 编译framework

编译framework

发布时间: 2025-02-09 10:42:11

1. android怎么样编译framework

在开发过程中,尤其是Framework相关开发时,有时候需要重新编译资源文件.编译顺序和注意事项如下:
1,资源文件位置:frameworks/base/core/res
2,编译后生成的文件:framework-res.apk 另外com.android.internal.R会更新这个R.java所在目录为/out/target/common/R/com/android/internal.
3,编译资源后,必须重新编译framework.jar.
4,如果在frameworks/base/core/res执行mm是并不重新编译,请使用toutch ### 命令
###代表目录下的一个文件.
5,资源文件要小写.
6,如果没有必要,不要编译资源文件,可以用其他方式使用资源,比如将资源使用adb push 传到某个目
录,程序中直接指定具体目录.我在编译资源过程中遇到一些奇怪的问题,比如有时候许多图标会显
示错误,原因猜测跟重新编译资源有关,可以试着重新编译services.jar并替换看看.

举一个例子:假如我想在WindowManagerService.java中使用一个图片资源pic.png.顺序如下.
1,将文件pic.png拷贝到位置:frameworks/base/core/res/res/drawable下.
2,在frameworks/base/core/res/res/drawable目录下执行touch pic.png.
3,进入目录frameworks/base/core/res/ 执行mm命令, 编译 framework-res.apk
4,执行完后com.android.internal.R 会新生成一个R.drawable.pic的引用.在程序中使用即可.
5,在目录frameworks/base/ 下执行mm 编译 framework.jar.
6,在WindowManagerService.java中使用com.android.internal.R.drawable.pic,使用完后保存文件.
7,进入目录frameworks/base/services/java/ 执行mm 编译 services.jar
8,替换机器上(虚拟机或者真机)的jar apk文件.
adb push framework-res.apk /system/framework/
adb push services.jar /system/framework/
adb push framework.jar /system/framework/
执行命令时注意framework-res.apk 的真实路径.
9,reboot 机器,查看修改结果.大功告成!

2. 如何利用apktool反编译apk

在电脑上配置好JAVA环境变量,下载apktool并将其解压到C盘根目录的apktool文件夹中。打开命令提示符,输入命令cd \apktool,系统会切换到apktool文件夹。

使用RE管理器将系统中的framework-res.apk与SystemUI.apk提取出来,放置在apktool文件夹内。反编译framework-res.apk时,输入apktool if framework-res.apk命令。

反编译其他APK文件时,先输入apktool if framework-res.apk命令,再输入apktool if SystemUI.apk,确保框架文件已正确挂载。

如果需要回编译,输入apktool b XXX命令(不包含apk后缀),反编译输入apktool d xxx命令(包含apk后缀)。

对于某些特定的设备,如三星手机(型号如9100、9108/9100G),反编译SystemUI.apk时需使用额外的框架文件,即输入apktool if framework-res.apk apktool if twframework-res.apk apktool if SystemUI.apk。

在修改代码完成后,通过apktool d framework-res命令进行反编译,以确保修改的代码能够正确回编译。整个过程需要严格按照命令进行,确保每一步操作的准确性。

需要注意的是,反编译和回编译过程中,务必确保使用的APK文件未经过图片替换或修改,否则可能会导致反编译失败。此外,修改代码后进行回编译时,需要使用apktool b命令。

在进行反编译和回编译操作时,应确保操作系统和软件环境满足要求,避免因环境不兼容导致的操作失败。

在整个过程中,保持命令的准确性和文件路径的正确性至关重要,以确保顺利进行反编译和回编译操作。

3. 什么是程序的编辑器,编译器,什么是Framework(框架)

编译器是程序辅助工具,一般会生成一些帮助代码
框架是编程的一种模式,把正个代码实现的功能按起的作用分类,可以使思路清析

4. 如何编译framework-res.apk修改图标文件100%不会无限重启

首先,我们要知道"framework-res.apk"是不可以重签名的!(我们要切记这一点)另外,修改"framework-res.apk"之前务必先做好备份!这是相当重要的文件,稍有出错都会令你进不了系统的!

这就是为什么好多朋友编译了framework-res.apk 后自动重启 并且无限重启的原因 因为你只是替换 而不是编译 步骤走少了 所以也就出错了

需要的环境
JDK 这个不需要我解释吧?
懂得编译的都知道 安卓是在JAVA的环境开发 那么你要编译一个程序 必然不能离开JAVA

下面教大家如何搭建JAVA环境
下载下面这个文件 然后安装
http://dl.dbank.com/c0ypixiw9j

1.安装JDK
双击打开刚刚下载的JDK安装包,安装目录可以为任意,只要你记着就好,当然,C盘是比较好,但由于铭心也是一名程序员,装了比较多开发相关的软件及环境,因此装在D盘

2.JAVA环境变量配置
安装好JDK后,找到我的电脑,按右键,点属性选项, 按高级选项卡,点击环境变量
Win7或vista为:计算机-属性-高级系统设置-高级-环境变量

然后再用户变量那里新建3个环境变量
CLASSPATH : %JAVA_HOME%\lib;
JAVA_HOME:JDK安装路径\jdk1.6.0_18(安装路径就是你安装JDK的位置)
PATH: %JAVA_HOME%\bin;
点击确定退出编辑界面,再点击确定,退出环境变量界面

3.验证JDK和环境变量
这时按住键盘上win键(windows图案按钮)+R,打开运行,键入CMD
接着,看到黑色背景白色字的命令行界面,再键入:java –version(注意有一个空格)
若你看到以下内容,表明你JDK和环境变量配置成功,否则,请从第三步从新开始
java version "1.6.0_18"
java<TM> SE Runtime Environment <build 1.6.0_18-b07>
java HotSpot<TM> Client VM <bulid 16.0-b13, mixed mode, sharing>

确定以上步骤没错就可以开始下面的步骤了(一定要确定是否无错 不然下面的步骤无法进行)

先下载我们的重要工具:apktool(帖子最下)
这是一个编译,反编译工具
此工具虽然操作会不如其他某些编译工具简单,但是修改框架文件,推荐使用这个!!!

接着我们就要进行提取framework文件了,用RE浏览器打开目录/system/framework下,就会看到有"framework-res.apk"的文件了,直接把他复制到内存卡,然后放到电脑上准备对它进行开刀解剖!(当然,手机必须是已经Root了)

用apktool反编译"framework-res.apk"
为了方便,建议先把这文件重命名为“f.apk”,在D盘根目录下建立一个apktool的文件夹,把解压好的APKTool.zip里面的三个文件以及“f.apk”一齐放到D:\apktool中
也就是说 你的D盘apktool文件夹里面有4个文件!!!

然后打开DOS界面 就是开始-运行-cmd
接着输入以下代码(一个都不要错 不然无法编译)
01 D:
02 cd apktool
03 apktool if f.apk
04 apktool d f.apk f
PS:d 是反编译命令 后面的f表示生成文件名为f的文件夹(有的framework-res.apk文件无法编译 如果你看到出现一大串英文 并且后面都显示Unknown source 那么说明你的framework-res.apk无法编译 只有换一个)

接下来 窗口别关 还用得上

这时 你的D:\apktoo目录下就会多出一个名为f的文件夹,里面放着就是反编译出来的文件了

接下来的东西一定要仔细 出错就全盘白忙了

接下来把你要替换的图标放到framework-res.apk 里面的res文件夹里(用压缩软件打开后直接把你要替换的文件丢进去替换了就是)

替换完了过后接着在命令提示符里面输入代码
apktool b f

重点又到了
这还没结束 不是说你替换了 你就完事了 NO!!!!!!
先搞清楚,我们现在有两个apk文件,一个是编译前的f.apk,一个是编译后的f2.apk。
用压缩软件同时打开f.apk,f2.apk,是打开,而不是解压(成功编译之后,f文件夹就会多了个dist的文件夹,里面放的就是编译好的文件,同样命名为f.apk的,我们为了区分,先把他重命名为f2.apk


细心观察,会发现编译后的f2,少了一个META-INF的文件夹,这个其实就是apk包的签名所在,但是这框架文件是不能签名的,所以,我们才要进行下面的步骤
我们需要把两类文件从f2.apk拉到f.apk中替换,
第一类是:刚才反编译后,你所替换过,或者修改过的所有文件
第二类是:resources.arsc这一个文件
所有文件一个都不能替换少了
PS:记得要放到相同的目录下哦!!
PSP:我们最后要的是f.apk这个文件!!!

替换好后,我们可以把f.apk重新命名为“framework-res.apk”,然后放回到内存卡上。
然后,用RE浏览器把“framework-res.apk”复制到/system目录下,然后,长按文件名选择权限,具体权限修改如下图(RE管理器挂载为读/写)权限设置211

修改好确定后,再把“framework-res.apk”剪切到/system/framework目录下,选择替换原文件,再次确认权限是否有误!
PS:一定要修改好权限后才能放进/system/framework,不然系统会马上挂掉的!!

最后就是重启手机,一阵心跳过后,深呼吸一口气,顺利进入系统了!!!!

5. 如何反编译framework-res文件

修改替换"framework-res.apk"后导致无法进入系统,或者无限开机重启的,基本都是在编译跟反编译上出了问题!!

首先要完成构建java环境

要想美化,必须先认真看懂下面的每一步,
①framework-res.apk是不可以重签名的。
②修改framework-res.apk之前务必先做好备份!这是相当重要的文件,稍有出错都导致你进不了系统!
回编译系统程序出现错误的解决方法:加载安卓framework框架资源,解决系统程序无法正常回编译

----------------------分割线----------------------
一、下载编译所需文件:apktool
二、提取从手机中用RE管理器从/system/framework下里面找到framework-res.apk。然后把他复制,放到SD卡,用数据线把它拷到电脑上。
把附件APKTool.rar解压得到文件夹,剪切进任意盘根目录。
接着就把复制出来的framework-res.apk放到apktool文件夹里。

打开cmd (开始--运行--输入cmd--确定、或者快捷键win+R,输入cmd,回车)

输入以下命令
E: (这个E是我放APKTool的盘。如果你放在C盘。则输入C:回车;D盘则D:回车)
cd APKTool (这个是打开文件夹的意思)
apktool if framework-res.apk (这个是在CMD模式下安装载入framework-res.apk)
apktool d framework-res.apk framework-res (这里的d表示反编译命令,后面的framework-res表示生成文件名为framework-res的文件夹)

这时;E:\APKTool目录下就会多出一个名为framework-res的文件夹,里面放着就是反编译出来的文件了
当你已经在这里修改好想要修改的东西以后,接下来就要进行编译回去了!!输入
apktool b framework-res (b表示回编译命令)

成功编译之后,framework-res文件夹就会多了个dist的文件夹,里面放的就是编译好的文件,同样命名为framework-res.apk的

----------------------分割线----------------------

好了,最关键的一步就在下面了!!!并不是编译好了就可以把这文件放回手机,还不可以的!
注意,我们现在有两个apk文件:
一个是编译前的framework-res.apk(在E:\APKTool下)一个是编译后的framework-res.apk(在E:\APKTool\framework-res\dist)
用压缩软件同时打开没编译过framework-res.apk,和我们修改并回编译后的framework-res.apk,是打开,而不是解压

细心观察,会发现编译后的framework-res.apk,少了一个META-INF的文件夹,这个就是apk包的签名,但是这个框架文件framework-res.apk是不能签名的,也就是说我们最后要的是没有编译过framework-res.apk这个文件!!!

所以,我们需要进行下面的步骤
把resources.arsc文件从修改过回编译的framework-res.apk拉到原先的framework-res.apk中替换,

注:其他程序修改后需要替换的文件有两类:
①刚才反编译后,你所修改过的所有文件(一般在res文件夹里面)
②resources.arsc这一个文件
所有文件一个都不能替换少了
替换好后,我们把framework-res.apk放回到内存卡上。

然后用RE浏览器把“framework-res.apk”复制到/system目录下,然后,长按文件名选择权限,具体权限修改为644(RE管理器挂载为读/写,不知道644是什么样子可以看一下原文件的权限)
修改好确定后,再把framework-res.apk剪切(一定是剪切,不要复制)到/system/framework目录下,选择替换原文件,再次确认权限是否有误!
注意:一定要修改好权限后才能放进/system/framework,不然系统会直接崩溃!!
最后就是重启手机,一番激动以后一看:顺利进入系统了!!!!

热点内容
c存储过程返回结果集 发布:2025-02-09 12:42:00 浏览:149
gs哪个配置性价比高 发布:2025-02-09 12:35:57 浏览:282
java栈数组 发布:2025-02-09 12:33:37 浏览:555
php上传文件form 发布:2025-02-09 12:33:31 浏览:156
冠道如何选择配置 发布:2025-02-09 12:20:21 浏览:970
为什么安卓手机wearpro搜不到手表 发布:2025-02-09 12:16:07 浏览:670
服务器安全怎么做 发布:2025-02-09 12:08:08 浏览:484
传奇编译完整部署教程 发布:2025-02-09 12:03:39 浏览:830
vivo手机微信聊天记录在哪个文件夹 发布:2025-02-09 11:55:24 浏览:839
数控内孔循环编程实例 发布:2025-02-09 11:51:41 浏览:762