当前位置:   article > 正文

关于QUERY_ALL_PACKAGES权限导致Google下架apk

query_all_packages

突然收到提示,因为应用使用QUERY_ALL_PACKAGES权限,导致apk上线不了Google,查了一下是2022年7月后Google在高版本上限制了此权限的使用。当然,并不是 QUERY_ALL_PACKAGES 这个权限没有了,而是被列为敏感权限,必须有充分的理由说明,才允许上架 GP,否则还是被一票否决。其实说白了就是大路已经被封了,留了条小路,但是小路只能看,不能走。
在这里插入图片描述
但是检查配置清单文件我们是没有添加此权限的,反编译apk却又存在此权限,或者不用反编译,可以直接在AndroidStudio中查看最后合并的Androidmanifest.xml文件,位于 /app/build/intermediates/merged_manifests/debug/AndroidManifest.xml目录下
在这里插入图片描述
可以看到最后生成的xml文件确实包含此权限
在这里插入图片描述
项目中最后合成的AndroidManifest.xml 中内容的来源:

  • 项目自身 AndroidManifest.xml
  • 子 module 中的 AndroidManifest.xml
  • 依赖中的AndroidManifest.xml
  • gradle 中的代码修改

解决方案

通过查找发现,Sharesdk会生成QUERY_ALL_PACKAGES权限。
在这里插入图片描述
根据shareSDK官方推荐配置删除权限并配置对应需要查找的包名的queries,用于查找是否存在该应用
在这里插入图片描述
在AndroidManifest.xml中添加如下

	<!--由于我的应用最后生成的xml文件里有微信的判断了,所以此处只添加了qq是否安装的判断-->
	<queries>
        <package android:name="com.tencent.mobileqq"/>
        <package android:name="想要判断的应用包名"/>
    </queries>
  • 1
  • 2
  • 3
  • 4
  • 5

经过上述配置,最后生成的xml文件里还是存在QUERY_ALL_PACKAGES权限,在项目build.gradle文件里添加如下代码,删除对应权限即可

//删除QUERY_ALL_PACKAGES权限
project.afterEvaluate {
    project.android.applicationVariants.all { variant ->
        variant.outputs.each { output ->
            output.processResources.doFirst { pm->
                String manifestPath = output.processResources.manifestFile;
                def manifestContent = file(manifestPath).getText()
                // 需要删除的权限
                manifestContent = manifestContent.replace('<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>', '')
                file(manifestPath).write(manifestContent)
            }
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

参考文档:
https://juejin.cn/post/7114487250510938125
https://blog.csdn.net/Gdeer/article/details/88840980
https://blog.csdn.net/dhl91604/article/details/105969513/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/253153
推荐阅读
相关标签
  

闽ICP备14008679号