写好混淆配置文件,再对apk进行签名打包即可得到混淆后的apk包
签名打包参考:
http://jojol-zhou.iteye.com/blog/719428
我常用的混淆配置文件
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keep public abstract interface com.asqw.android.Listener{
public protected <methods>;
}
-keep public class com.asqw.android{
public void Start(java.lang.String);
}
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-ignorewarnings
关于配置文件的解释
-injars androidtest.jar【jar包所在地址】
-outjars out【输出地址】
-libraryjars 'D:\android-sdk-windows\platforms\android-9\android.jar' 【引用的库的jar,用于解析injars所指定的jar类】
-optimizationpasses 5
-dontusemixedcaseclassnames 【混淆时不会产生形形色色的类名 】
-dontskipnonpubliclibraryclasses 【指定不去忽略非公共的库类。 】
-dontpreverify 【不预校验】
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* 【优化】
-keep public class * extends android.app.Activity 【不进行混淆保持原样】
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keep public abstract interface com.asqw.android.Listener{
public protected <methods>; 【所有方法不进行混淆】
}
-keep public class com.asqw.android{
public void Start(java.lang.String); 【对该方法不进行混淆】
}
-keepclasseswithmembernames class * { 【保护指定的类和类的成员的名称,如果所有指定的类成员出席(在压缩步骤之后)】
native <methods>;
}
-keepclasseswithmembers class * { 【保护指定的类和类的成员,但条件是所有指定的类和类成员是要存在。】
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {【保护指定类的成员,如果此类受到保护他们会保护的更好 】
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {【保护指定的类文件和类的成员】
public static final android.os.Parcelable$Creator *;
}
出现can't find referenced class的警告时,可以在proguard.cfg中添加-ignorewarnings来解决。
分享到:
相关推荐
APK混淆工具正是为了增强APK的安全性而设计的,它的主要作用是将APK文件中的代码和资源进行混淆和加密,以此来防止恶意用户进行反编译,窥探或篡改应用的内部逻辑。通过混淆,原本可读性强的代码变得难以理解,大大...
APK反编译、混淆以及打包签名是开发过程中的重要环节,涉及安全性和优化。本文将深入探讨这些概念,并提供相关的实践指导。 **一、APK反编译** APK反编译是为了查看和理解Android应用的源代码,这在调试、学习或者...
在APK打包过程中,开发者使用私钥对APK进行数字签名。这个过程会生成一个包含公钥的证书,该证书用于验证APK在安装和更新时没有被篡改。Android系统在安装APK时会检查签名,如果签名有效,系统才会允许安装。此外,...
签名打包是指在发布Android应用之前对应用进行加密签名的过程。这一步骤对于应用的发布至关重要,因为Google Play等应用商店要求上传的应用必须经过签名。 #### 三、签名打包的两种方式 ##### 1. 通过Android ...
1. **由于使用了ProGuard混淆器,如何处理签名打包后出现的Crash问题**; 2. **使用ProGuard代码混淆器时需要注意的一些小细节**; 3. **如何使用ProGuard保持某个类及其子类不受混淆的影响**。 #### 1. 处理签名...
在Android应用开发中,APK打包、解包和签名是至关重要的步骤,这些操作涉及到应用程序的构建、调试和发布流程。下面将详细解释这些概念及其重要性。 首先,我们要了解APK是什么。APK(Android Package)是Android...
APK签名校验工具是一种用于验证Android应用程序(APK)签名完整性和安全性的软件工具。在Android系统中,每个发布到Google Play或其他第三方应用商店的APK文件都需要经过签名过程,确保开发者身份的可追溯性,同时...
标题中的“apk合成和签名工具”指的是在Android应用开发中两个关键步骤:APK打包与签名。APK是Android应用程序的包文件格式,包含了应用程序的所有组件,如代码、资源、图片等。签名则是确保APK文件来源可靠和未被...
"apk打包解包工具"是一类用于处理APK文件的实用程序,它们可以帮助开发者进行APK的构建、拆解、修改和重新签名等操作。下面将详细阐述相关知识点: 1. **APK打包**:APK打包过程是将Android应用的所有资源(如Java...
- 如果APK已经被混淆或加固,重签名可能会变得更加复杂,可能需要额外的处理步骤。 - 请妥善保管你的密钥库和私钥,它们对于应用的更新和维护至关重要。 通过以上步骤,你就能理解并使用“android apk重签名工具”...
打包发布版apk是指将开发完成的应用程序打包成可供用户下载和安装的版本,这个过程通常涉及到代码的混淆、优化以及签名。而安装签名apk则是指使用特定的签名文件对apk进行签名,以便在设备上安装和运行。 使用...
重新打包后,Apktool可以将修改后的资源和DEX文件(Dalvik可执行文件)组合成新的APK,并进行签名,以便在Android设备上安装和运行。 2. **dex2jar**: 这个工具用于将DEX文件(Android应用的字节码)转换为Java类...
而"多渠道签名打包工具"正是为了解决这个问题,它能够自动化处理打包过程,大大提高了效率。 这个工具的核心功能是将应用的APK文件与不同渠道的配置文件进行结合,并进行签名。签名是Android应用发布的重要步骤,...
在修改完成后,通过apktool可以方便地进行签名和重新打包,以生成可安装的新APK。 在实际操作中,使用apktool进行签名可能涉及到以下命令: ```bash # 解包APK apktool d original.apk -o modified # 修改解包后的...
它还能重新打包和签名APK,允许开发者进行修改后再构建回APK。 2. **dex2jar**:Android应用的Dalvik Executable (DEX) 文件是优化过的字节码格式,用于运行在Dalvik虚拟机上。dex2jar工具将DEX文件转换为Java字节...
Android App的签名打包是开发过程中不可或缺的步骤,它关乎应用的发布、安全性和用户体验。本文将详细介绍Android应用程序签名的意义、签名过程以及如何使用不同的工具进行签名打包。 首先,理解签名的意义至关重要...
在命令行中输入`apktool.bat b aaa (你编译出来文件夹)`,这将把修改后的文件重新打包成一个未签名的APK,名为`TestApp-unsigned.apk`。 5. **签名APK**: 在Android系统上,每个发布的APK都需要签名。这里提到了`...
这个过程包括了APK的打包、签名以及代码混淆,每个环节都有其独特的意义和作用。 首先,我们来理解打包(Packaging)。在Android应用开发完成并测试无误后,开发者需要将所有资源文件、类文件以及依赖库合并成一个...
在这个场景中,`Ant`被用于创建针对不同发布渠道(如Google Play、华为应用市场等)的APK包,并且执行ProGuard混淆,以及最终的签名过程。下面将详细介绍这些概念和操作流程。 **1. Ant构建工具** Ant是一个基于...
Android APK的打包与安装是Android应用开发过程中至关重要的步骤,它涉及到多个阶段,从源代码编译到最终在设备上运行。以下将详细介绍这个过程。 首先,我们需要理解APK是什么。APK(Android Package)是Android...