android 修改APK

來源:互聯網
上載者:User

如何修改apk檔案[apk檔案修改、表徵圖、美化、去廣告]完全教程


如何修改apk檔案?比如說:對英文版進行漢化、美化、修改功能、表徵圖、修改文字描述、去掉廣告等等。本文介紹APK的基本知識、結構、APK檔案的解包、打包及簽名,以及對APK檔案的常規修改。其實很簡單,稍嫌麻煩的請繞道。
一、首先搭建jdk環境。點擊這裡下載
下載完後,點擊安裝。然後設定運行環境參數:

用滑鼠右擊“我的電腦”->屬性->進階->環境變數

系統變數->建立->變數名:JAVA_HOME 變數值:D:\Program Files\Java\jdk1.7.0(這是我的安裝路徑這個不是固定的,比如你安裝到C:\Program Files,就填C:\Program Files\Java\jdk1.7.0)

系統變數->編輯->變數名:Path 在變數值的最前面加上:%JAVA_HOME%\bin;(若已經有Path項,無須另外建立,直接在後面加,但需用;與前面已有的項分隔開)

系統變數->建立->變數名:CLASSPATH 變數值:

.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

最後測試下環境變數是否設定成功

點開始菜單-運行-在這裡輸入cmd-斷行符號-輸入javac

1.如果出現如下資訊:

用法:javac <選項> <源檔案>

其中,可能的選項包括:

-g 產生所有調試資訊

-g:none 不產生任何調試資訊

-g:{lines,vars,source} 只產生某些調試資訊

-nowarn 不產生任何警告

-verbose 輸出有關編譯器正在執行的操作的訊息

-deprecation 輸出使用已淘汰的 API 的源位置

-classpath <路徑> 指定尋找使用者類檔案的位置

-cp <路徑> 指定尋找使用者類檔案的位置

-sourcepath <路徑> 指定尋找輸入源檔案的位置

-bootclasspath <路徑> 覆蓋引導類檔案的位置

-extdirs <目錄> 覆蓋安裝的擴充目錄的位置

-endorseddirs <目錄> 覆蓋簽名的標準路徑的位置

-d <目錄> 指定存放產生的類檔案的位置

-encoding <編碼> 指定源檔案使用的字元編碼

-source <版本> 提供與指定版本的源相容性

-target <版本> 產生特定 VM 版本的類檔案

-version 版本資訊

-help 輸出標準選項的提要

-X 輸出非標準選項的提要

-J<標誌> 直接將 <標誌> 傳遞給運行時系統

恭喜,你的Java環境變數配置成功了!

2.如果出現:

'javac' 不是內部或外部命令,也不是可啟動並執行程式

或批次檔。

說明這Java環境變數配置出錯了,仔細檢查下吧!

二、下載APKTool工具包(裡麵包含:APKTools反編譯工具、APKSign簽名工具)。下載Notepad代碼編輯器(可以修改smali和xml檔案)。
在修改之前首先對APK檔案內部結構有個瞭解:

AndroidManifest.xml 程式全域設定檔

classes.dex 這是Dalvik位元組碼

resources.arsc 編譯後的二進位資源檔

META-INF\ 該目錄下存放的是簽名資訊

res\ 該目錄存放資源檔

assets\ 該目錄可以存放一些設定檔
對應這些檔案和目錄做些基本的注釋和介紹:

• AndroidManifest.xml

該檔案是每個應用程式都必須定義和包含的檔案,它描述了應用程式的名字、版本、許可權、引用的庫檔案等等資訊。需要解包後才能加以閱讀。

• classes.dex檔案 

classes.dex是java源碼編譯後產生的java位元組碼檔案。dex是Dalvik VM executes的全稱,即Android Dalvik執行程式,並非Java ME的位元組碼而是Dalvik位元組碼。

• resources.arsc 

編譯後的二進位資源檔。

• META-INF目錄 

META-INF目錄下存放的是簽名資訊,用來保證apk包的完整性和系統的安全。在eclipse編譯產生一個apk包時,會對所有要打包的檔案做一個校正計算,並把計算結果放在META-INF目錄下。這就保證了apk包裡的檔案不能被隨意替換。比如拿到一個apk包後,如果想要替換裡面的一幅圖片,一段代碼, 或一段著作權資訊,想直接解壓縮、替換再重新打包,基本是不可能的。如此一來就給病毒感染和惡意修改增加了難度,有助於保護系統的安全。

• res目錄 

res目錄存放資源檔。包括圖片,字串等等。

解包後,幾乎所有可能的修改和編輯工作基本都在這裡。

• assets目錄

assets目錄可以存放一些設定檔,這些檔案的內容在程式運行過程中可以通過相關的API獲得。
APK檔案修改,首先要對APK檔案解包(也就是反編譯),開啟apktool.exe,

左邊APK反編譯區,選擇APK檔案,選擇檔案儲存目錄,點反編譯APK按鈕,得到解包檔案。



三、開始修改

1. 如果只是對映像進行替換,沒有必要進行解包和打包。用WinRAR開啟APK檔案,直接做替換就可以了。但是,如果要對文字和其它非映像類內容進行修改,那隻能通過解包了,改好後,再編譯回來,最後簽名才能放進手機安裝。下面介紹幾個對APK進行解包和打包的案例。

2. 漢化APK軟體

在res檔案夾中,我們可以看到有很多values-***的檔案夾,這就是語言套件。values是英文語言套件,values-zh是中國地區語言套件(包含港澳台及內地),values-zh-rCN是中文簡體語言套件(只包含內地),values-zh-rTW是中文繁體語言套件(港澳台)。除此以外,其它地區的語言套件都是精簡的對象,可以不過多瞭解。

在values檔案夾裡,通常有arrays.xml、strings.xml等語言檔案,要作漢化就要對這些檔案進行修改。有時也需要修改其它xml檔案,一個一個地認真查看。改好後,打包,簽名,OK。

3. 修改案頭表徵圖名稱(標籤)

每一個APK檔案都有一個“表徵圖標籤”。將APK程式安裝進手機後,在表徵圖下面顯示表徵圖標籤文字。這個表徵圖標籤的內容是可以修改的。在\res\values下找到strings.xml,修改其中的一行:

表徵圖標籤

例如:靜音啟動

同理,如果是視窗小外掛程式,要修改widget_name。

注意:system/app下的apk不宜修改,因為要同時修改對應的odex檔案。

改好後,打包,簽名,OK。

4. 去掉APK中的廣告

有很多APK應用都帶有廣告。為了去掉程式中的廣告,要修改main.xml檔案與廣告有關的內容。在\res目錄下找到檔案main.xml。通常在\layout目錄下,有時也被放在其它目錄下。甚至,有時不存在main.xml檔案,廣告行被放在其它xml檔案內。只能細心逐個檔案進行尋找。無論哪一種情況,查看其內容,你會看到有一項類似的命令如下。這就是廣告顯示。


將其改為:


可以看到,關鍵是要把fill_parent改為0.0dip,把wrap_content改為0.0dip,其它保持不變即可。這種改法就是不給廣告顯示空間,當然你就看不到廣告了。

改好後,打包,簽名,OK。

5. 修改顯示電池為1%精度

在XT502上,預設顯示只有7檔: 0%,10%,20%,40%,60%,80% 和100%。通過修改framework-res.apk,可以改變顯示精度。但是在一些手機上,實踐證明最好可能達到的現實精度只有10%。修改工作如下:

(1) 對framework-res.apk進行解包

(2) 修改和增加電池狀態表徵圖

(3) 修改檔案stat_sys_battery.xml

(4) 修改檔案stat_sys_battery_charge.xml

(5) 打包

(6) 提取stat_sys_battery.xml,stat_sys_battery_charge.xml,resources.arsc和一個表徵圖目錄:drawable-mdpi

(7) 重新裝配framework-res.apk

6. 狀態列語音總機文字顏色修改

狀態列語音總機文字顏色,是由framework-res.apk檔案裡res\values下的colors.xml檔案控制的,所以我們只需修改colors.xml檔案就可以了。另外,此檔案還控制下拉欄的文字顏色,可以修改。

用文字編輯器開啟colors.xml檔案,找到

#ff000000 

將這句修改為:#ffffffff

這狀態列語音總機文字顏色由黑色改為白色。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.