X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=MetadataCrypt.cpp;fp=MetadataCrypt.cpp;h=9038e8d5043723f4dc3b142ec30f0f86e31508b8;hb=d31f36d334d19dc946971a0a59b1003937c1b3c2;hp=dc50679e06f35e94eebeb0112f5afab211b57020;hpb=2bab97c36830a568083ab60767817ef037c5367d;p=android-x86%2Fsystem-vold.git diff --git a/MetadataCrypt.cpp b/MetadataCrypt.cpp index dc50679..9038e8d 100644 --- a/MetadataCrypt.cpp +++ b/MetadataCrypt.cpp @@ -112,6 +112,17 @@ static bool read_key(const std::string& metadata_key_dir, const KeyGeneration& g auto dir = metadata_key_dir + "/key"; LOG(DEBUG) << "metadata_key_dir/key: " << dir; if (!MkdirsSync(dir, 0700)) return false; + if (!pathExists(dir)) { + auto delete_all = android::base::GetBoolProperty( + "ro.crypto.metadata_init_delete_all_keys.enabled", false); + if (delete_all) { + LOG(INFO) << "Metadata key does not exist, calling deleteAllKeys"; + Keymaster::deleteAllKeys(); + } else { + LOG(DEBUG) << "Metadata key does not exist but " + "ro.crypto.metadata_init_delete_all_keys.enabled is false"; + } + } auto temp = metadata_key_dir + "/tmp"; return retrieveOrGenerateKey(dir, temp, kEmptyAuthentication, gen, key); }