Проверьте, зашифрована ли файловая система 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 в этом случае.