Android studio - 如何找到哪个库正在使用危险权限?

Android studio - how to find which library is using dangerous permission?

我正在尝试将 apk 上传到 google Play 商店,但令我惊讶的是它说我正在使用以下权限:

Your APK is using permissions that require a privacy policy: (android.permission.RECORD_AUDIO).

所以我在整个 IDE 中搜索了 "android.permission.RECORD_AUDIO",但找不到。我怎样才能找出哪个第 3 方正在请求这个?应该有一种方法可以在清单合并过程中查看所有清单,但是当我按两次 shift 并搜索清单时,只显示本地清单。另一个是位码,我看不到。

如果图书馆是开源的,您可以检查他们的源代码以了解他们使用的权限。 他们通常会列出其 Read.me 文件的权限。 即使它们是专有库,它们也会列出它们将使用的权限,否则它们的安全性值得怀疑。

在项目构建目录中,有一个清单合并报告。

在我的例子中,它位于 [ProjectRoot]/app/build/outputs/logs/manifest-merger-debug-report.txt

从这个文件中,您可以找到添加权限的位置。例如:

uses-permission#android.permission.RECORD_AUDIO
ADDED from /home/jack/AndroidProject/ApiDemos/app/src/main/AndroidManifest.xml:45:5-71
    android:name
            ADDED from /home/jack/AndroidProject/ApiDemos/app/src/main/AndroidManifest.xml:45:22-68
uses-permission#android.permission.CAMERA
ADDED from /home/jack/AndroidProject/ApiDemos/app/src/main/AndroidManifest.xml:49:5-65
    android:name
            ADDED from /home/jack/AndroidProject/ApiDemos/app/src/main/AndroidManifest.xml:49:22-62

您可以使用Merged Manifest功能

Open AndroidManifest.xml -> Merged Manifest