Проверьте, зашифрована ли файловая система Android
мы разрабатываем безопасное приложение для Android. Это необходимо для пользователей, чтобы держать файловые системы своих устройств в зашифрованном виде, но мы должны проверить этот факт и запретить использовать приложение. Можно ли проверить, зашифрована ли файловая система? Также есть некоторые устройства с Android
3 ответов
Если ваше приложение зарегистрировано как устройство админ можно назвать getStorageEncryptionStatus()
on DevicePolicyManager
чтобы узнать состояние шифрования устройства, для уровня API 11 и выше.
для любого шифрования всего устройства на более низких уровнях API обратитесь к производителю устройства.
просто чтобы уточнить ответ CommonsWare, вы можете читать статус шифрования устройства без каких-либо разрешений Android.
/**
* Returns the encryption status of the device. Prior to Honeycomb, whole device encryption was
* not supported by Android, and this method returns ENCRYPTION_STATUS_UNSUPPORTED.
*
* @return One of the following constants from DevicePolicyManager:
* ENCRYPTION_STATUS_UNSUPPORTED, ENCRYPTION_STATUS_INACTIVE,
* ENCRYPTION_STATUS_ACTIVATING, or ENCRYPTION_STATUS_ACTIVE.
*/
@TargetApi(11)
private int getDeviceEncryptionStatus() {
int status = DevicePolicyManager.ENCRYPTION_STATUS_UNSUPPORTED;
if (Build.VERSION.SDK_INT >= 11) {
final DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
if (dpm != null) {
status = dpm.getStorageEncryptionStatus();
}
}
return status;
}
для уточнения предыдущих ответов
на API getStorageEncryptionStatus() возвращает ENCRYPTION_STATUS_INACTIVE
когда устройство зашифровано, но пароль не был включен.
на API >= 23 он возвращает ENCRYPTION_STATUS_ACTIVE_DEFAULT_KEY
в этом случае.