亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 建站經驗 > 正文

APK文件修改解包打包(apk簽名工具apktool)

2024-04-25 20:44:20
字體:
來源:轉載
供稿:網友

前言:相信每位玩機的人對APK文件都不陌生。你可能每天都與APK文件打交道,無論是安裝和卸載有用的應用工具、插件、好玩的 游戲等等。。。你可曾知道這些每天都伴隨著你的APK文件是什么嗎?怎樣對它們作些修改呢?比如說:對英文版進行漢化、修改功能、修改文字描述、去掉廣告 等等。本文介紹APK的基本知識、結構、APK文件的解包、打包及簽名,以及對APK文件的常規修改。

 

一、APK文件簡介

  APK 是Android Package的縮寫,即即Android application package文件或Android安裝包。每個要安裝到Android平臺的應用都要被編譯打包為一個單獨的文件,后綴名為.apk。APK文件是用專 業軟件eclipse編譯生成的文件包,其中包含了應用的二進制代碼、資源、配置文件等。通過將APK文件直接傳到Android手機中執行即可安裝。 APK文件其實就是zip格式,但其擴展名被改為apk,用解壓軟件可以直接打開。通過WinRAR或UnZip解壓后,你會看到有幾個文件和文件夾。一 個典型的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 文件是用專業軟件eclipse編譯生成的文件包。在網上可以找到許多軟件來對APK的內容進行反編譯,例如:可以通過AXMLPrinter2工具和命 令:java -jar AXMLPrinter2.jar AndroidManifest.xml 解開在apk中的AndroidManifest.xml。最近,業界有一個功能強大的解包打包工具包apktool,可以在Windows下用來方便快 速地對APK文件進行解包和打包,給修改和編輯工作帶來許多方便。下面來介紹它的使用。

1) APKtool軟件包
APKtool軟件包有2個程序組成:apktool.jar 和 aapt.exe
另外提供一個批處理文件:apktool.bat,其內容為:
java -jar "%~dp0/apktool.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9
運行apktools.jar需要java環境(1.6.0版本以上)。
apktool.jar用于解包,apktool.jar和aapt.exe聯合用于打包。

2) APK文件的解包
下面以解開Contacts.apk為例。首先把Contacts.apk Copy到當前工作目錄下(例:Test)。在DOS下打入命令
apktool d Contacts.apk ABC
這里“d”表示要解碼。Contacts.apk是要解包的APK文件。ABC是子目錄名。所有解包的文件都會放在這個子目錄內。

3) APK文件的打包
在DOS下打入命令
apktool b ABC New-Contacts.apk
這里“b”表示要打包
ABC是子目錄名,是解包時產生的子目錄,用來存放所有解包后的和修改后的文件。
New-Contacts.apk是打包后產生的新的APK文件。

4) Framework框架文件
在解開APK文件時,apktool需要框架文件(framework-res.apk)來解碼和打包。Apktool已經包含了標準的框架,所以在大多數 APK文件的解包時,不需要另外提供框架文件。但是,某些制造商使用了他們自己的框架文件,為了解包,就不得不從手機中把框架文件(framework- res.apk)提取出來,然后安裝到計算機。安裝命令是:
apktool if framework-res.apk 
安裝后就會得到:~/apktool/framework/1.apk


5) 解包、解包和簽名批處理
在實際使用時,可能對多個APK文件進行處理。方便的做法是寫成批處理文件。打包和簽名可以一次完成。
解包批處理命令:
for %%i in (*.apk) do java -jar apktool.jar d %%i _%%i && move _%%i Modifying_Files && copy %%i Backuped_Raw_Files && @echo File [%%i] unpacking process is completed!
打包和簽名批處理命令:
for /d %%i in (*) do cd.. && java -jar apktool.jar b Modifying_Files/%%i && java -jar signapk.jar testkey.x509.pem testkey.pk8 Modifying_Files/%%i/dist/*.apk %%i && ren %%i New%%i && move New%%i Modified_Signed_Files && @echo %%i Complete repacking and Signing! && cd Modifying_Files

 

三、應用實例:APK解包后的編輯和修改

  為什么要對APK文件進行解包?當然要對其內容進行必要的修改。修改什么呢?通常,如果只是對圖像進行替換,沒有必要進行解包和打包。用WinRAR打開 APK文件,直接做替換就可以了。但是,如果要對文字和其它非圖像類內容進行修改,那只能通過解包解碼了。下面幾項任務需要對APK進行解包和打包。這里 只作大概介紹,請自己去找詳細的操作方法和教程。

1) 漢化APK軟件
在 res文件夾中,我們可以看到有很多values-***的文件夾,這就是語言包。values是英文語言包,values-zh是中國地區語言包(包含 港澳臺及內地),values-zh-rCN是中文簡體語言包(只包含內地),values-zh-rTW是中文繁體語言包(港澳臺)。除此以外,其它地 區的語言包都是精簡的對象,可以不過多了解。
在values文件夾里,通常有arrays.xml、strings.xml等語言文件,要作漢化就要對這些文件進行修改。有時也需要修改其它xml文件,一個一個地認真查看。

2) 修改圖標標簽
每一個APK文件都有一個“圖標標簽”。將APK程序安裝進手機后,在圖標下面顯示圖標標簽文字。這個圖標標簽的內容是可以修改的。在/res/values下找到strings.xml,修改其中的一行:
<string name="app_name">圖標標簽</string>
例如:<string name="app_name">靜音啟動</string>
同理,如果是窗口小插件,要修改widget_name。
注意:system/app下的apk不宜修改,因為要同時修改對應的odex文件。

3) 去掉APK中的廣告
有 很多APK應用都帶有廣告。為了去掉程序中的廣告,要修改main.xml文件與廣告有關的內容。在/res目錄下找到文件main.xml。通常在 /layout目錄下,有時也被放在其它目錄下。甚至,有時不存在main.xml文件,廣告行被放在其它xml文件內。只能細心逐個文件進行查找。無論 哪一種情況,查看其內容,你會看到有一項類似的命令如下。這就是廣告顯示。
<com.admob.android.ads.AdView android:id=”@id/ad” android:layout_width=”fill_parent” android:layout_height=”wrap_content” admobsdk:backgroundColor=”#ff000000″ admobsdk:textColor=”#ffffffff” admobsdk:keywords=”Android application” />  
將其改為:
<com.admob.android.ads.AdView android:id=”@id/ad” android:layout_width=”0.0dip” android:layout_height=”0.0dip” admobsdk:backgroundColor=”#ff000000″ admobsdk:textColor=”#ffffffff” admobsdk:keywords=”Android application” />  
可以看到,關鍵是要把fill_parent改為0.0dip,把wrap_content改為0.0dip,其它保持不變即可。這種改法就是不給廣告顯示空間,當然你就看不到廣告了。

4) 修改顯示電池為1%精度
在XT502上,默認顯示只有7檔: 0%,10%,20%,40%,60%,80% 和100%。通過修改framework-res.apk,可以改變顯示精度。但是在XT502上,實踐證明最好可能達到的現實精度只有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

5) 狀態欄信息通知文字顏色修改
狀態欄信息通知文字顏色,是由framework-res.apk文件里res/values下的colors.xml文件控制的,所以我們只需修改colors.xml文件就可以了。另外,此文件還控制下拉欄的文字顏色,可以修改。
用文本編輯器打開colors.xml文件,找到
<color name="hw_statusbar_time">#ff000000</color> 
將這句修改為:<color name="hw_statusbar_time">#ffffffff</color>
這狀態欄信息通知文字顏色由黑色改為白色。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本在线精品视频| 亚洲一区二区三区视频| 91在线视频免费| 亚洲欧洲激情在线| 欧美精品videossex88| 国模私拍一区二区三区| 亚洲人在线观看| 68精品久久久久久欧美| 国产精品久久一区主播| 美女扒开尿口让男人操亚洲视频网站| 亚洲韩国青草视频| 日韩欧美在线观看视频| 欧美激情在线观看| 久久久久女教师免费一区| 成人在线视频福利| 久久精品成人欧美大片古装| 久久亚洲国产精品| 久久久999国产精品| 国产精品久久久久av免费| 亚洲精品91美女久久久久久久| 欧日韩在线观看| 最近2019年中文视频免费在线观看| 日韩美女在线观看| 亚洲国产精品免费| 中文字幕亚洲图片| 91深夜福利视频| 日韩精品视频免费专区在线播放| 国产精品99久久久久久www| 国产在线久久久| 欧美性猛交xxxx偷拍洗澡| 97色在线视频| 欧美性猛交xxxx乱大交3| 91探花福利精品国产自产在线| 久久91亚洲精品中文字幕| 久久夜色精品国产亚洲aⅴ| 欧美黄色成人网| 国产美女主播一区| 欧美国产亚洲视频| 亚洲欧美综合v| 日韩中文字幕精品| 欧美成人免费全部观看天天性色| 亚洲天堂av在线播放| 久久视频中文字幕| 最近2019年好看中文字幕视频| 久久色免费在线视频| 国a精品视频大全| 久热精品视频在线观看| 另类美女黄大片| 日韩精品高清在线观看| 欧美激情视频在线免费观看 欧美视频免费一| 一级做a爰片久久毛片美女图片| 国产精品久久久久国产a级| 成人黄色片网站| 蜜臀久久99精品久久久久久宅男| 欧美色道久久88综合亚洲精品| 日韩中文字幕精品视频| 亚洲xxx大片| 欧美激情精品久久久| 亚洲一区二区中文| 国产又爽又黄的激情精品视频| 欧美电影院免费观看| www.欧美三级电影.com| 亚洲精品一区中文字幕乱码| 久久精品电影一区二区| 九九热r在线视频精品| 国产精品成人在线| 久久免费少妇高潮久久精品99| 国产999在线观看| 久久精品亚洲94久久精品| 久久99精品久久久久久青青91| 国产伊人精品在线| 国产精品久久久久久久久久久不卡| 精品一区二区三区电影| 欧美日韩亚洲成人| 国产偷亚洲偷欧美偷精品| 国产做受69高潮| 国产男人精品视频| 国产成人在线一区二区| 中文字幕亚洲欧美日韩高清| 91最新国产视频| 中文一区二区视频| 日韩欧美国产中文字幕| 日韩成人xxxx| 久久精品电影网| 欧美激情手机在线视频| 欧美综合国产精品久久丁香| 亚洲高清久久久久久| 久久亚洲国产精品| 欧美极品在线视频| 日韩午夜在线视频| 在线看片第一页欧美| 久久中文久久字幕| 中文字幕国产精品| 国产美女91呻吟求| 欧美中文字幕视频在线观看| 国产不卡视频在线| 国产精品一区二区久久国产| 久久久久久久久久久成人| 日产精品久久久一区二区福利| 国外日韩电影在线观看| 日本三级久久久| 日本高清+成人网在线观看| 久久影院资源网| 亚洲精品一区久久久久久| 精品国内自产拍在线观看| 这里精品视频免费| 成人午夜在线影院| 国精产品一区一区三区有限在线| 日韩欧美综合在线视频| 96国产粉嫩美女| 久久国产精品久久精品| 欧美午夜影院在线视频| 久久夜色精品国产| 欧美精品一区二区免费| 7777精品久久久久久| 成人福利网站在线观看| 久久久久在线观看| 亚洲iv一区二区三区| 亚洲人线精品午夜| 日韩av在线免费播放| 国内精品久久影院| 久久久精品一区二区三区| 成年人精品视频| 国产成人高清激情视频在线观看| 精品国产乱码久久久久久婷婷| 欧美二区在线播放| 91精品国产一区| 亚洲最大的网站| 日韩免费看的电影电视剧大全| 亚洲一区二区三| 亚洲成人精品在线| 国产精品欧美一区二区三区奶水| 国产精品视频大全| 日韩欧中文字幕| 亚洲国内精品在线| 秋霞成人午夜鲁丝一区二区三区| 91高清视频免费观看| 视频在线一区二区| 中文字幕日韩av综合精品| 久久青草福利网站| 久久精品中文字幕| 国产精品久久久久国产a级| 亚洲欧洲国产伦综合| 欧美成人午夜激情在线| 成人黄色生活片| 国产精品精品久久久久久| 日韩av网站在线| 亚洲欧美激情另类校园| 911国产网站尤物在线观看| 伊人久久五月天| 欧美日韩中国免费专区在线看| 亚洲国产高潮在线观看| 国产精品美女久久久免费| 欧美精品久久久久久久免费观看| 日韩电影在线观看中文字幕| 亚洲夜晚福利在线观看| 奇米一区二区三区四区久久| 欧美特级www| 国产精品久久久久999| 欧美疯狂性受xxxxx另类| 国产aaa精品| 日韩欧美亚洲国产一区| 日本伊人精品一区二区三区介绍| 亚洲va码欧洲m码|