ResChiper:Android AAB资源混淆工具
项目介绍
ResChiper 是一款专为Android AAB资源设计的混淆工具。它能够帮助开发者保护应用资源免受未经授权的访问,同时有效减少AAB文件的大小。通过ResChiper,开发者可以轻松地对资源进行混淆,从而提升应用的安全性和性能。
项目技术分析
ResChiper基于Android Gradle Plugin (AGP) 8.0 和 JDK 17 开发,确保了与最新Android开发环境的兼容性。它依赖于Bundletool 1.13.2,这是一个由Google提供的用于处理Android App Bundle的工具。ResChiper的核心功能包括资源混淆、文件过滤、字符串过滤以及资源合并等,这些功能通过Gradle插件的形式集成到Android项目中,使得开发者可以方便地在构建过程中应用这些功能。
项目及技术应用场景
ResChiper适用于以下场景:
- 资源保护:对于需要保护资源不被逆向工程的应用,ResChiper提供了强大的混淆功能,确保资源的安全性。
- 应用瘦身:通过资源合并和过滤,ResChiper能够有效减少AAB文件的大小,优化应用的下载和安装体验。
- 国际化支持:ResChiper允许开发者指定需要保留的本地化资源,从而减少不必要的资源文件,提升应用的国际化支持。
项目特点
- 灵活的配置选项:ResChiper提供了丰富的配置选项,开发者可以根据需求自定义混淆模式、白名单、文件过滤规则等。
- 增量混淆:支持使用映射文件进行增量混淆,确保不同构建之间的资源一致性。
- 易于集成:作为Gradle插件,ResChiper可以轻松集成到现有的Android项目中,无需复杂的配置。
- 开源免费:ResChiper基于Apache 2.0许可证开源,开发者可以自由使用、修改和分发。
使用指南
安装
-
在项目的根目录
build.gradle
文件中添加ResChiper Gradle插件:buildscript { dependencies { classpath "io.github.goldfish07.reschiper:plugin:<latest_version>" } repositories { mavenCentral() google() } }
-
在应用级别的
build.gradle
文件中应用插件:apply plugin: "io.github.goldfish07.reschiper"
-
配置插件,例如:
resChiper { enableObfuscation = true obfuscationMode = "default" obfuscatedBundleName = "reschiper-app.aab" whiteList = [ "res/raw", "res/xml", "res/raw/*", "res/raw/success_tick.json", "res/xml/*", "*.R.raw.*", "*.R.xml.*", "*.R.string.google_api_key", "*.R.string.google_app_id", "*.R.string.default_web_client_id", "*.R.string.gcm_defaultSenderId", "*.R.string.ga_trackingId", "*.R.string.firebase_database_url", "*.R.string.google_crash_reporting_api_key", "*.R.string.google_storage_bucket", "*.R.integer.google_play_services_version", "*.R.string.project_id", "*.R.string.com.google.firebase.crashlytics.mapping_file_id", "*.R.bool.com.crashlytics.useFirebaseAppId", "*.R.string.com.crashlytics.useFirebaseAppId", "*.R.string.google_app_id", "*.R.bool.com.crashlytics.CollectDeviceIdentifiers", "*.R.string.com.crashlytics.CollectDeviceIdentifiers", "*.R.bool.com.crashlytics.CollectUserIdentifiers", "*.R.string.com.crashlytics.CollectUserIdentifiers", "*.R.string.com.crashlytics.ApiEndpoint", "*.R.string.com.crashlytics.android.build_id", "*.R.bool.com.crashlytics.RequireBuildId", "*.R.string.com.crashlytics.RequireBuildId", "*.R.bool.com.crashlytics.CollectCustomLogs", "*.R.string.com.crashlytics.CollectCustomLogs", "*.R.bool.com.crashlytics.Trace", "*.R.string.com.crashlytics.Trace", "*.R.string.com.crashlytics.CollectCustomKeys" ] mergeDuplicateResources = true enableFileFiltering = true enableFilterStrings = true fileFilterList = [ "META-INF/*" ] unusedStringFile = "path/to/your/unused_strings.txt" localeWhiteList = ["en", "in", "fr"] }
使用
运行以下Gradle命令以混淆资源并生成混淆后的AAB文件:
./gradle clean :app:resChiperDebug --stacktrace
生成的混淆AAB文件将位于app/build/outputs/bundle/debug
目录中。
总结
ResChiper作为一款强大的Android AAB资源混淆工具,不仅提供了全面的资源保护功能,还能有效减少应用包的大小,提升应用的性能和安全性。通过简单的Gradle配置,开发者可以轻松地将ResChiper集成到项目中,享受其带来的诸多优势。如果你正在寻找一款高效、易用的资源混淆工具,ResChiper绝对值得一试!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考