+-

如何查询 Android应用程序的当前窗口/活动以检查 window flag FLAG_SECURE?是否可以使用ADB或任何其他命令行工具对APK进行操作?
我的用例是:我想查询设备以查看是否在当前屏幕上启用了FLAG_SECURE.我没有源代码,我只是使用APK作为黑匣子验收测试仪.
请注意,这个其他问题是相似且未回答:Android – Window Flags
最佳答案
您只需在dumpsys窗口< window id>中检查mAttr行,就可以确定某个特定窗口是否设置了FLAG_SECURE.输出:
~$dumpsys window com.android.settings | grep ' mAttrs='
mAttrs=WM.LayoutParams{(0,0)(fillxfill) sim=#20 ty=1 fl=#85810100 pfl=0x20000 wanim=0x103046a vsysui=0x700 needsMenuKey=2}
fl =值是该窗口的WindowManager.LayoutParams().flags(以十六进制表示). FLAG_SECURE是值为0x2000的位掩码.这是您可以在adb shell中对其进行正确检查的方法:
for f in $(dumpsys window com.android.settings | grep ' mAttrs=' | grep -o ' fl=#[^ ]*'); do [[ $((16#${f#*#}&8192)) -ne 0 ]] && echo 'FLAG_SECURE is set' || echo 'FLAG_SECURE is not set'; done
点击查看更多相关文章
转载注明原文:android-如何通过命令行从当前APK屏幕查询FLAG_SECURE? - 乐贴网