【问题标题】:DevicePolicyManager restore password or patternDevicePolicyManager 恢复密码或模式
【发布时间】:2013-08-02 23:38:59
【问题描述】:

我正在制作一个安全程序并且我正在使用 DeviceAdmin 机制。我制作了一个 DeviceAdminReceiver,它完美无缺。 我需要保护我的软件不被卸载。在第一次运行时,用户输入卸载密码。 在 onDisableRequested 中,我使用了 setPasswordQuality()、setPasswordMinimumLength(),最后是 lockNow()。设备正在锁定并要求我输入密码。没事。当用户输入匹配的密码设备解锁时,用户会看到我的警告,例如@it's not a good idea to disable bla-bla-bla" 并禁用我的管理应用程序。

但是!我的密码设置的密码没有被清除,如果用户使用某种模式锁定他的手机,手机就会被我的密码永久锁定!

问题是:如何恢复对锁定方案的更改? (即,如果需要,将其恢复为视觉模式)

【问题讨论】:

  • 为什么需要提示用户?禁用设备管理员已触发与用户的对话以确认禁用设备管理员 AFAIK
  • @QuentinSwain 只有安装它的用户才有权卸载。例如,如果手机被盗,我的程序将跟踪小偷的下落。但如果小偷可以毫无问题地卸载它,这种安全性就毫无意义。
  • 你能再解释一下,这两个句子“设备正在锁定并询问我的密码”和“我的代码设置的密码没有被清除”。方法 setPasswordQuality 和 setPasswordMinimumLength 只设置新密码的限制,不设置密码本身。所以,我不是您如何使用您的代码设置实际密码。
  • @VictorRonin 我忘了提到我也使用了 resetPassword()。设备正在锁定 - 屏幕已关闭,我将其重新打开,它已被我的新密码(如 PIN)锁定。我用 resetPassword() 设置的那个 PIN 正在替换任何键盘保护设置。

标签: android mdm screen-lock


【解决方案1】:

Roman,根据您的描述,我不确定您要保护的是哪种情况。

看起来您正在尝试保护:

  • 一个知道设备密码的小偷(因此您正在尝试使用另一个密码)

这是一个很奇怪的案例。我宁愿忽略它,因为它还有很多其他含义。

  • 小偷偷了未锁定的手机并想卸载您的设备管理员

在这种情况下,您无需重置密码。您需要做的就是 lockNow() 以确保 他无法卸载(因为他不知道密码)

【讨论】:

  • 用户可以使用简单的“滑动解锁”。但我必须确保用户我的防盗模块将以某种方式“持久化”......
  • 您的意思是您的用户可能根本没有配置密码? (“滑动解锁”)
  • 好的。因此,您的问题归结为是否有 API 可以以编程方式删除设备密码。我不确定是否存在这样的 API。但是,您可以尝试执行 resetPassword("")。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-05
  • 2011-06-13
  • 2010-11-30
  • 2012-02-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
相关资源
最近更新 更多