Apresentação Lock & Wipe no M3 da Mobiltec

Muito já falamos aqui no blog sobre os conceitos de lock & wipe e como implementar essa funcionalidade, para Windows Mobile e para Android.

Como vocês já sabem, trata-se de uma funcionalidade crítica no que tange segurança para uso e gestão de dispositivos móveis corporativos. Com ela, é possível bloquear remotamente um dispositivo móvel e apagar seus dados, retornando as configurações originais.

Hoje, vamos mostrar em vídeo como se executa essa operação, utilizando como exemplo o M3 da Mobiltec. O vídeo tem pouco mais de três minutos. Confira!

Segurança em Aplicações Mobile: Lock e Wipe no Android

Com o uso cada vez mais frequente de dispositivos móveis, inclusive  em ambientes corporativos,  há uma preocupação que cresce proporcionalmente: como apagar os dados armazenados nos dispositivos que foram extraviados  e como impedir a utilização de um dispositivo por pessoas não autorizadas.

Pensando nisso, as principais plataformas de mobilidade da atualidade têm oferecido recursos em nível de programação para que seja possível a implementação de soluções capazes de bloquear um dispositivo contra acessos não autorizados e eliminar os dados armazenados no dispositivo, restaurando suas configurações originais. O conceito de Lock e Wipe aborda essa duas características.

Hoje vamos apresentar a maneira como implementamos o Lock e Wipe na plataforma Android. Essa funcionalidade está disponível a partir do API Level 8, ou seja, a versão 2.2 do Android.

Atenção!

Para que seja possível uma aplicação realizar qualquer uma dessas duas operações, primeiro é preciso dar permissão de administrador à aplicação.  Essa permissão quem concede é o próprio usuário, porém, a chamada da tela solicitando a confirmação do usuário é de responsabilidade da própria aplicação. Sua aplicação deve ter um mecanismo capaz de verificar se este tem privilégio de administrador e, não tendo, saber chamar a tela apropriada solicitando a confirmação do usuário. Mostraremos como fazer isso mais adiante.

Colocando a mão na massa

Nosso objetivo aqui é dar uma noção geral de como podemos implementar as operações de Lock e Wipe em um dispositivo com Android.
O primeiro passo é configurar o arquivo Manifest.xml. Precisamos incluir as seguintes tags nele:

<receiver android:name="android.app.admin.DeviceAdminReceiver"
          android:label="device_admin" android:permission="android.permission.BIND_DEVICE_ADMIN">
   <meta-data android:name="android.app.device_admin"
              android:resource="@xml/device_admin" />
   <intent-filter>
      <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
      <data android:scheme="@string/app_name" />
   </intent-filter>
</receiver>

Como visto acima, precisamos declarar um Receiver, que será responsável pela efetiva execução do Lock e Wipe no dispositivo. Vamos destacar as partes mais importantes dessas tags:

  • receiver Android:name: aqui deverá constar sua classe do tipo BroadCastReceiver, que deverá ser filha da classe android.app.admin.DeviceAdminReceiver, ou ela própria.
  • receiver android.permission: permissão que deverá ser dada ao Receiver responsável pela administração do dispositivo (Receiver declarado no atributo acima). Essa permissão garante que somente o sistema interagirá com ele.
  • meta-data android:resource: essa propriedade é interessante. Você deverá criar um arquivo xml incluindo as ações que seu aplicativo poderá fazer, por ser administrador do dispositivo, e referenciá-lo nessa propriedade. Abaixo um exemplo do conteúdo desse arquivo, indicando somente as ações de lock e wipe:
    <device-admin xmlns:android="http://schemas.android.com/apk/res/android">
      <uses-policies>
        <force-lock />
        <wipe-data />
      </uses-policies>
    </device-admin>
    
  • action android:name: Aqui é configurado a Intent que será chamada pela sua aplicação para que o usuário conceda privilégio de administrador à sua aplicação. Abaixo é mostrado um exemplo de como chamar essa Intent em sua aplicação:

    /*
     *Intancia um ComponentName com o contexto em questão (MyClass.this)
     *e com o Receiver declarado no Manifest.xml
     */
    ComponentName appAdmin = new ComponentName(MyClass.this,
              DeviceAdminReceiver.class);
    
    Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
    intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
                    appAdmin );
    intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                    "Texto adicional explicando o motivo da solicitação");
    startActivityForResult(intent, 1);

Após todo esse processo, agora vamos mostrar como é realizado o Lock e Wipe programaticamente.

Aplicando o Lock e Wipe

A classe que expõe os métodos responsáveis pelas operações de Lock e Wipe no Android é a classe android.app.admin.DevicePolicyManager. A operação de Wipe consiste em inicializar o dispositivo, excluindo todos os dados armazenados nele e restaurando as configurações originais. Já a operação de Lock consiste em bloquear o dispositivo contra o uso não autorizado, sendo possível desbloqueá-lo caso a senha inserida seja a correta. Uma peculiaridade, nesse caso, é que podemos inclusive alterar a senha via programação, mesmo já existindo uma senha cadastrada previamente pelo usuário referente ao bloqueio.
Antes de chamar os métodos precisamos instanciar a classe DevicePolicyManager. Abaixo segue o exemplo de como fazemos isso:

//MyContext = contexto em questão
DevicePolicyManager policeManager = (DevicePolicyManager)
      MyContext.getSystemService(Context.DEVICE_POLICY_SERVICE);

Após instanciar a classe, já podemos chamar os métodos responsáveis pelas operações. Mostraremos como isso é feito:

Wipe:

 policeManager.wipeData(0);

 
Lock:

 policeManager.lockNow();

 

Como podemos perceber, não há dificuldades para entender e utilizar esse recurso que é muito útil, principalmente nos dias atuais, onde os dados contidos nos dispositivos são muito mais valiosos  do que os próprios dispositivos. Não perca nossos próximos posts sobre Lock e Wipe, pois queremos abordar esse recurso também em outras plataformas móveis. Para maiores informações sobre Lock e Wipe no Android clique Aqui. Até Mais!

Escrito por Maycon Roberto