android-- apktool反編譯工具使用詳解
如果你想對APK檔案進行修改,那麼就不可避免的要使用到APKTool。論壇裡有很多關於ROM美化的帖子都需要自己動手修改APK檔案,比如修改framework-res.apk、systemUI.apk等等。
相信各位有不少人看了後都想親自來修改一番,但是結果卻是遇到了各式各樣的錯誤卻無法進行改正,甚至都不知道自己錯在哪裡。
一.APKTOOL使用環境配置
1.安裝JAVA並設定環境變數。
下載安裝都很簡單,關鍵是安裝完後還需要親自設定環境變數以方便其他程式能夠條用JAVA。
以WIN7為例,在桌面上右鍵點選計算機——>屬性——>高階系統設定——>環境變數——>在下邊的系統變數裡新建一個變數,變數名為
二.APKTool的安裝
1.其實這個談不上安裝,不過如果你願意的話可以把下載到的APKTOOL中的三個檔案(aapt.exe、apktool.bat、apktool.jar)解壓縮到你的Windows安裝目錄下,以方便使用Dos命令.
2.可能有些人下載的APKTOOL裡有個安裝的bat檔案,並且有另外兩個方便使用的bat檔案,在這裡我不推薦大家使用這些bat檔案,雖然使用起來很方便(其實我並不覺得方便),但是如果出現錯誤不方便檢視。
三.APKTool的使用
1.decode
該命令用於進行反編譯apk檔案,一般用法為
apktool d <file.apk> <dir>
<file.apk>代表了要反編譯的apk檔案的路徑,最好寫絕對路徑,比如C:\MusicPlayer.apk
<dir>代表了反編譯後的檔案的儲存位置,比如C:\MusicPlayer
如果你給定的<dir>已經存在,那麼輸入完該命令後會提示你,並且無法執行,需要你重新修改命令加入-f指令
apktool d –f <file.apk> <dir>
這樣就會強行覆蓋已經存在的檔案
2.build
該命令用於編譯修改好的檔案,一般用法為
apktool b <dir>
這裡的<dir>就是剛才你反編譯時輸入的<dir>(如C:\MusicPlayer),輸入這行命令後,如果一切正常,你會發現C:\MusicPlayer內多了2個資料夾build和dist,其中分別儲存著編譯過程中逐個編譯的檔案以及最終打包的apk檔案。
3.install-framework
該命令用於為APKTool安裝特定的framework-res.apk檔案,以方便進行反編譯一些與ROM相互依賴的APK檔案。具體情況請看常見問題
四.常見問題
1.關於安裝和管理framework檔案
一般來說,你在使用apktool進行反編譯前不需要做其他的事情,然而由於有的廠商,如HTC,三星等,他們定製了framework檔案並且在他們的系統應用中使用了這些檔案,這時,為了能正常的反編譯這些apk檔案,你就必須從你的裝置中拷貝出framework檔案並且安裝到apktool中。
舉一個例子,比如你想反編譯HTCHero這款手機中的HtcContacts.apk,當你嘗試反編譯的時候,你會得到以下錯誤資訊。
$ apktool d HtcContacts.apk
I: Loading resource table...
I: Decoding resources...
I: Loading resource table from file: /home/brutall/apktool/framework/1.apk
W: Could not decode attr value, using undecoded value instead: ns=android, name=drawable, value=0x02020542
...
W: Could not decode attr value, using undecoded value instead: ns=android, name=icon, value=0x02020520
Can't find framework resources for package of id: 2. You must install proper framework files, see project website for more info.
這就是在通知你必須先安裝HTC定製的framework檔案,事實上在修改一些三星的系統應用時也是如此。
以三星的裝置來舉例,你需要複製兩個framework檔案來進行安裝,framework-res.apk和tzframework-res.apk,一般來說,這兩個檔案在手機中的位置應該是system\framework\
使用以下程式碼進行安裝
apktool if C:\framework-res.apk
apktool if C:\tzframework-res.apk
這裡假設2個檔案都放在C盤根目錄
2.直接用build編譯後在dist中找到的apk檔案無法使用
其實這個問題我也不是特別理解,目前知道的就是,APK檔案雖然本質是個zip檔案,但是事實上zip包中的檔案是按照兩種方式壓縮的,即XML檔案進行deflate壓縮,其他檔案不進行壓縮(使用store儲存),而直接編譯得到的APK檔案對任何的檔案都進行了deflate壓縮,因此你會發現編譯得到的檔案比原檔案小好多。
同樣的,當你使用build資料夾中的檔案替換原apk檔案中的資源時,請務必確認是使用store儲存還是deflate壓縮
3.其他錯誤
其實在編譯過程中會遇到很多其他的問題,大多數是由於刪除、修改、添加了資源後,沒有對應的修改res\values\public.xml檔案而造成的,這裡我給大家說下修改的原則:
第一,public.xml檔案中的資源不能重複定義。
第二,public.xml檔案中的任意兩個資源的ID不能一樣
第三,public.xml檔案中定義的資源必須能找到該檔案(如果你刪除了一些檔案,必須要對應的刪除public.xml中的該行)
第四,public.xml檔案中儘可能全面(如果你添加了某資源,最好確保在public.xml中也新增)
第五,public.xml檔案中的資源的ID儘可能連續(當你為新增的檔案新增宣告時,賦予的ID儘可能是連續的)
相關推薦
android-- apktool反編譯工具使用詳解
如果你想對APK檔案進行修改,那麼就不可避免的要使用到APKTool。論壇裡有很多關於ROM美化的帖子都需要自己動手修改APK檔案,比如修改framework-res.apk、systemUI.apk等等。 相信各位有不少人看了後都想親自來修改一番,但是結果卻是遇到了各
Android 反編譯APK詳解
1.反編譯工具:下載 1.1 apktool:反編譯資原始檔 1.2 dex2jar-2.0:反編譯java程式碼 1.3 apk檔案:待反編譯的檔案 2.反編譯流程: 2.1 反編譯資原
Android-Apktool反編譯檔案為空的解決辦法
今天有一個Android開發同事遇到了一個問題, 他打包好的APK包給合作方使用時,對方無法通過Apktool獲取到資原始檔資訊,反編譯出來的資料夾內容為空。 網上流傳著兩個解決辦法: 1、Exception in thread main brut.
Android 反編譯工具(apktool ,dex2jar,jd-gui.exe)使用詳解
Apktool 用法 1.下載Apktool 工具(包含aapt.exe & apktool.bat & apktool.jar)。如下圖 2.將準備進行反編譯的apk 放到 apktool.bat 檔案所在路勁。 3.在cm
Android APK反編譯:APKtool使用詳解
bug -s safe 下載 code 要掌握 所有 class deb 導言:在我們安卓開發當中,我們不僅需要掌握基礎的開發技能,也需要掌握軟件的安全技能,這樣才可以讓我們的軟件能夠成為一款能夠真正可以進行發布的軟件,同時也可以讓自己的核心技術不會被別人所盜取。
Android APK反編譯就這麽簡單 詳解(附圖)
雙擊 整合 cmd 進行 自我 nts clas 以及 思路 在學習Android開發的過程你,你往往會去借鑒別人的應用是怎麽開發的,那些漂亮的動畫和精致的布局可能會讓你愛不釋手,作為一個開發者,你可能會很想知道這些效果界面是怎麽去實現的,這時,你便可以對改應用的APK進行
Java反編譯工具Jad詳解
做專案過程中需要反編譯一個jar包,於是作了一些學習,記錄下來。 Jad(JAva Decompiler)是一個Java的反編譯器,可以通過命令列把Java的class檔案反編譯成原始碼。 如果你在使用編寫程式碼的時候遇到找不到原始碼的第三方庫,而且你又需要看看這個庫的具體實現,那麼你就需要使用
Android APK反編譯詳解(附圖)
這段時間在學Android應用開發,在想既然是用Java開發的應該很好反編譯從而得到原始碼吧,google了一下,確實很簡單,以下是我的實踐過程。 在此鄭重宣告,貼出來的目的不是為了去破解人家的軟體,完全是一種學習的態度,不過好像通過這種方式也可以去漢化一些外國軟體。
Android APK反編譯就這麼簡單 詳解(附圖)
From: http://blog.csdn.net/vipzjyno1/article/details/21039349 在學習Android開發的過程你,你往往會去借鑑別人的應用是怎麼開發的,那些漂亮的動畫和精緻的佈局可能會讓你愛不釋手,作為一個開發者,你可能會很想知
Android反編譯工具ApkTool的使用
1.直接去官網下載ApkTool,目前最新的版本為2.2.2,下載有問題的小夥伴請點這裡下載。 2.根據官仿給出的安裝文件進行安裝。這裡主要說一下Windows下的安裝:將下載的apktool.bat和apktooljar檔案移動到相應的資料夾,安裝文件中給出的位置是C:/
Android 反編譯工具 apktool ,smali2java, dex2jar , jd-gui ,jadx-gui 的安裝與使用
1.apktool 按照上面的步驟 第一步:就是要讓我們下載apktool.bat,把滑鼠移至wrapper script上,然後右擊,連結另存為。 第二步:下載apktool.jar檔案,點選find newest here,跳到下載頁,我們能儘量下載最新版本。
ANDROID反編譯工具APKTOOL原始碼除錯過程
APKTOOL是目前反編譯ANDROID apk的主要工具,可以反編譯出APK裡的資原始檔和smali程式碼,而有些APK開發者為了防止自己的程式碼被反編譯,針對APKTOOL工具加固程式碼,使得APKTOOL無法執行正常,比如這篇文章介紹的Android應用資
[置頂] Android APK反編譯就這麼簡單 詳解(附圖)
在學習Android開發的過程你,你往往會去借鑑別人的應用是怎麼開發的,那些漂亮的動畫和精緻的佈局可能會讓你愛不釋手,作為一個開發者,你可能會很想知道這些效果介面是怎麼去實現的,這時,你便可以對改應用的APK進行反編譯檢視。下面是我參考了一些文章後簡單的教程詳解。 (注
Android APK反編譯 apktool使用教程
文件夾 ossh ng- 右鍵 xmu shape func prev pos 2017年棋牌遊戲突然就火了,正所謂春江水暖鴨先知本猿處在軟件行業中就能清晰的感受到市場的變化,最近老家那邊也是玩的風生水起,於是最近閑暇時光想到反編譯下這些棋牌軟件,看看代碼實現的思路
Python爬蟲:mac環境apktool反編譯Android安卓程式碼
所需工具 Java環境 apktool:反編譯APK檔案,得到classes.dex檔案 dex2jar:將反編譯後的classes.dex檔案轉化為.jar檔案 jd-gui:用於將.jar檔案轉換成java程式碼 以上所需的工具打包下載: 連結
android反編譯工具
apktool 命令 https://ibotpeaches.github.io/Apktool/install/ apktool d testapp.apk d2j-dex2jar -f beautifulcamera.apk dex2jar https://git
Android apk反編譯-----【附:反編譯工具】
Android應用開發完成之後,我們最終都會將應用打包成一個apk檔案,然後讓使用者通過手機或者平板電腦下載下來進行安裝。正常情況下,Android應用打包成apk之後,就無法再看到開發這個應用時使用的資原始檔以及程式碼了。但是我們通過網上提供
[開發工具]詳解Visual Stdio之編譯後事件
用VS做開發,通常最痛苦的事情就是配置工程了,建各種目錄結構,加入各種庫標頭檔案和Lib,輸出路徑,編譯後事件等等,說起來都很麻煩。今天主要想說一下編譯後事件,因為其他的配置看著巨集就可以配出來,而編譯後事件還需要寫一點點批處理,所以著重寫一下,如果別的不會配置,大家可以留言說明,我會補上去。注意:在VS20
Android編譯系統詳解(一)——build/envsetup.sh
http://www.cloudchou.com/android/post-134.html 準備好編譯環境後,編譯Rom的第一步是 source build/envsetup.sh,該步驟把envsetup.sh裡的函式宣告為當前會話終端可用的命令。這些命令能讓我們
apk編譯/反編譯工具baksmali和smali用法及apktool+dex2jar+jd_gui的用法
一、apk編譯/反編譯工具baksmali和smali用法 、https://smali.googlecode.com/files/baksmali-2.0.3.jar。利用迅雷新建下載連結可以將其下載下來) 用法如下:首先把baksmali-2.0.3.jar和