2013-08-02 33 views
0

我在制作一个安全程序,并使用DeviceAdmin机制。我制作了一个DeviceAdminReceiver,它的工作完美无瑕。 我需要保护我的软件免遭卸载。在第一次运行时,用户输入密码进行卸载。 在onDisableRequested中,我使用了setPasswordQuality(),setPasswordMinimumLength(),最后是lockNow()。该设备正在锁定并要求输入我的密码。没事。当用户输入匹配的密码时,设备解锁,用户看到我的警告,比如@禁用“bla-bla-bla”并不是一个好主意,并且禁用了我的管理应用程序DevicePolicyManager恢复密码或模式

但!!由我的代码设置的密码isn没有清除,如果用户使用某种模式来锁定他的手机,手机会被我的密码锁定好!

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

+0

为什么你需要提示用户?禁用设备管理员已经触发与用户的对话以确认禁用设备管理员AFAIK – dudebrobro

+0

@QuentinSwain只有安装它的用户才有权卸载。例如,如果手机被盗,我的程序会跟踪小偷的下落。但是,如果小偷可以毫无问题地卸载它,那么这种安全性就毫无意义。 – Revertron

+0

您能解释多一点,这两个发现“设备锁定并要求输入密码”和“我的密码设置的密码未被清除”。方法setPasswordQuality和setPasswordMinimumLength仅为新密码设置限制,并且不会设置密码本身。所以,我不是如何使用您的代码设置实际的密码。 –

回答

0

罗马,根据您的描述,我不知道你想从保护这种情况下。

它看就像你正试图保护:

  • 贼,谁知道设备的密码(所以你要使用另一个密码)

这是很奇怪的情况。我宁愿忽略它,因为它有很多其他含义。

  • 一个小偷,偷了其手机解锁,想卸载设备管理

在这种情况下,你并不需要重置密码。所有你需要做的是lockNow(),以确保他不能卸载(因为他不知道密码)

+0

用户可以使用简单的“滑动解锁”。但我必须确保用户,我的防盗模块将以某种方式“持久”...... – Revertron

+0

您的意思是说您的用户可能根本没有配置密码? (“幻灯片解锁”) –

+0

是的,我想恢复这种行为。 – Revertron