预装设备管理员应用程序
Preloaded device administrator app
我正在为我们提供给客户的 android 设备编写系统应用程序。我们控制固件并可以将应用程序添加到 android 映像,包括添加到 priv-app
文件夹中。
我们的应用程序的要求之一是它能够重置我们设备的密码。为了让 'normal' 应用执行此操作,android 要求将该应用设置为设备管理员。
是否有任何方法可以将我们的应用程序预先配置为固件的设备管理员,或者是否有其他方法专门为系统应用程序设置设备密码?
设备管理应用程序可以使用隐藏的 DevicePolicyManager.setActiveAdmin 方法将自己设置为管理员。然而,要做到这一点,应用程序需要 android.Manifest.permission.MANAGE_DEVICE_ADMINS
权限,这需要平台签名。
不需要将此应用程序置于 /system/priv-app
中的系统权限 - 权限类型为 "signature"。
我假设平台签名是必要的,否则,用户必须首先接受设备管理设置策略。
一旦成为管理员,应用程序就可以设置任何策略,包括使用 DevicePolicyManager.resetPassword
方法设置密码。
希望这对您有所帮助。
/Marek Pola,索尼移动。
我正在为我们提供给客户的 android 设备编写系统应用程序。我们控制固件并可以将应用程序添加到 android 映像,包括添加到 priv-app
文件夹中。
我们的应用程序的要求之一是它能够重置我们设备的密码。为了让 'normal' 应用执行此操作,android 要求将该应用设置为设备管理员。
是否有任何方法可以将我们的应用程序预先配置为固件的设备管理员,或者是否有其他方法专门为系统应用程序设置设备密码?
设备管理应用程序可以使用隐藏的 DevicePolicyManager.setActiveAdmin 方法将自己设置为管理员。然而,要做到这一点,应用程序需要 android.Manifest.permission.MANAGE_DEVICE_ADMINS
权限,这需要平台签名。
不需要将此应用程序置于 /system/priv-app
中的系统权限 - 权限类型为 "signature"。
我假设平台签名是必要的,否则,用户必须首先接受设备管理设置策略。
一旦成为管理员,应用程序就可以设置任何策略,包括使用 DevicePolicyManager.resetPassword
方法设置密码。
希望这对您有所帮助。
/Marek Pola,索尼移动。