Выясните, полностью ли зашифровано устройство и какое шифрование использовалось? - PullRequest
4 голосов
/ 14 июня 2011

Поскольку Android 3.0 поддерживает полное шифрование диска, но я не вижу API для этой возможности.Мне нужно знать две конкретные вещи:

  1. Зашифровано ли устройство?
  2. Какое шифрование используется.

Я обнаружил низкий уровеньобъяснение процесса здесь и, по-видимому, предполагается, что используется шифрование 128 AES с CBC и ESSIV: SHA256, но оно не говорит о способе определения, зашифровано ли устройство.* Итак, есть ли способ, которым мое приложение может запросить, использует ли устройство функцию полного шифрования диска, или мне нужно прибегнуть к хакерским решениям, таким как вызовы Runtime.exec?

Ответы [ 2 ]

9 голосов
/ 20 августа 2013

Как упоминает @Mikle, вы можете просто позвонить на DevicePolicyManager и задать ему статус

@SuppressLint("NewApi")
    private boolean isEncrypted(Context context) {
        DevicePolicyManager devicePolicyManager = (DevicePolicyManager) context
                .getSystemService(Context.DEVICE_POLICY_SERVICE);

        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) {
            int status = devicePolicyManager.getStorageEncryptionStatus();
            if (DevicePolicyManager.ENCRYPTION_STATUS_ACTIVE == status) {
                return true;
            }
        }
        return false;
    }
3 голосов
/ 14 июня 2011

Я думаю, что API, который вы ищете, является частью API администрирования устройств . В частности, вам нужно настроить DeviceAdminReceiver и в разделе «политики использования» файла device_admin.xml добавить элемент «зашифрованное хранилище». Затем вы можете свободно вызывать setStorageEncryption, чтобы указать, какой тип шифрования следует применять. DeviceAdminSample.java должен предоставить вам большую часть кода, который вам нужен. Это своего рода косвенный способ выяснить, зашифровано ли устройство, но это единственный публичный API, о котором я знаю.

Это также не скажет вам, какой тип шифрования используется ... Я не смог найти API для этого.

...