Instalar el driver ABD en Linux

Veremos cómo instalar ADB y Fastboot en Ubuntu 16.04, 16.10, 14.04


Si pretende  desde Linux  ,o cualquiera de de sus variantes, ejecutar alguna aplicación java    que necesite acceder a su terminal  Android ,como  por ejemplo alguna utilidad para configurar su smartphone ( XiaomiADBFastbootTools.jar ,etc ) es muy probable que obtenga el siguiente error:

ERROR: Can,'t find ADB/Fastboot

Como se puede intuir el error nos esta informando que en nuestro sistema no disponemos del  driver ADB/Fastboot

En este post por ello mostaremos cómo instalar ADB y fastboot en Ubuntu 16.04, 14.04, 16.10, lo cual es bastante fácil.

¿Qué es ADB y Fastboot?

ADB y fastboot son dos componentes de Android SDK Platform-Tools .

ADB significa Android Debug Bridge. Es una utilidad de línea de comandos que le permite hacer lo siguiente:

      • Controlar su dispositivo Android a través de USB desde su ordenador
      • Copiar archivos de un lado a otro
      • Instalar y desinstalar aplicaciones
      • Ejecutar comandos de shell
      • Y mucho más

Fastboot es una herramienta de línea de comandos para flashear y dispositivos Android, iniciar un dispositivo Android en modo fastboot, etc.

Para  instalar ADB y Fastboot en Ubuntu 16.04, 16.10, 14.04  simplemente ejecute los siguientes comandos en una ventana de terminal para instalarlos desde el repositorio de Ubuntu.

sudo apt update
sudo apt install android-tools-adb android-tools-fastboot

Para verificar la versión ADB, ejecutar

version adb

Salida de muestra:

Android Debug Bridge versión 1.0.32

Habilitar la depuración de USB en su dispositivo Android

Mientras su dispositivo Android está desconectado del USB, vaya a la configuración de Android, desplácese hacia abajo y toque About phoneo About device. Luego toque Número de compilación 7 veces, lo que le convierte en desarrollador.

Ahora regrese a la configuración, vea un nuevo botón llamado Developer options. Toque ese botón y habilite la depuración de USB.

Probar la instalación

Para verificar si ADB funciona correctamente, conecte su dispositivo Android a su computadora Ubuntu mediante un cable USB. Después de eso, escriba el siguiente comando en la ventana de su terminal Ubuntu.

 adb devices

Se le pedirá que permita la depuración de USB desde la computadora Ubuntu como en la captura de pantalla a continuación. Selecciona OK.

adb ubuntu

Luego, escriba adb devicesejecutar el comando nuevamente y seleccione su dispositivo Android.




[email protected]:~/Descargas$ adb version
Android Debug Bridge version 1.0.39
Version 1:8.1.0+r23-5~18.04
Installed as /usr/lib/android-sdk/platform-tools/adb
[email protected]:~/Descargas$ adb version
Android Debug Bridge version 1.0.39
Version 1:8.1.0+r23-5~18.04
Installed as /usr/lib/android-sdk/platform-tools/adb
[email protected]:~/Descargas$ adb devices
List of devices attached
* daemon not running; starting now at tcp:5037
* daemon started successfully
2fca4b957d74 unauthorized

[email protected]:~/Descargas$ adb devices
List of devices attached
2fca4b957d74 device


 

 

Si obtiene el siguiente error,

????????????    no permissions

Entonces todo lo que necesita hacer es reiniciar adb daemon, es decir ejecutar

sudo adb kill-server

Y entonces volver a arrancar el demonio:

sudo adb start-server

¡Eso es todo , ya no deberia tener mas errores a la hora de jeecutar una apliacion java    que necesite acceder a su terminal  Android ,como  por ejemplo alguna utilidad para configurar su smartphone (  XiaomiADBFastbootTools.jar ,etc)

 

 

 

 

 

 

 

 

LOG DE EJEMPLO DE INSTALACION

[email protected]:~/Descargas$ sudo apt update
[sudo] contraseña para soloelectronicos:
Lo sentimos, vuelva a intentarlo.
[sudo] contraseña para soloelectronicos:
Obj:1 http://ppa.launchpad.net/thopiekar/cura/ubuntu bionic InRelease
Des:2 http://security.ubuntu.com/ubuntu bionic-security InRelease [88,7 kB]
Obj:3 http://ppa.launchpad.net/webupd8team/java/ubuntu bionic InRelease
Obj:4 http://es.archive.ubuntu.com/ubuntu bionic InRelease
Obj:5 https://repo.skype.com/deb stable InRelease
Des:6 http://es.archive.ubuntu.com/ubuntu bionic-updates InRelease [88,7 kB]
Des:7 http://es.archive.ubuntu.com/ubuntu bionic-backports InRelease [74,6 kB]
Des:8 http://security.ubuntu.com/ubuntu bionic-security/main amd64 DEP-11 Metadata [38,7 kB]
Des:9 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 DEP-11 Metadata [42,1 kB]
Des:10 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 DEP-11 Metadata [2.464 B]
Des:11 http://es.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [915 kB]
Des:12 http://es.archive.ubuntu.com/ubuntu bionic-updates/main i386 Packages [669 kB]
Des:13 http://es.archive.ubuntu.com/ubuntu bionic-updates/main amd64 DEP-11 Metadata [301 kB]
Des:14 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 DEP-11 Metadata [273 kB]
Des:15 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe DEP-11 64×64 Icons [458 kB]
Des:16 http://es.archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 DEP-11 Metadata [2.468 B]
Des:17 http://es.archive.ubuntu.com/ubuntu bionic-backports/universe amd64 DEP-11 Metadata [7.968 B]
Descargados 2.963 kB en 3s (980 kB/s)
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
Se pueden actualizar 4 paquetes. Ejecute «apt list –upgradable» para verlos.
[email protected]:~/Descargas$ sudo apt install android-tools-adb android-tools-fastboot
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
El paquete indicado a continuación se instaló de forma automática y ya no es necesario.
libllvm6.0
Utilice «sudo apt autoremove» para eliminarlo.
Se instalarán los siguientes paquetes adicionales:
adb android-libadb android-libbacktrace android-libbase android-libboringssl android-libcrypto-utils
android-libcutils android-libetc1 android-libf2fs-utils android-liblog android-libsparse android-libunwind
android-libutils android-libziparchive android-sdk-platform-tools android-sdk-platform-tools-common dmtracedump
etc1tool f2fs-tools fastboot graphviz hprof-conv libann0 libcdt5 libcgraph6 libf2fs-format4 libf2fs5 libgts-0.7-5
libgts-bin libgvc6 libgvpr2 liblab-gamut1 libpathplan4 p7zip p7zip-full sqlite3
Paquetes sugeridos:
graphviz-doc p7zip-rar sqlite3-doc
Se instalarán los siguientes paquetes NUEVOS:
adb android-libadb android-libbacktrace android-libbase android-libboringssl android-libcrypto-utils
android-libcutils android-libetc1 android-libf2fs-utils android-liblog android-libsparse android-libunwind
android-libutils android-libziparchive android-sdk-platform-tools android-sdk-platform-tools-common
android-tools-adb android-tools-fastboot dmtracedump etc1tool f2fs-tools fastboot graphviz hprof-conv libann0
libcdt5 libcgraph6 libf2fs-format4 libf2fs5 libgts-0.7-5 libgts-bin libgvc6 libgvpr2 liblab-gamut1 libpathplan4
p7zip p7zip-full sqlite3
0 actualizados, 38 nuevos se instalarán, 0 para eliminar y 4 no actualizados.
Se necesita descargar 5.614 kB de archivos.
Se utilizarán 21,4 MB de espacio de disco adicional después de esta operación.
¿Desea continuar? [S/n] S
Des:1 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 android-liblog amd64 1:8.1.0+r23-5~18.04 [44,2 kB]
Des:2 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 android-libbase amd64 1:8.1.0+r23-5~18.04 [31,3 kB]
Des:3 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 android-libboringssl amd64 8.1.0+r23-2~18.04 [535 kB]
Des:4 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 android-libcrypto-utils amd64 1:8.1.0+r23-5~18.04 [10,9 kB]
Des:5 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 android-libcutils amd64 1:8.1.0+r23-5~18.04 [32,0 kB]
Des:6 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 android-libadb amd64 1:8.1.0+r23-5~18.04 [128 kB]
Des:7 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 adb amd64 1:8.1.0+r23-5~18.04 [97,4 kB]
Des:8 http://es.archive.ubuntu.com/ubuntu bionic/universe amd64 p7zip amd64 16.02+dfsg-6 [358 kB]
Des:9 http://es.archive.ubuntu.com/ubuntu bionic/universe amd64 p7zip-full amd64 16.02+dfsg-6 [1.164 kB]
Des:10 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 android-libunwind amd64 8.1.0+r23-2~18.04 [51,4 kB]
Des:11 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 android-libbacktrace amd64 1:8.1.0+r23-5~18.04 [54,4 kB]
Des:12 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 android-libetc1 amd64 1:8.1.0+r23-2~18.04 [17,9 kB]
Des:13 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 libf2fs5 amd64 1.11.0-1.1~18.04 [14,3 kB]
Des:14 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 libf2fs-format4 amd64 1.11.0-1.1~18.04 [18,0 kB]
Des:15 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 android-libsparse amd64 1:8.1.0+r23-5~18.04 [25,7 kB]
Des:16 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 android-libf2fs-utils amd64 8.1.0+r23-2~18.04 [11,1 kB]
Des:17 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 android-libutils amd64 1:8.1.0+r23-5~18.04 [56,9 kB]
Des:18 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 android-libziparchive amd64 1:8.1.0+r23-5~18.04 [32,9 kB]
Des:19 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 android-sdk-platform-tools-common all 27.0.0+10~18.04.2 [12,2 kB]
Des:20 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 f2fs-tools amd64 1.11.0-1.1~18.04 [157 kB]
Des:21 http://es.archive.ubuntu.com/ubuntu bionic/universe amd64 libann0 amd64 1.1.2+doc-6 [24,8 kB]
Des:22 http://es.archive.ubuntu.com/ubuntu bionic/universe amd64 libcdt5 amd64 2.40.1-2 [19,6 kB]
Des:23 http://es.archive.ubuntu.com/ubuntu bionic/universe amd64 libcgraph6 amd64 2.40.1-2 [40,8 kB]
Des:24 http://es.archive.ubuntu.com/ubuntu bionic/universe amd64 libgts-0.7-5 amd64 0.7.6+darcs121130-4 [150 kB]
Des:25 http://es.archive.ubuntu.com/ubuntu bionic/universe amd64 libpathplan4 amd64 2.40.1-2 [22,6 kB]
Des:26 http://es.archive.ubuntu.com/ubuntu bionic/universe amd64 libgvc6 amd64 2.40.1-2 [601 kB]
Des:27 http://es.archive.ubuntu.com/ubuntu bionic/universe amd64 libgvpr2 amd64 2.40.1-2 [169 kB]
Des:28 http://es.archive.ubuntu.com/ubuntu bionic/universe amd64 liblab-gamut1 amd64 2.40.1-2 [178 kB]
Des:29 http://es.archive.ubuntu.com/ubuntu bionic/universe amd64 graphviz amd64 2.40.1-2 [601 kB]
Des:30 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 dmtracedump amd64 8.1.0+r23-3~18.04 [26,3 kB]
Des:31 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 etc1tool amd64 8.1.0+r23-1~18.04 [18,4 kB]
Des:32 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 fastboot amd64 1:8.1.0+r23-5~18.04 [65,5 kB]
Des:33 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 hprof-conv amd64 8.1.0+r23-2~18.04 [13,2 kB]
Des:34 http://es.archive.ubuntu.com/ubuntu bionic-updates/main amd64 sqlite3 amd64 3.22.0-1ubuntu0.3 [752 kB]
Des:35 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 android-sdk-platform-tools amd64 27.0.0+10~18.04.2 [10,8 kB]
Des:36 http://es.archive.ubuntu.com/ubuntu bionic/universe amd64 libgts-bin amd64 0.7.6+darcs121130-4 [41,3 kB]
Des:37 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 android-tools-adb all 1:8.1.0+r23-5~18.04 [13,6 kB]
Des:38 http://es.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 android-tools-fastboot all 1:8.1.0+r23-5~18.04 [13,6 kB]
Descargados 5.614 kB en 2s (2.433 kB/s)
Extrayendo plantillas para los paquetes: 100%
Seleccionando el paquete android-liblog previamente no seleccionado.
(Leyendo la base de datos … 168490 ficheros o directorios instalados actualmente.)
Preparando para desempaquetar …/00-android-liblog_1%3a8.1.0+r23-5~18.04_amd64.deb …
Desempaquetando android-liblog (1:8.1.0+r23-5~18.04) …
Seleccionando el paquete android-libbase previamente no seleccionado.
Preparando para desempaquetar …/01-android-libbase_1%3a8.1.0+r23-5~18.04_amd64.deb …
Desempaquetando android-libbase (1:8.1.0+r23-5~18.04) …
Seleccionando el paquete android-libboringssl previamente no seleccionado.
Preparando para desempaquetar …/02-android-libboringssl_8.1.0+r23-2~18.04_amd64.deb …
Desempaquetando android-libboringssl (8.1.0+r23-2~18.04) …
Seleccionando el paquete android-libcrypto-utils previamente no seleccionado.
Preparando para desempaquetar …/03-android-libcrypto-utils_1%3a8.1.0+r23-5~18.04_amd64.deb …
Desempaquetando android-libcrypto-utils (1:8.1.0+r23-5~18.04) …
Seleccionando el paquete android-libcutils previamente no seleccionado.
Preparando para desempaquetar …/04-android-libcutils_1%3a8.1.0+r23-5~18.04_amd64.deb …
Desempaquetando android-libcutils (1:8.1.0+r23-5~18.04) …
Seleccionando el paquete android-libadb previamente no seleccionado.
Preparando para desempaquetar …/05-android-libadb_1%3a8.1.0+r23-5~18.04_amd64.deb …
Desempaquetando android-libadb (1:8.1.0+r23-5~18.04) …
Seleccionando el paquete adb previamente no seleccionado.
Preparando para desempaquetar …/06-adb_1%3a8.1.0+r23-5~18.04_amd64.deb …
Desempaquetando adb (1:8.1.0+r23-5~18.04) …
Seleccionando el paquete p7zip previamente no seleccionado.
Preparando para desempaquetar …/07-p7zip_16.02+dfsg-6_amd64.deb …
Desempaquetando p7zip (16.02+dfsg-6) …
Seleccionando el paquete p7zip-full previamente no seleccionado.
Preparando para desempaquetar …/08-p7zip-full_16.02+dfsg-6_amd64.deb …
Desempaquetando p7zip-full (16.02+dfsg-6) …
Seleccionando el paquete android-libunwind previamente no seleccionado.
Preparando para desempaquetar …/09-android-libunwind_8.1.0+r23-2~18.04_amd64.deb …
Desempaquetando android-libunwind (8.1.0+r23-2~18.04) …
Seleccionando el paquete android-libbacktrace previamente no seleccionado.
Preparando para desempaquetar …/10-android-libbacktrace_1%3a8.1.0+r23-5~18.04_amd64.deb …
Desempaquetando android-libbacktrace (1:8.1.0+r23-5~18.04) …
Seleccionando el paquete android-libetc1 previamente no seleccionado.
Preparando para desempaquetar …/11-android-libetc1_1%3a8.1.0+r23-2~18.04_amd64.deb …
Desempaquetando android-libetc1 (1:8.1.0+r23-2~18.04) …
Seleccionando el paquete libf2fs5:amd64 previamente no seleccionado.
Preparando para desempaquetar …/12-libf2fs5_1.11.0-1.1~18.04_amd64.deb …
Desempaquetando libf2fs5:amd64 (1.11.0-1.1~18.04) …
Seleccionando el paquete libf2fs-format4:amd64 previamente no seleccionado.
Preparando para desempaquetar …/13-libf2fs-format4_1.11.0-1.1~18.04_amd64.deb …
Desempaquetando libf2fs-format4:amd64 (1.11.0-1.1~18.04) …
Seleccionando el paquete android-libsparse previamente no seleccionado.
Preparando para desempaquetar …/14-android-libsparse_1%3a8.1.0+r23-5~18.04_amd64.deb …
Desempaquetando android-libsparse (1:8.1.0+r23-5~18.04) …
Seleccionando el paquete android-libf2fs-utils previamente no seleccionado.
Preparando para desempaquetar …/15-android-libf2fs-utils_8.1.0+r23-2~18.04_amd64.deb …
Desempaquetando android-libf2fs-utils (8.1.0+r23-2~18.04) …
Seleccionando el paquete android-libutils previamente no seleccionado.
Preparando para desempaquetar …/16-android-libutils_1%3a8.1.0+r23-5~18.04_amd64.deb …
Desempaquetando android-libutils (1:8.1.0+r23-5~18.04) …
Seleccionando el paquete android-libziparchive previamente no seleccionado.
Preparando para desempaquetar …/17-android-libziparchive_1%3a8.1.0+r23-5~18.04_amd64.deb …
Desempaquetando android-libziparchive (1:8.1.0+r23-5~18.04) …
Seleccionando el paquete android-sdk-platform-tools-common previamente no seleccionado.
Preparando para desempaquetar …/18-android-sdk-platform-tools-common_27.0.0+10~18.04.2_all.deb …
Desempaquetando android-sdk-platform-tools-common (27.0.0+10~18.04.2) …
Seleccionando el paquete f2fs-tools previamente no seleccionado.
Preparando para desempaquetar …/19-f2fs-tools_1.11.0-1.1~18.04_amd64.deb …
Desempaquetando f2fs-tools (1.11.0-1.1~18.04) …
Seleccionando el paquete libann0 previamente no seleccionado.
Preparando para desempaquetar …/20-libann0_1.1.2+doc-6_amd64.deb …
Desempaquetando libann0 (1.1.2+doc-6) …
Seleccionando el paquete libcdt5 previamente no seleccionado.
Preparando para desempaquetar …/21-libcdt5_2.40.1-2_amd64.deb …
Desempaquetando libcdt5 (2.40.1-2) …
Seleccionando el paquete libcgraph6 previamente no seleccionado.
Preparando para desempaquetar …/22-libcgraph6_2.40.1-2_amd64.deb …
Desempaquetando libcgraph6 (2.40.1-2) …
Seleccionando el paquete libgts-0.7-5:amd64 previamente no seleccionado.
Preparando para desempaquetar …/23-libgts-0.7-5_0.7.6+darcs121130-4_amd64.deb …
Desempaquetando libgts-0.7-5:amd64 (0.7.6+darcs121130-4) …
Seleccionando el paquete libpathplan4 previamente no seleccionado.
Preparando para desempaquetar …/24-libpathplan4_2.40.1-2_amd64.deb …
Desempaquetando libpathplan4 (2.40.1-2) …
Seleccionando el paquete libgvc6 previamente no seleccionado.
Preparando para desempaquetar …/25-libgvc6_2.40.1-2_amd64.deb …
Desempaquetando libgvc6 (2.40.1-2) …
Seleccionando el paquete libgvpr2 previamente no seleccionado.
Preparando para desempaquetar …/26-libgvpr2_2.40.1-2_amd64.deb …
Desempaquetando libgvpr2 (2.40.1-2) …
Seleccionando el paquete liblab-gamut1 previamente no seleccionado.
Preparando para desempaquetar …/27-liblab-gamut1_2.40.1-2_amd64.deb …
Desempaquetando liblab-gamut1 (2.40.1-2) …
Seleccionando el paquete graphviz previamente no seleccionado.
Preparando para desempaquetar …/28-graphviz_2.40.1-2_amd64.deb …
Desempaquetando graphviz (2.40.1-2) …
Seleccionando el paquete dmtracedump previamente no seleccionado.
Preparando para desempaquetar …/29-dmtracedump_8.1.0+r23-3~18.04_amd64.deb …
Desempaquetando dmtracedump (8.1.0+r23-3~18.04) …
Seleccionando el paquete etc1tool previamente no seleccionado.
Preparando para desempaquetar …/30-etc1tool_8.1.0+r23-1~18.04_amd64.deb …
Desempaquetando etc1tool (8.1.0+r23-1~18.04) …
Seleccionando el paquete fastboot previamente no seleccionado.
Preparando para desempaquetar …/31-fastboot_1%3a8.1.0+r23-5~18.04_amd64.deb …
Desempaquetando fastboot (1:8.1.0+r23-5~18.04) …
Seleccionando el paquete hprof-conv previamente no seleccionado.
Preparando para desempaquetar …/32-hprof-conv_8.1.0+r23-2~18.04_amd64.deb …
Desempaquetando hprof-conv (8.1.0+r23-2~18.04) …
Seleccionando el paquete sqlite3 previamente no seleccionado.
Preparando para desempaquetar …/33-sqlite3_3.22.0-1ubuntu0.3_amd64.deb …
Desempaquetando sqlite3 (3.22.0-1ubuntu0.3) …
Seleccionando el paquete android-sdk-platform-tools previamente no seleccionado.
Preparando para desempaquetar …/34-android-sdk-platform-tools_27.0.0+10~18.04.2_amd64.deb …
Desempaquetando android-sdk-platform-tools (27.0.0+10~18.04.2) …
Seleccionando el paquete libgts-bin previamente no seleccionado.
Preparando para desempaquetar …/35-libgts-bin_0.7.6+darcs121130-4_amd64.deb …
Desempaquetando libgts-bin (0.7.6+darcs121130-4) …
Seleccionando el paquete android-tools-adb previamente no seleccionado.
Preparando para desempaquetar …/36-android-tools-adb_1%3a8.1.0+r23-5~18.04_all.deb …
Desempaquetando android-tools-adb (1:8.1.0+r23-5~18.04) …
Seleccionando el paquete android-tools-fastboot previamente no seleccionado.
Preparando para desempaquetar …/37-android-tools-fastboot_1%3a8.1.0+r23-5~18.04_all.deb …
Desempaquetando android-tools-fastboot (1:8.1.0+r23-5~18.04) …
Configurando libgts-0.7-5:amd64 (0.7.6+darcs121130-4) …
Configurando libpathplan4 (2.40.1-2) …
Configurando liblab-gamut1 (2.40.1-2) …
Configurando android-libetc1 (1:8.1.0+r23-2~18.04) …
Configurando android-liblog (1:8.1.0+r23-5~18.04) …
Configurando sqlite3 (3.22.0-1ubuntu0.3) …
Configurando android-libboringssl (8.1.0+r23-2~18.04) …
Configurando p7zip (16.02+dfsg-6) …
Configurando libann0 (1.1.2+doc-6) …
Configurando hprof-conv (8.1.0+r23-2~18.04) …
Configurando libgts-bin (0.7.6+darcs121130-4) …
Configurando etc1tool (8.1.0+r23-1~18.04) …
Configurando android-sdk-platform-tools-common (27.0.0+10~18.04.2) …
Configurando libcdt5 (2.40.1-2) …
Configurando libcgraph6 (2.40.1-2) …
Configurando libf2fs5:amd64 (1.11.0-1.1~18.04) …
Configurando libgvc6 (2.40.1-2) …
Configurando android-libcrypto-utils (1:8.1.0+r23-5~18.04) …
Configurando android-libbase (1:8.1.0+r23-5~18.04) …
Configurando libgvpr2 (2.40.1-2) …
Configurando libf2fs-format4:amd64 (1.11.0-1.1~18.04) …
Configurando android-libcutils (1:8.1.0+r23-5~18.04) …
Configurando p7zip-full (16.02+dfsg-6) …
Configurando android-libsparse (1:8.1.0+r23-5~18.04) …
Configurando android-libf2fs-utils (8.1.0+r23-2~18.04) …
Configurando android-libadb (1:8.1.0+r23-5~18.04) …
Configurando f2fs-tools (1.11.0-1.1~18.04) …
Configurando graphviz (2.40.1-2) …
Configurando android-libunwind (8.1.0+r23-2~18.04) …
Configurando dmtracedump (8.1.0+r23-3~18.04) …
Configurando android-libbacktrace (1:8.1.0+r23-5~18.04) …
Configurando adb (1:8.1.0+r23-5~18.04) …
Configurando android-tools-adb (1:8.1.0+r23-5~18.04) …
Configurando android-libutils (1:8.1.0+r23-5~18.04) …
Configurando android-libziparchive (1:8.1.0+r23-5~18.04) …
Configurando fastboot (1:8.1.0+r23-5~18.04) …
Configurando android-tools-fastboot (1:8.1.0+r23-5~18.04) …
Configurando android-sdk-platform-tools (27.0.0+10~18.04.2) …
Procesando disparadores para libc-bin (2.27-3ubuntu1) …
Procesando disparadores para man-db (2.8.3-2ubuntu0.1) …
Procesando disparadores para initramfs-tools (0.130ubuntu3.9) …
update-initramfs: Generating /boot/initrd.img-4.15.0-96-generic
[email protected]:~/Descargas$ adb version
Android Debug Bridge version 1.0.39
Version 1:8.1.0+r23-5~18.04
Installed as /usr/lib/android-sdk/platform-tools/adb
[email protected]:~/Descargas$

Enviar correo internamente usando JavaMail API

Veremos como enviar fácilmente correos electrónicos en nuestra aplicación móvil mediante el Android Studio


En realidad no es demasiado difícil crear un aplicación capaz de enviar correos electrónicos usando el IDE de Android Studio  .De hecho gracias al APi de Javmail   podremos enviar e-mails sin utilizar la aplicación de correo electrónico que android incluye por defecto utilizando javamail API para crear nuestro propio email del remitente herramientas que enviará correo internamente.

Tenemos que seguir los pasos que se dan a continuación:

1. Descargar los archivos de biblioteca de api de java.

Tenemos que descargar  tres   librerías java: 

    1. activation.jar
    2. mail.jar.
    3.  additionnal.jar

    Lo puede descargar de Clic aquí.

    2 Ahora crear una  app en Android studio

    3-Ir a la carpeta del proyecto -> aplicación -> libs y agregue todos los archivos jar en libs ahora uno por uno, haga clic en biblioteca de archivos en la opción haga clic en Agregar como biblioteca en todos los archivos jar.

    libs

    También puede Agregar biblioteca por otro camino, pero lo  importante es que incluya esta tres librerías:

    1. activation.jar
    2. mail.jar.
    3.  additionnal.jar

    Ir a archivo >Proyecto estructura > seleccione aplicación> opción derecha haga clic en dependencias ahora haga clic en el botón de pulse(+) para agregar > seleccione dependencia de archivo> archivo seleccione Biblioteca > OK.

    addjar

    4. Ahora abrir el archivo manifest.xml y poner los permisos de internet.

     <uses-permission android:name="android.permission.INTERNET"/>

    Ahora busque manifiesto está buscando como.

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.sp.sendmailinternally">
        <uses-permission android:name="android.permission.INTERNET"/>
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    </manifest>

    4. Ahora abrael fichero  activity_main.xml para crear el archivo de diseño agregar después de código.

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.sp.sendmailinternally.MainActivity">
        <EditText
            android:id="@+id/edittext_recipient_id"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Recipient Email"
            android:textSize="18sp" />
        <EditText
            android:id="@+id/edittext_subject"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Subject"
            android:textSize="18sp" />
        <EditText
            android:id="@+id/edittext_message"
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:gravity="start"
            android:hint="Message"
            android:textSize="18sp" />
        <Button
            android:id="@+id/btn_send_mail"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="Send Mail"
            android:textAllCaps="false" />
    </LinearLayout>

    5. Cree la  clase de Asyntask para el envío de llamada correo API.

    package com.sp.sendmailinternally;
    import android.app.ProgressDialog;
    import android.content.Context;
    import android.os.AsyncTask;
    import android.widget.Toast;
    import java.util.Properties;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    /**
     * Created by ps205 on 3/1/17.
     */
    public class SendMailAsynTask extends AsyncTask<Void, Void, Void> {
        //Declaring Variables
        private Context context;
        private Session session;
        //Information to send email
        private String email;
        private String subject;
        private String message;
        //Progressdialog to show while sending email
        private ProgressDialog progressDialog;
        //Class Constructor
        public SendMailAsynTask(Context context, String email, String subject, String message) {
            //Initializing variables
            this.context = context;
            this.email = email;
            this.subject = subject;
            this.message = message;
        }
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            //Showing progress dialog while sending email
            progressDialog = ProgressDialog.show(context, "Sending message", "Please wait...", false, false);
        }
        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            //Dismissing the progress dialog
            progressDialog.dismiss();
            //Showing a success message
            Toast.makeText(context, "Message Sent", Toast.LENGTH_LONG).show();
        }
        @Override
        protected Void doInBackground(Void... params) {
            //Creating properties
            Properties props = new Properties();
            //Configuring properties for gmail
            //If you are not using gmail you may need to change the values
            props.put("mail.smtp.host", "smtp.gmail.com");
            props.put("mail.smtp.socketFactory.port", "465");
            props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
            props.put("mail.smtp.auth", "true");
            props.put("mail.smtp.port", "465");
            //Creating a new session
            session = Session.getDefaultInstance(props,
                    new javax.mail.Authenticator() {
                        //Authenticating the password
                        protected PasswordAuthentication getPasswordAuthentication() {
                            return new PasswordAuthentication(Config.EMAIL, Config.PASSWORD);
                        }
                    });
            try {
                //Creating MimeMessage object
                MimeMessage mm = new MimeMessage(session);
                //Setting sender address
                mm.setFrom(new InternetAddress(Config.EMAIL));
                //Adding receiver
                mm.addRecipient(Message.RecipientType.TO, new InternetAddress(email));
                //Adding subject
                mm.setSubject(subject);
                //Adding message
                mm.setText(message);
                //Sending email
                Transport.send(mm);
            } catch (MessagingException e) {
                e.printStackTrace();
            }
            return null;
        }
    }

    6. Ahora abra MainActivity.java y agregue el siguiente código.

    package com.sp.sendmailinternally;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    public class MainActivity extends AppCompatActivity {
        EditText edittext_recipient_id, edittext_subject, edittext_message;
        Button btn_send_mail;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //initializr vista para encontar vista por id
            edittext_recipient_id = (EditText) findViewById(R.id.edittext_recipient_id);
            edittext_subject = (EditText) findViewById(R.id.edittext_subject);
            edittext_message = (EditText) findViewById(R.id.edittext_message);
            btn_send_mail = (Button) findViewById(R.id.btn_send_mail);
    //activar un listener  onclick en un  boton
            btn_send_mail.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    //get  input data from view
                    String mRecipientMail = edittext_recipient_id.getText().toString();
                    String mSubject = edittext_subject.getText().toString();
                    String mMessage = edittext_message.getText().toString();
                    new SendMailAsynTask(MainActivity.this, mRecipientMail, mSubject, mMessage).execute();
    //llama al contructor de send mail asyntask mediante el envio de un parametroperameter } }); } }

    7. Ya puede construir y ejecutar la aplicación  

    Nota:- cuando ponga su id debe ser accesible acceso menos seguro aplicaciones .Para cambiar configuración para motivos de seguridad de correo vaya a cambiar la configuración   y actiíela .

     

    sendmail1

    Por cierto todo el código  esta disponible en descargar código fuente

     

     

     

    Instalar Google Street View en una tableta Kindle Fire

    Veremos como instalar Google Play en una tableta Amazon Fire por ejemplo para poder usar Google strret View en la Fire


    Nadie puede discutir la excelente relacion calidad/precio de la nueva generación de unos de los  tabletas más vendido: la Fire 7 ahora más fina y ligera ycon mayor autonomía

    Esta tableta  cuenta con una pantalla mejorada  (con pantalla IPS de 7 pulgadas con mayor contraste y textos más definidos,)  un procesador Quad-Core de 1,3 GHz , hasta 8 horas de batería,  almacenamiento interno de 8 o 16 GB y ranura microSD para obtener hasta 256 GB de espacio adicional.

    Una de las principales características de las famosas  tabletas  Fire de Amazon es que se encuentran ancladas a su ecosistema ,incluso cuando son  adquiridas,  pues vienen pre-configuradas  para un  usuario  de Amazon,  para que la experiencia de instalación sea la  mas sencilla posible .Desgraciadamente esta comodidad tiene también una gran  pega pues todo el interfaz  :solo orientado a ser usada dentro del ecosistema de Amazon , que  sin duda resulta muy seductor  pues ofrece entre otras las siguientes ventajas:

    • Acceso a  de millones de canciones, eBooks Kindle, apps y juegos del Appstore de Amazon, como Prime Video, Netflix, Facebook, Instagram y Spotify (no es compatible con Google Play Store).
    • Los miembros Prime tienen acceso ilimitado a películas, series y almacenamiento seguro para fotos sin ningún coste adicional.

    Como  vemos , la experiencia “Amazon” incluye una pantalla de inicio de Amazon, aplicaciones de Amazon precargadas , contenidos exclusivos de Amazon   y por supuesto  la tienda de aplicaciones y contenidos de Amazon  (obviamente no incluye Google Pay Store)

    Aún no contando con el market de Google  como hemos visto en este blog , es posible instalar  aplicaciones  que no estén en el market de Amazon  de manera extraoficial desde hace años, y esta nueva tableta de Amazon no es una excepción.

    El proceso en términos generales siempre que la app no use los servicios de Google es  de lo más sencillo ,pues  solo necesita descargar desde la red la aplicación   en formato APK . Por  ejemplo  de hecho en efecto podemos instalar la app de Gooogle Street View buscando el apk correspondiente en la red   e instalando el apk  en la tableta,pero desgraciadamente  con  esta app  y otras tantas  hay un problema, que aunque en efecto se puede instalar desde un apk, no funciona  por si mismo  porque  necesita de los servicios de Google para funcionar ,   de modo que si quiere instalar alguna app que haga  uso del algún  servicio de Google  no sera posible  pues por defecto pues en la Fire necesitaremos un componente básico : Google Play y todos los servicios de Google  asociados que no están soportados oficialmente por Amazon, pero no se preocupe , pues incluso sin root  es posible instalar estos componentes como vamos a ver a continuación.

    Pasos para instalar Play Store en las tabletas Fire

    En efecto a veces necesitaremos instalar Google Play Store  para usar otras apps  como por ejemplo Google Street View   o cualquier otra que haga uso de los servicios de Google.

    La sencillez es una de las claves de este nuevo proceso, pues no necesitamos  desproteger (rootear) o instalar herramientas adicionales, como por ejemplo el ADB de Android.

    Estos son los pasos de forma resumida si contamos con una tableta  con sistema operativo Fire 5.0 o posterior:

    Como vemos  este método   tiene una facilidad adicional , pues todo el proceso para instalar Play Store en los tablets Fire se ejecuta desde el mismo tablet, lo que aumenta su comodidad y, por lo tanto, no hay que conectarlo a ordenador alguno

    Veamos de forma detallada el proceso.

    1-Instalación  Google Account Manager

    Google Account Mnager es una aplicación cuyo objetivo principal es el de a administrar todas las cuentas de google sincronizadas en su dispositivo android.

    En algunos dispositivos esta aplicación es utilizada para remover y  reemplazar las cuentas de google olvidadas (FRP) permitiendo así el acceso al dispositivo android.

    Para instalar  este componente desde el propio navegador de la Fire  desde apkmirror  podemos descargar directamente el apk ( desde es link Google Account Manager) y una  vez descargado ,procederemos a lanzar su instalación.

     

    2-Instalación Google services Framework

    El marco de servicios de Google Play se utiliza para actualizar las aplicaciones de Google y las aplicaciones de Google Play.

    Este componente proporciona una funcionalidad central como la autenticación a sus servicios de Google, contactos sincronizados, acceso a las últimas configuraciones de privacidad del usuario y servicios basados en la ubicación de alta calidad y menor potencia.

    El marco de servicios de Google Play también mejora la experiencia de su aplicación:acelera las búsquedas fuera de línea, proporciona mapas más inmersivos y mejora las experiencias de juego.

    Para instalar  este componente desde el propio navegador de la Fire  desde apkmirror  podemos descargar directamente el apk ( desde este link Google Services Framework )y una  vez descargado ,procederemos a lanzar su instalación

     

    3-Instalación de Google  Play Services

    Las funciones principales son:
    • La autentificación de servicios de Google
    • La sincronización de contactos,
    • El acceso a la última configuración de privacidad del usuario
    • Los servicios basados en la ubicación de mayor calidad y menor potencia.
    Además de todo esto, Google Play Services mejora la experiencia general de uso del terminal. Permite agilizar las búsquedas sin conexión, proporciona mapas más envolventes y mejora la experiencia de juego mediante la optimización de memoria RAM.

    Otras opciones dentro del menú de Google Play Services nos permitirán gestionar las aplicaciones de nuestra cuenta (no necesariamente las que tengamos instaladas), o establecer diferentes ajustes de localización, o incluso de Google Fit

    La aplicación Google Play Services siempre tiene un código numérico adjunto a su nombre, con el formato X.X.XX (XXXXXXX-ABC).  Ese código numérico junto al nombre es importante para determinar si esa aplicación Google Play Services es compatible o no con un dispositivo. Es importante fijarse en la versión de la aplicación y en los tres últimos números “ABC” dentro del paréntesis, (el resto de números 2645110 es irrelevante).

    Estos tres números ABC indican con qué dispositivos es compatible esa aplicación:

    “A” representa la versión de Android:
    0: Android 4.4.4 o inferior
    2: Android 5.0 y 5.1 (Google Play Services 8.X.XX o superior).
    4: Android 5.0 y 5.1 (Google Play Services 7.X.XX o inferior) y para Android 6.0 o superior (Google Play Services 8.X.XX o superior).
    7: Android 5.0
    8: Android TV
    “B” representa la arquitectura del CPU:
    1: armeabi
    3: armeabi-v7a
    4: arm64-v8a
    7: x86
    “C” representa el DPI de la pantalla:
    0: compatible con todos los dispositivos
    2: 160 DPI
    4: 240 DPI
    6: 320 DPI
    8: 480 DPI

    En el caso de que se vaya a actualizar manualmente la aplicación Google Play Services existente en el dispositivo Android, lo recomendable es ver el código “ABC” de la aplicación (Ajustes > Aplicaciones > Google Play Services) y descargar una versión actualizada de Google Play Services con ese mismo código ABC.

    En el caso de la Kindle Amazon Fire 5ºgeneracion   lleva instalada  Android  Lollipop_MR1 ,version LVY48F  Release  5.1.1, SDK 22  por  lo deberemos instalar la version  Google Play Services 11.5.09 (230-164803921) (230) que hemos probado desde este blog  y que puede descargar desde este link Google Play Services version 11.5.09.230

    En caso de los modelo Fire HD 8 2017 de séptima generación, debe instalar Google Play Services  veesion 11-5-09-240 

     

    4-Instalación Google Play

    Como todos sabemos  Google Play Store (anteriormente Android Market) es la  plataforma de distribución digital de aplicaciones móviles para los dispositivos con sistema operativo Android , así como la tienda en línea desarrollada y operada por Google.

    Las aplicaciones se encuentran disponibles de forma gratuita, así como también con costo,  por lo que también incluye  una plataforma de pagos (Google Pay)

    Es posible también instalar esta aplicación directamente y sin necesidad de ordenador  pero antes debería haber instalado los tres componentes anteriores : Google Account Manager, Google Services Framework  y  Google Play Services 

    Para instalar  este componente desde el propio navegador de la Fire  desde apkmirror  podemos descargar directamente el apk ( desde este link; Google Play Store) y una  vez descargado ,procederemos a lanzar su instalación.

     

    5-Pasos  finales

    Si ha descargado y ejecutado en el orden anterior  las cuatros   apk  citadas   habrá terminado . Si no  lo ha hecho ,una vez que  tenga todas las apk , debe proceder a la instalación de cada uno de los 4 apk  en el orden en los que los descargo :Google Account Manager, Google Services Framework  ,  Google Play Services y Google Play 

    En cualquier caso una vez instaladas las 4 apk’s  ,no olvide reiniciar el tablet de forma habitual y todo debería funciona de forma correcta de modo que ya debería ver el acceso a Google Play  en el que tendrá que validarse con su cuenta de google para hacer uso

    En nuestro caso ,  si antes había instalado  el apk de  Google Street View, ahora   ya no debería darle el error de que no tiene instalado Google Play , pero si pedirá que necesita actualizar los servicios de Google ( ojo  pues puede tardar bastante)    , momento en el cual nos pedirá  las credenciales de Google  y  ya debería arrancar  esta aplicación en la kindle fire.