我有一个使用AndroidKeystore的应用程序,我想清理从Android的密钥存储我的应用程序特定的键条目,当我的应用得到了卸载(这样,应用程序没有多少控制调用deleteEntry)。
我认为,Android的清理,当我的应用程序得到了卸载,但我唐诺如何确认。我无法找到任何关于Android的开发clenaup很多信息。
任何人都可以证实或给我们如何确保当该应用被卸载应用程序的密钥库条目将被删除的帮助?
是的,密钥都将AndroidKeyStore被删除。为了保证恩,你可以使用创建密钥的方法,如果KeyStore.getInstance()
调用后它不存在,并确认那些被应用时,卸载调用。
private static void init() throws KeyStoreException {
keyStore = KeyStore.getInstance(ANDROID_KEY_STORE);
try {
keyStore = loadKeystore();
} catch (CertificateException | IOException | NoSuchAlgorithmException e) {
e.printStackTrace();
}
if (!keyStore.containsAlias(KEY_ALIAS)) {
Log.w(Constants.TAG, "GENERATING KEYS");
//KEY ABSENT, generate it
}else{
//EXISTING KEY
}
}
是的,当你的应用程序被删除您的密钥存储密钥被自动删除。具体而言,每当应用程序被删除,PackageManagerService.removeKeyStoreDataIfNeeded被调用。这就要求KeyStoreService::clear_uid其查找并删除指定的应用程序UID所有关键的别名。