反編譯android應用,下降權限反吸費和隱藏廣告,從新打包和簽名

功能:反編譯apk下降權限及從新簽名 
場景:不少軟件,申請了一些可能會致使付費(如,發短信,呼叫號碼)或者泄漏隱私(如:讀取通信錄)的權限,讓人很不放心。好比:飛信、墨跡天氣、iReader等都在此列。爲了讓本身能放心使用,須要作一些破解工做,減小該應用程序的權限,限制其操做。 

工具:apktool-install-windows-2.2_r01-3.tar.bz2 (http://code.google.com/p/android-apktool/downloads/list) 
工具:(JDK) keytool.exe  生成簽名的密鑰庫 
工具:(JDK) jarsigner.exe 用於對apk作簽名 
工具:(可選)D:\android-sdk-windows\tools\zipalign.exe 對打包的應用程序進行優化,使得在運行時Android與應用程序間的交互更加有效率。 

操做: 
1,反編譯APK文件 demo.apk 到 demo 目錄 
apktool.bat d demo.apk demo 
2,修改。。。 
2.1 減小權限:修改demo 目錄 demoAndroidManifest.xml 文件,找到<uses-permission ...> 標籤,註釋掉不須要的權限。(參考:http://hb.qq.com/a/20101115/001156.htm 開發者不得不知的Android權限說明) 
<!-- 
    <uses-permission android:name="android.permission.SET_WALLPAPER" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.SEND_SMS" /> 
    <uses-permission android:name="android.permission.CALL_PHONE" /> 
--> 
2.2 去掉廣告:如 Smart Monitor Pro_2.3.16.apk 
<com.admob.android.ads.AdView android:id="@id/ads" android:layout_width="fill_parent" android:layout_height="wrap_content" app:keywords="girl friends monitor women sex adult gift electron wallpaper ring shirt Android application game sport football soccer world cup" /> 
改成 <com.admob.android.ads.AdView android:id="@id/ads" android:layout_width="wrap_content" android:layout_height="wrap_content" android:width="1dip" android:height="1dip" app:keywords="" /> 
2.3 去掉廣告:如 Hi-MSN.apk 
    <com.google.ads.GoogleAdView android:id="@id/ad" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" /> 
改成 <com.google.ads.GoogleAdView android:id="@id/ad" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:width="1dip" android:height="1dip" /> 

3,從新將 demo 目錄編譯成 apk 文件 
apktool.bat b demo 
4,找到 demo\dist 目錄下的 demo.apk 更名爲 demo_unsign.apk 
5,(可選)修改apksigner.input.txt 文件內容,用於生成密鑰對和證書,給apk簽名。若是已經存在,則無需修改。(修改apksigner.bat 去掉下行的註釋) 
type apksigner.input.txt | keytool -genkey -alias %JKS% -keystore %JKS% -storepass %PWD% -keypass %PWD% -keyalg RSA -validity 20000 
6,修改 apksigner.bat 腳本中的設置(set APP=demo)後,執行apksigner.bat 對 demo_unsign.apk 簽名,生成 demo_signed_final.apk 文件。 
7,在手機上刪除原版 apk 應用,從新安裝 demo_signed_final.apk 
---------------------------------------- ### apksigner.bat 文件 


@set JKS=android.keystore 
@set PWD=111111 
@set APP=demo 
@set APK0=%APP%_unsign.apk 
@set OUT1=%APP%_signed.apk 
@set OUT2=%APP%_signed_final.apk 

@rem type apksigner.input.txt | keytool -genkey -alias %JKS% -keystore %JKS% -storepass %PWD% -keypass %PWD% -keyalg RSA -validity 20000 

@if exist %OUT1% del %OUT1% 
@if exist %OUT2% del %OUT2% 
@echo ########################## 
@echo ### Signer.0 ### %APK%.apk 
@echo ########################## 
@jarsigner.exe -verbose -keystore %JKS% -storepass %PWD% -keypass %PWD% -signedjar %OUT1% %APK0% %JKS% 
@jarsigner.exe -verify %OUT1% 
@echo ########################## 
@echo ### Signer.1 ### %OUT1% 
@echo ########################## 
@D:\android-sdk-windows\tools\zipalign.exe -v 4 %OUT1% %OUT2% 
@jarsigner.exe -verify %OUT2% 
@echo ########################## 
@echo ### Signer.2 ### %OUT2% 
@echo ########################## 
@pause 
---------------------------------------- apksigner.input.txt 文件 
username 
org 
org 
beijing 
beijing 
cn 
相關文章
相關標籤/搜索