如何从APK反编译中保护Fabric API密钥?

时间:2018-09-20 12:46:48

标签: android crashlytics apktool

decompiling是我的Android应用APK文件时,我在清单文件中找到了Fabric ApiKey键。如何通过APK反编译保护Fabric API密钥?

我已经完成了以下代码更改,以从清单文件中隐藏Fabric API密钥。但在APK反编译后仍然可见。

我添加了我的Fabric API密钥

FabricAPIKey=0123456789ABCDEF012345123456789ABCDEF012 在gradle.properties中。

在build.gradle(模块)

...........
def FABRIC_API_ID = FabricAPIKey

    .....
    buildTypes {
            debug {
                ..........
                manifestPlaceholders  = [//this is used for defining the variable for manifest file
                    FABRIC_API_KEY:FABRIC_API_ID
                 ]
            }
    release{ ..........
                manifestPlaceholders  = [//this is used for defining the variable for manifest file
                    FABRIC_API_KEY:FABRIC_API_ID
                 ]
            }

在AndroidManifest.xml中

<meta-data
            android:name="io.fabric.ApiKey"
            android:value="${FABRIC_API_KEY}" />

2 个答案:

答案 0 :(得分:2)

来自Fabric的Mike。 Seva的观点应该广为人知-“只要有足够的动力,只要调试员和足够的时间,黑客就可以使用它。”

如果需要,可以将API密钥和Build secret放置在fabric.properties文件中。从您的android清单中复制您的api密钥,然后删除以下行:ConfigurationError: Original IFooBar in <module 'someproduct.interfaces' from '/plone/buildout-cache/eggs/someproduct-1.2-py2.7.egg/some/path/interfaces.pyc'> not found

然后创建一个名为fabric.properties的文件,并将此文件夹放在在模块的build.gradle中应用crashlytics的模块的根目录中,在fabric.properies文件的<meta-data android:name="com.crashlytics.ApiKey" android:value="YOUR_API_KEY_HERE"/>

完成后,刷新您的依赖项以引入更改:add:apiKey=YOUR_API_KEY_HERE

答案 1 :(得分:1)

尝试将其保存在strings.xml中,并在此处引用。

然后清单将仅以int格式显示资源ID。

但是,如果您打开strings.xml文件,它将被检索。