APK 包中的 .properties 文件的用途是什么?

Mar*_*ler 6 android packaging apk firebase google-play-services

在分析 APK 时,我在存档的根目录中发现了大量.properties文件,指示 Google Play 服务、Firebase 和 Google HTTP 客户端的版本号,例如:

version=19.2.0
client=firebase-database
firebase-database_client=19.2.0
Run Code Online (Sandbox Code Playgroud)

理论上,这些可以从包中排除:

android {
    packagingOptions {
        exclude "firebase-*.properties"
        exclude "play-services-*.properties"
        exclude "google-http-client.version"
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,这个问题表明这将是“预期行为”。那么,从包中排除这些看似无用的文件是否安全?或者 Google Play 是否需要这些文件,以便将这些版本号暴露给自动包内容扫描?这些版本号文件的用途是否记录在某处?


这是我正在谈论的内容的屏幕截图:

分析APK截图

Mar*_*ler 2

文档中回答问题的部分当时可能还不存在:

\n
\n

来源:Play Console 的依赖信息

\n
\n

使用 AGP 4.0.0 及更高版本构建应用程序时,该插件包含描述编译到应用程序中的库依赖项的元数据。上传您的应用时,Play 管理中心会检查此元数据,以针对您的应用使用的 SDK 和依赖项的已知问题提供警报,并在某些情况下提供可操作的反馈来解决这些问题。

\n
\n
\n

数据经过压缩,由 Google Play 签名密钥加密,并存储在发布应用程序的签名块中。我们建议保留此依赖项文件,以获得安全、积极的用户体验。但是,如果您\xe2\x80\x99d 不想共享此信息,则可以通过dependenciesInfo在模块\xe2\x80\x99s 中包含以下块来选择退出build.gradle文件中包含以下块来选择退出。

\n
\n
android {\n    dependenciesInfo {\n\n        // Disables dependency metadata when building APKs.\n        includeInApk = false\n\n        // Disables dependency metadata when building Android App Bundles.\n        includeInBundle = false\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n