我正在为我们提供给客户的 android 设备编写系统应用程序。我们控制固件并可以将应用程序添加到 android 映像中,包括添加到priv-app
文件夹中。
我们的应用程序的要求之一是它能够重置我们设备的密码。为了让“普通”应用程序执行此操作,android 要求将应用程序设置为设备管理员。
有什么方法可以将我们的应用程序预先配置为我们固件的设备管理员,或者另一种方法专门为系统应用程序设置设备密码?
我正在为我们提供给客户的 android 设备编写系统应用程序。我们控制固件并可以将应用程序添加到 android 映像中,包括添加到priv-app
文件夹中。
我们的应用程序的要求之一是它能够重置我们设备的密码。为了让“普通”应用程序执行此操作,android 要求将应用程序设置为设备管理员。
有什么方法可以将我们的应用程序预先配置为我们固件的设备管理员,或者另一种方法专门为系统应用程序设置设备密码?
设备管理员应用程序可以使用隐藏的 DevicePolicyManager.setActiveAdmin 方法将自己设置为管理员。但是,要做到这一点,应用程序需要android.Manifest.permission.MANAGE_DEVICE_ADMINS
需要平台签名的权限。
/system/priv-app
不需要通过放置此应用程序获得系统权限- 权限属于“签名”类型。
我认为平台签名是必要的,否则用户必须首先接受设备管理员设置策略。
一旦管理员,应用程序可以设置任何策略,包括设置密码使用DevicePolicyManager.resetPassword
方法。
希望这可以帮助。
/Marek Pola,索尼移动。