O Android consiste em uma estrutura de aplicativo, bibliotecas de aplicativo e um tempo de execução com base em máquina virtual Dalvik, todos eles em execução em um kernel do Linux.
Ao tirar proveito do kernel Linux, o Android obtém uma série de serviços do sistema operacional, incluindo o gerenciamento de processos e de memória, uma pilha de rede, drivers, uma camada de abstração de hardware e, relacionados ao tópico deste artigo, serviços de segurança.
Pré-requisitos
Para acompanhar este artigo, é preciso ter as seguintes qualificações e ferramentas:
- Conhecimento básico da tecnologia Java e como usar o Eclipse (ou seu IDE favorito)
- Java Development Kit (é requerida a versão 5 ou 6)
- Eclipse (versão 3.4 ou 3.5)
- Android SDK e plug-in ADT
Para fazer o download e obter informações de configuração, consulte a seção Recursos no final deste artigo.
Acrônimos usados frequentemente
- ADT: Android Development Tools
- API: Interface de programação de aplicativos
- DE: Ambiente de Desenvolvimento Integrado
- JDK: Java Development Kit
- URL: Identificador Uniforme de Recursos
- XML: Linguagem de Marcação Extensível
Ambientes de simulação, processos e permissões
O Android usa o conceito de um ambiente de simulação para executar a
separação e as permissões entre aplicativos a fim de permitir ou negar o
acesso de um aplicativo aos recursos do dispositivo, como arquivos e
diretórios, a rede, os sensores e as APIs em geral.
Para isto, o Android usa facilidades do Linux, como segurança em nível de processo, IDs de
usuário e de grupo associados com o aplicativo e permissões para impor
quais operações um aplicativo tem permissão de realizar.
Conceitualmente, um ambiente de simulação pode ser representado como na Figura 1.
Figura 1. Dois aplicativos Android, cada um em seu próprio ambiente de simulação ou processo básico
O aplicativo Android é executado em seu próprio processo do Linux e lhe é atribuído um ID de usuário exclusivo. Por padrão, os aplicativos são executados dentro de um processo básico de ambiente de simulação sem permissões atribuídas, evitando, desta forma, que tais aplicativos acessem o sistema ou os recursos.
Aplicativos Android podem solicitar permissões, no entanto, por meio do arquivo de manifesto do aplicativo.
Aplicativos Android podem permitir o acesso a seus recursos por outros aplicativos ao:
- Declarar as permissões de manifesto apropriadas
- Executar no mesmo processo com outros aplicativos confiáveis e, portanto, compartilhar o acesso a seus dados e código
O último caso é ilustrado na Figura 2.
Figura 2. Dois aplicativos Android executando no mesmo processo
Diferentes aplicativos podem ser executados no mesmo processo. Para esta abordagem, é preciso primeiro assinar esses aplicativos usando a mesma chave privada e, a seguir, atribuir a eles o mesmo ID de usuário do Linux usando o arquivo de manifesto, definindo o atributo do manifesto
android:sharedUserId com o mesmo valor/nome.
ID do usuário: Linux versus Android
Enquanto que um ID de usuário no Linux identifica um dado usuário, no Android, um ID de usuário identifica um aplicativo. IDs de usuário são atribuídos quando o aplicativo é instalado e permanecem pela vida útil do aplicativo no dispositivo. Permissões dizem respeito a permitir ou
restringir o acesso do aplicativo (em vez de usuários) aos recursos do dispositivo.
Clique aqui e continue lendo. Ainda tem muita informação
Leia também…
Fonte: Linguagens para Software
O Blog apresenta sempre novidades sobre certificação digital. Conheça e divulgue.