當前位置:首頁 » 編程軟體 » 編譯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,不然系統會直接崩潰!!
最後就是重啟手機,一番激動以後一看:順利進入系統了!!!!

熱點內容
極光免費腳本 發布:2025-02-09 12:50:33 瀏覽:393
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