gradle 中定义的存储库凭据是否存储在生成的 APK 中的某个位置?

问题描述

假设我们在 gradle 中有以下存储库定义

repositories {
    maven {
        url 's3://my-top-secret-repo/releases'
        credentials(AwsCredentials) {
            accessKey 'MY_TOP_SECRET_ACCESS_KEY'
            secretKey 'MY_TOP_SECRET_SECRET_KEY'
        }
    }
}

我的问题是,有没有办法让某人对生成的安卓 APK 进行逆向工程并发现 MY_TOP_SECRET_ACCESS_KEYMY_TOP_SECRET_SECRET_KEY

解决方法

Gradle 构建配置不存储在 apk 中。构建工具(在本例中为 Gradle)使用此配置来获取依赖项并构建包含来自这些依赖项的 .class 文件的 apk。

但是在 Java/Kotlin 文件中以字符串形式存储密码时要注意。这些肯定可以逆向工程。