Mostrar mensagens com a etiqueta Android. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Android. Mostrar todas as mensagens

quinta-feira, 20 de outubro de 2022

Android - Gestão APK com ADB

Android - Ativar modo de Programador to Settings

Para ativar o modo de Programador é necessário:

Definições > Sobre o Dispositivo

Clicar 7 vezes consecutivas no número da compilação para ativar o modo de Programador


Android - Ativar depuração USB

Para ativar a depuração por USB é necessário:

Definições > Opções do programador

Ativar a depuração por USB


ADB - Instalação

É possível instalar o adb a partir dos repositórios:

sudo apt install adb


ADB - Utilização

Para iniciar o servidor adb:

adb start-server


Ligar o dispositivo android com a opção de depuração USB ativa por USB ao computador.

No android é apresentada mensagem para confirmar que se confia na ligação adb.

Listar pacotes instalados no dispositivo

adb shell pm list packages

É necessário procurar o nome do pacote. Na play store o URL da aplicação tem o nome do pacote.

Obter Path de um pacote

adb shell pm path nome_do_pacote

Extrair pacote para APK

adb pull data/app/nome_do_pacote_na_path/base.apk /caminho/nome.apk

Instalar APK no dispositivo

adb install -r /caminho/nome.apk  




Referências

https://stackoverflow.com/questions/4032960/how-do-i-get-an-apk-file-from-an-android-device

https://www.vrtourviewer.com/docs/adb/

sábado, 11 de julho de 2015

VPN: Criar chave para cliente android e configuração

0. Introdução

As vantagens na utilização de um servidor VPN têm duas vertentes essenciais:
  • Aumentar a segurança na utilização de redes inseguras (redes wireless avulsas ou sem encriptação)
  • Ligar a uma rede local remota
O primeiro aspeto é essencial nos dias que correm pois grande parte dos equipamentos de lazer (centros comerciais, cafés, restaurantes, parques, etc) possuem redes sem fios gratuitas e/ou de fácil ligação e com muitos utilizadores em simultâneo.
A utilização de uma ligação VPN nestes cenários aumenta muito o nível de segurança da nossa navegação.

O segundo aspeto permite que o nosso dispositivo esteja "fisicamente" ligado à rede remota. Muito útil no caso de aplicações de ISP que apenas funcionam dentro da rede local de cada cliente (por exemplo, aplicações para visualização da emissão de TV e afins).
Desta forma, com acesso à Internet e ativando a ligação VPN é possível navegar a partir de qualquer lugar como se estivéssemos na rede local do servidor VPN e, assim, utilizar as referidas aplicações como se estivéssemos fisicamente na rede local.

1. Requisitos

1. Acesso a um servidor VPN.
2. Instalação da aplicação OpenVPN Connect no dispositivo cliente, designado de tabuleta

O teste foi feito com um sistema Android 4.x, mas existem diversas instruções para outros dispositivos ([1] ver Step 5 - Installing the Client Profile).
Para equipamentos Android de versões 2.x é necessário acesso root ao equipamento [2].

2. Criação de Certificados, Chaves e afins

Para cada dispositivo cliente é necessário criar um conjunto de ficheiros que permitem encriptar a ligação de forma muito segura.

Assim, acedendo ao servidor VPN, basta utilizar:
cd /etc/openvpn/easy-rsa/
./build-key tabuleta

Serão perguntadas diversas questões que para utilização normal podem ser confirmadas todas com ENTER e no final com dois 'y' para confirmação.

Este processo cria vários ficheiros na pasta /etc/openvpn/easy-rsa/keys, nomeadamente: tabuleta.crt e tabuleta.key.

3. Criação de um Perfil para o OpenVPN Connect

A criação de um perfil permite combinar num único ficheiro todos elementos necessários para a configuração de um cliente VPN.

1. Copiar o exemplo base de perfil:
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/easy-rsa/keys/tabuleta.ovpn

2. Editar o perfil tablet.ovpn:
nano /etc/openvpn/easy-rsa/keys/tabuleta.ovpn

3. Alterar a linha remote my-server-1 1194 para ter o domínio do servidor, por exemplo qualquercoisa.no-ip.org:
remote qualquercoisa.no-ip.org 1194

4. Se o cliente não é Windows, devem descomentar-se as linhas:
user nobody
group nogroup

5. Deve comentar-se depois as linhas que fazem referência aos certificados e chaves:
#ca ca.crt
#cert client.crt
#key client.key

6. De seguida é possível acrescentar e copiar/colar de forma a que o ficheiro tabuleta.ovpn fique:
(conteúdo existente)
<ca>
(colar conteúdo do ca.crt)
</ca>
<cert>
(colar conteúdo do tabuleta.crt)
</cert>
<key>
(colar conteúdo do tabuleta.key)
</key>

Para auxiliar a este processo criei um bash script que está disponível aqui [3].

7. Copiar o perfil tabuleta.ovpn de forma segura para o cliente.

4. Configuração do OpenVPN Connect no cliente

Para que um dispositivo se possa ligar ao servidor VPN necessita ter um cliente instalado e configurado. Neste caso o dispositivo tabuleta é um equipamento Android 4.x.

1. Instalar a aplicação OpenPVN Connect [4]

2. Abrir o OpenVPN Connect e importar o perfil copiado anteriormente com a opção:
Import > Import Profile from SD card

3. Selecionar o ficheiro tabuleta.ovpn e posteriormente deverá aparecer o perfil na aplicação

4. Quando estiver com acesso à Internet é possível fazer Connect e todo o tráfego passará pelo servidor VPN.

Este processo está muito bem explicado com diversas capturas de exemplos aqui [1] Step 5 - Installing the Client Profile.

Referências

[1] - Página com muita informação sobre criação e configuração do servidor e dos clientes
https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-14-04

[2] - Instruções para instalação no GingerBread 2.3
https://my.hostvpn.com/knowledgebase/15/OpenVPN-for-Android-rooted-Gingerbread-23x.html

[3] - Script para criação de um perfil para OpenVPN
http://librehacks.blogspot.pt/2015/07/vpn-script-para-criacao-de-perfis.html

[4] - Aplicação OpenVPN Connect
https://play.google.com/store/apps/details?id=net.openvpn.openvpn

segunda-feira, 16 de março de 2015

Android: Alterar ficheiros e pastas em /system

Após muita pesquisa aqui ficam algumas dicas para, de uma forma simples e sem instalar muitas aplicações, ter acesso ao sistema de ficheiros /system do Android que normalmente está acessível apenas em modo de leitura.

Hardware/Software utilizado

Xiaomi Redmi 2
Android 4.4.4 KTU84P
MIUI 5.2.6 Beta
Terminal Emulator for Android by Jack Palevich [3]

Instruções

1. Através da aplicação Security do Android é possível aceder às Permissions e aí ao Root access, sendo necessário ativar o Terminal Emulator para que tenha acesso root.

2. Abrir o Terminal Emulator e na consola deve aperecer algo terminado com $, para ativar o modo de root, basta executar su e deve aparecer o símbolo # na linha de comando.

3.1. Verificar as partições montadas:
mount

3.2. Verificar as características da partição /system
mount | grep /system

Normalmente aparece algo do género:
/dev/block/bootdevice/by-name/system /system ext4 ro,seclabel,relatime,discard,data=ordered 0 0

4. Remontar a partição /system como rw
mount -o rw,remount /system

5.  COM O DEVIDO CUIDADO é possível alterar a informação existente.

 ATENÇÃO 
 Pode estar a alterar informação
 que torne o dispositivo inoperável! 
 Proceda com cuidado. 


6. Para voltar a ter a partição apenas como leitura é possível reiniciar o dispositivo ou então com o comando:
mount -o ro,remount /system

Outros Cenários

Caso estes procedimentos funcionem com outros dispositivos e/ou versões do Android, pode adicionar essa informação nos comentários.

Referências

[1] - http://www.pocketmagic.net/write-on-the-android-read-only-file-system/ - Comandos para remontar partições no Android
[2] - http://forum.xda-developers.com/showthread.php?t=921928 - Copiar ficheiros para /system
[3] - https://play.google.com/store/apps/details?id=jackpal.androidterm - Terminal Emulator for Android