Com*_*are 13 android android-source android-permissions android-security
Android N允许您将自己的活动链接到"设置"中的应用页面.只需添加一个<intent-filter>for android.intent.action.APPLICATION_PREFERENCES.Android N的"设置"应用会在您的应用中查找具有该活动的活动<intent-filter>.如果设置找到一个,它会在设置中的应用页面上添加一个齿轮图标,如果用户点击齿轮,它们将被带到您指定的活动.
我担心安全性,所以我提交了一个问题,寻找我们可以使用的权限android:permission,允许设置启动我们的活动,但不允许其他应用程序启动我们的活动(例如,WRITE_SECURE_SETTINGS).
然后cketti指出,您可以将活动标记为未导出,通过android:exported="false".令我惊讶的是,这很有效.
"设置"应用如何启动标记为未导出的活动?
我当然可以看到有一个权限可以控制它.但是,快速阅读"设置"应用程序的清单(主分支,n-developer-preview-5分支)并没有发现任何明显的问题.
所以:
是否有允许应用启动其他应用的非导出组件的权限?如果是这样,这是什么?
如果没有,设置如何将其关闭?
我猜测清单中没有任何内容可以为应用程序提供调用导出活动的权限.我相信它实现这一目标的方法是LOCAL_PRIVILEGED_MODULE := true在Settings.mk文件中设置Settings应用程序.此标志将提供应用程序系统级别权限,并system/priv-app/在OS编译期间将其放在目录中.
如果查看frameworks/base/core/java/android/app/ActivityManager.java该方法checkComponentPermission,可以看到如果UID是SYSTEM的UID,则无论导出的设置如何,都会授予组件权限.
| 归档时间: |
|
| 查看次数: |
1070 次 |
| 最近记录: |