Android 设备管理员 - 禁用未在(多用户)访客帐户中应用的相机

Posted

技术标签:

【中文标题】Android 设备管理员 - 禁用未在(多用户)访客帐户中应用的相机【英文标题】:Android device administrator - Disable camera not applied in (Multi-user) Guest account 【发布时间】:2016-10-18 18:26:48 【问题描述】:

我已经实现了一个设备管理员应用程序,它可以根据某些要求(服务器端逻辑)等禁用摄像头。

   devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
   devicePolicyAdmin = new ComponentName(this, MyDevicePolicyReceiver.class);
   devicePolicyManager.setCameraDisabled(devicePolicyAdmin, true);

一切都按预期工作。但是,用户可以通过在启用多用户的手机模型(例如,切换到访客帐户)中简单地切换用户配置文件来规避限制。该帐户中的设备管理员列表也不反映该应用程序。这被公司政策视为安全漏洞。

我想知道:

    有没有具体的代码可以安装设备管理员 全球? 有什么方法可以防止多用户 以编程方式不生根? 有什么方法可以 防止切换用户或检测用户切换等 发生了,应该是 1 还是 2 是不可能的?

任何其他建议也将不胜感激。

【问题讨论】:

这是特定于三星设备的,但三星 KNOX 允许在启用 KNOX 的设备上以编程方式禁用多个用户。我是 android 应用锁的作者,我们只关注用户切换界面的启动并触发应用锁。 所以最好的解决方案是检测用户切换界面,因为并非所有设备都是三星的? 另外,如果在没有登录的情况下完成用户切换,检测用户切换界面是否有效? (如果这是可能的话) 是的,最好检测或屏蔽它。我们通过使用无障碍服务来阻止这种情况,以观察切换屏幕。如果您有兴趣对此进行测试,只需在 www.aleph-com.net 上打开支持票证并参考此问题。 【参考方案1】:

(1) 根据我的研究,不可能创建一个对设备上的所有帐户都具有管理员访问权限的设备管理员。此线程中的 cmets/answer 得出了相同的结论:https://android.stackexchange.com/q/138417

(2/3) 纵观 DPM API,似乎无法阻止用户切换或创建新帐户或监听帐户切换。通过修改build.propfw.max_users=1 来生根您的设备,可以防止用户切换或创建新帐户,请参阅:https://android.stackexchange.com/a/119632 和https://www.reddit.com/r/Android/comments/323l36/android_5x_how_to_disable_guest_additional_user/

如果您因为时间/维护/安全问题而反对植根设备,我建议您查看移动设备管理工具。上面的评论提到了三星 Knox,它可以让你通过MultiUserManager 禁用设备上的多个用户。

您还可以使用Mason 来锁定您的设备/应用程序,方法是关闭多用户、阻止用户下拉状态栏或访问设置,或将您的应用程序锁定在信息亭模式。

如果这听起来对您有用,请随时与我联系:trevor @ bymason.com

免责声明:我为 Mason 工作

【讨论】:

以上是关于Android 设备管理员 - 禁用未在(多用户)访客帐户中应用的相机的主要内容,如果未能解决你的问题,请参考以下文章

禁用设备管理员

Android 位置未在真实设备中显示

如何在 Xamarin 的新“Android 设备管理器”中禁用快速启动?

从非管理员用户帐户禁用/启用USB设备[关闭]

本地通知未在 Android 10 中触发

OTP 未在 Android 设备上发布