我有一个使用AndroidKeystore的应用程序,当我的应用程序被卸载时,我想从安卓密钥存储中清除我的应用程序特定的密钥条目(所以,应用程序没有太多的控制来调用deleteEntry)。
我相信当我的应用程序被卸载时,android会清理干净,但我不知道如何确认。我在android-dev上也找不到太多关于clenaup的信息。
是否有人可以确认或提供帮助,我们如何确保应用程序的keystore条目将在应用程序卸载时被删除?
发布于 2019-02-03 18:45:57
是的,当你的应用被删除时,你的密钥库密钥会自动删除。具体地说,每当删除应用程序时,都会调用PackageManagerService.removeKeyStoreDataIfNeeded。这将调用KeyStoreService::clear_uid,它会查找并删除指定应用程序UID的所有密钥别名。
发布于 2019-01-24 21:26:08
是,密钥将从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
}
}另请参阅this reply
https://stackoverflow.com/questions/31709308
复制相似问题