反编译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 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio中,生成签名文件可以按照以下步骤操作: 1. 打开Android Studio并打开您的项目。 2. 点击菜单栏中的“Build”,然后点击“Generate Signed Bundle / APK”。 3. 选择“APK”并单击“Next”。 4. 在下一个屏幕上,选择“Create new”并填写有关您的密钥的详细信息,例如名称,密码,别名和有效期等。 5. 单击“OK”并填写有关您的应用程序的信息,例如版本号和版本名。 6. 单击“Next”并选择“Release”作为构建变体。 7. 单击“Finish”并等待编译完成。 一旦您的应用程序构建成功并生成签名文件,您可以使用以下步骤对其进行反编译、修改、打包签名: 1. 下载并安装Apktool(可在https://ibotpeaches.github.io/Apktool/上找到)。 2. 将您的APK文件复制到Apktool所在的文件夹中。 3. 打开终端或命令提示符并导航到Apktool文件夹。 4. 输入以下命令以反编译您的APK文件:apktool d your-apk-file.apk 5. 对您的应用程序进行任何修改。 6. 输入以下命令以重新打包您的应用程序:apktool b your-modified-app-folder 7. 使用Java keytool生成新的签名文件。例如,使用以下命令生成新的签名文件:keytool -genkey -v -keystore your-keystore-file.jks -alias your-alias -keyalg RSA -keysize 2048 -validity 10000 8. 使用以下命令将您的应用程序签名:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore your-keystore-file.jks your-modified-apk-file.apk your-alias 9. 安装已签名APK文件并测试它。 请注意,修改和重新打包应用程序可能会违反某些法律和条款。请确保您有权执行此操作,否则可能会面临法律后果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值