Curso de formación en Movilidad (Parte II) - Personalización

45
Tecnología Parte 2 Curso de Formación en Movilidad Julio 2013 1

description

Curso de formación en Movilidad que consta de tres partes. En esta primera parte del curso se hablará de: ROM's, Becoming root, CyanogenMod y Paranoid Android, además de Monitorización, Batería y Backups

Transcript of Curso de formación en Movilidad (Parte II) - Personalización

Page 1: Curso de formación en Movilidad (Parte II) - Personalización

TecnologíaParte 2

Curso de Formación en MovilidadJulio 2013

1

Page 2: Curso de formación en Movilidad (Parte II) - Personalización

Qué veremosParte 2

Personalización

ROMsBecoming root

CyanogenMod y Paranoid AndroidMisc

MonitorizaciónBateríaBackups

2

Page 3: Curso de formación en Movilidad (Parte II) - Personalización

Personalización

3

Page 4: Curso de formación en Movilidad (Parte II) - Personalización

Terminología

ROM Firmware, imagen del SO

Flashear Instalar el firmware

Rootear Obtener permisos de usuario privilegiado

4

Page 5: Curso de formación en Movilidad (Parte II) - Personalización

Terminología

Bootloader Programa de arranque del SO

Desbloquear bootloader Permitir instalar firmware no oficial

5

Page 6: Curso de formación en Movilidad (Parte II) - Personalización

ROM¿Qué es?

Versión de Android modificadaAndroid es un SO móvil de propósito generalLas versiones modificadas buscan

• Explotar al máximo las capacidades de dispositivos

• Mejorar versiones oficiales

• Personalizar el terminal

6

Page 7: Curso de formación en Movilidad (Parte II) - Personalización

ROMInstalación

Flashear es instalar una ROMDos etapas

1.Modo fastboot para instalar la imagen de recuperacióna.Desbloquear bootloader

2.Modo recovery para instalar la ROM

7

Page 8: Curso de formación en Movilidad (Parte II) - Personalización

ROMInstalación

fastboot y recovery

Conectar por USBReiniciar dispositivo en modo fastboot$ adb reboot bootloaderInstalar imagen de recuperación$ fastboot flash recovery fichero.imgReiniciar dispositivo en modo recuperación$ fastboot boot fichero.img

8

Page 9: Curso de formación en Movilidad (Parte II) - Personalización

Kernel

Una ROM es el binario del sistema operativo, incluyendo el kernel compilado

Mismo diseño interno que LinuxEl kernel gestiona el hardwarePodemos actualizar el kernel sin reinstalar el sistema

9

Page 10: Curso de formación en Movilidad (Parte II) - Personalización

Kitchens

¿Necesito compilar y generar mi propia ROM para personalizar mi dispositivo con Android?Las kitchens parten de una ROM básica que podemos personalizar :

•Pantalla de inicio

•Apps incluídas

•Ajustes varios rendimiento

10

Page 11: Curso de formación en Movilidad (Parte II) - Personalización

CyanogenMod

ROM que incrementa rendimiento y estabilidadMuy popular por su alto grado de personalizaciónSoporta actualmente +70 dispositivos

11

Page 12: Curso de formación en Movilidad (Parte II) - Personalización

CyanogenMod

Algunas features:•Revocar permisos de apps•Tethering por USB, WiFi o Bluetooth•Optimizado uso de batería•CPU overclocking

12

Page 13: Curso de formación en Movilidad (Parte II) - Personalización

Paranoid Android

Permite ubicar y dimensionar tus apps libremente

13

Page 14: Curso de formación en Movilidad (Parte II) - Personalización

Root

Rootear

•Conseguir permisos de super usuario (root)

•Acceder a funciones protegidas¡Cuidado!Un móvil rooteado puede perder la garantía (según fabricante)

14

Page 15: Curso de formación en Movilidad (Parte II) - Personalización

Root

Podemos modificar ciertos ajustes sin tener que cambiar de ROM:

• Asignar/Revocar permisos de apps

• Habilitar tethering

• Acceso total al sistema de ficheros

CyanogenMod rootea el dispositivo en el proceso de instalación

15

Page 16: Curso de formación en Movilidad (Parte II) - Personalización

Root¿Cómo?

El método es muy dispar entre dispositivosBásicamente, se sustituye un programa (su) para ejecutar procesos como super usuario

El original sólo ejecuta sin privilegios

16

Page 17: Curso de formación en Movilidad (Parte II) - Personalización

Sandboxing

Todas las apps en iOS y Android están sandboxed

Tienen acceso sólo a los recursos que el sistema asigneNo tienen acceso a recursos utilizados por otras apps

Único punto de entrada: app schemas

17

Page 18: Curso de formación en Movilidad (Parte II) - Personalización

Sandboxing

Disco, memoria, procesos, etc, pertenecen a cada app, y no los comparten¡Atención!Si Android está rooted, cualquier app podría utilizar esos permisos para “hacer el mal”

18

Page 19: Curso de formación en Movilidad (Parte II) - Personalización

Optimización y Rendimiento

19

Page 20: Curso de formación en Movilidad (Parte II) - Personalización

Optimización y Rendimiento

“Mejores prácticas”•ROMs optimizadas (uso personal)•Librerías proyecto•Instalar apps “fiables”•Recomendaciones fabricante

20

Page 21: Curso de formación en Movilidad (Parte II) - Personalización

Optimización y RendimientoDesarrollo

iOS

Xcode 5 Instruments

21

Page 22: Curso de formación en Movilidad (Parte II) - Personalización

Optimización y RendimientoDesarrollo

Android

Android Debug Monitor

22

Page 23: Curso de formación en Movilidad (Parte II) - Personalización

Optimización y RendimientoDesarrollo

Android

Little Eye

Por app: consumo de batería, tráfico de red, uso de memoria y CPU...

23

Page 24: Curso de formación en Movilidad (Parte II) - Personalización

Monitorización

24

Page 25: Curso de formación en Movilidad (Parte II) - Personalización

MonitorizaciónInfo del dispositivo

iOS

Settings > General > About¿UDID?

25

Page 26: Curso de formación en Movilidad (Parte II) - Personalización

MonitorizaciónInfo del dispositivo

iOS

Xcode Organizer

26

Page 27: Curso de formación en Movilidad (Parte II) - Personalización

MonitorizaciónInfo del dispositivo

Android

Settings > About PhoneApps en Google Play (consultan por API info del sistema)

27

Page 28: Curso de formación en Movilidad (Parte II) - Personalización

MonitorizaciónBatería

iOS

Mediante appsNo hay forma “oficial” de saber el nivel de batería más allá del % global

28

Page 29: Curso de formación en Movilidad (Parte II) - Personalización

MonitorizaciónBatería

Android

Battery Doctor

Consumo de batería por appEstimación tiempo restante por tipo de usoEstimación tiempo extra desactivando submódulosNotificación iniciar ciclo de carga

29

Page 30: Curso de formación en Movilidad (Parte II) - Personalización

MonitorizaciónTráfico de red

30

Page 31: Curso de formación en Movilidad (Parte II) - Personalización

MonitorizaciónLogs

Es necesario•Xcode•Android SDK

31

Page 32: Curso de formación en Movilidad (Parte II) - Personalización

MonitorizaciónLogs

iOS

Xcode Organizer•Console•Device Logs

32

Page 33: Curso de formación en Movilidad (Parte II) - Personalización

MonitorizaciónLogs

iOS

Xcode Organizer Console→ Mensajes del sistema

Jul 3 18:32:56 kernel[0] <Debug>: ALS: AppleARMBacklight::handleMessageGated - framebufferState -> 1Jul 3 18:32:56 kernel[0] <Debug>: ALS: AppleARMBacklight::setBacklightEnableGated 1 (set level to 0x392)Jul 3 18:32:56 CLTM[14] <Error>: CLTM: resetting temps: now = 1372869176, last update = 1372869057Jul 3 18:32:57 wifid[15] <Notice>: WiFi:[394561977.656129]: WoW is Enabled, 1 WoW ClientsJul 3 18:32:57 kernel[0] <Debug>: AppleD1881PMUPowerSource: AppleUSBCableDetect 1Jul 3 18:32:57 kernel[0] <Debug>: AppleD1881PMUPowerSource: AppleUSBCableType USBHostJul 3 18:32:58 wifid[15] <Notice>: WiFi:[394561978.160024]: External power source attachedJul 3 18:32:58 lockdownd[52] <Notice>: 3b64918c pairing_host_connected: connectionCount now 3Jul 3 18:32:59 lockdownd[52] <Notice>: 00281000 special_case_get: MGCopyAnswer(kMGQSDIOProductInfo) returned NULLJul 3 18:32:59 lockdownd[52] <Notice>: 00281000 special_case_get: MGCopyAnswer(kMGQSDIOManufacturerTuple) returned NULLJul 3 18:32:59 lockdownd[52] <Notice>: 00281000 special_case_get: MGCopyAnswer(kMGQBasebandBoardSnum) returned NULLJul 3 18:32:59 lockdownd[52] <Notice>: 00281000 special_case_get: MGCopyAnswer(kMGQWirelessBoardSnum) returned NULLJul 3 18:32:59 ptpd[1016] <Error>: ptpd: startResponderJul 3 18:33:00 ptpd[1016] <Notice>: PTP interface has been activated at high speed.Jul 3 18:33:06 Sergis-iPhone profiled[1025] <Notice>: (Note ) profiled: Service starting...Jul 3 18:33:06 Sergis-iPhone kernel[0] <Debug>: 012767.825601 wlan.A[2937] AppleBCMWLANNetManager::updateLinkQualityMetrics(): Report LQM to User Land 50, fAverageRSSI -71Jul 3 18:33:06 Sergis-iPhone backupd[1024] <Warning>: INFO: Scheduling next backup at 7/4/13, 3:29:45 AMJul 3 18:33:07 Sergis-iPhone backboardd[28] <Notice>: ALS: SetDisplayFactor: factor=0.0000Jul 3 18:33:07 Sergis-iPhone kernel[0] <Debug>: AppleMultitouchN1SPI: updating power statisticsJul 3 18:33:07 Sergis-iPhone backboardd[28] <Notice>: MultitouchHID: detection mode: 3->255Jul 3 18:33:08 Sergis-iPhone kernel[0] <Debug>: ALS: AppleARMBacklight::setBacklightEnableGated 0 (set level to 0x1f7)Jul 3 18:33:08 Sergis-iPhone backboardd[28] <Notice>: Posting 'com.apple.iokit.hid.displayStatus' notifyState=0Jul 3 18:33:08 Sergis-iPhone wifid[15] <Notice>: WiFi:[394561988.447980]: Device display is OFFJul 3 18:33:08 Sergis-iPhone kernel[0] <Debug>: ALS: AppleARMBacklight::handleMessageGated - framebufferState -> 0Jul 3 18:33:17 Sergis-iPhone profiled[1025] <Notice>: (Note ) profiled: Service stopping.Jul 3 18:33:25 Sergis-iPhone wifid[15] <Notice>: WiFi:[394562005.352055]: Client networkd set type to normal applicationJul 3 18:33:25 Sergis-iPhone wifid[15] <Notice>: WiFi:[394562005.356643]: BG Application: Not Present, BG Daemon: Present. Daemons: apsd Jul 3 18:33:26 Sergis-iPhone wifid[15] <Notice>: WiFi:[394562006.091701]: Client networkd set type to background applicationJul 3 18:33:26 Sergis-iPhone wifid[15] <Notice>: WiFi:[394562006.092821]: BG Application: Not Present, BG Daemon: Present. Daemons: networkd apsd Jul 3 18:33:26 Sergis-iPhone wifid[15] <Notice>: WiFi:[394562006.093580]: Already connected to Dormirdcine.Jul 3 18:33:31 Sergis-iPhone wifid[15] <Notice>: WiFi:[394562011.840759]: Client networkd set type to normal applicationJul 3 18:33:31 Sergis-iPhone wifid[15] <Notice>: WiFi:[394562011.841843]: BG Application: Not Present, BG Daemon: Present. Daemons: apsd Jul 3 18:33:59 Sergis-iPhone wifid[15] <Notice>: WiFi:[394562039.899209]: WoW is Enabled, 1 WoW ClientsJul 3 18:33:59 Sergis-iPhone kernel[0] <Debug>: 012818.052047 wlan.A[2938] AppleBCMWLANNetManager::updateLinkQualityMetrics(): Report LQM to User Land 100, fAverageRSSI -70Jul 3 18:34:01 Sergis-iPhone wifid[15] <Notice>: WiFi:[394562041.400302]: Creating client for "itunesstored"Jul 3 18:34:01 Sergis-iPhone itunesstored[1027] <Warning>: LaunchServices: Registering as observer with lsdJul 3 18:34:01 Sergis-iPhone wifid[15] <Notice>: WiFi:[394562041.763969]: Client itunesstored set type to background applicationJul 3 18:34:01 Sergis-iPhone wifid[15] <Notice>: WiFi:[394562041.764812]: BG Application: Not Present, BG Daemon: Present. Daemons: itunesstored apsd Jul 3 18:34:01 Sergis-iPhone wifid[15] <Notice>: WiFi:[394562041.765639]: Already connected to Dormirdcine.Jul 3 18:34:01 Sergis-iPhone itunesstored[1027] <Warning>: iTunes Store environment is: ST11Jul 3 18:34:04 Sergis-iPhone wifid[15] <Notice>: WiFi:[394562044.084790]: Client networkd set type to background applicationJul 3 18:34:04 Sergis-iPhone wifid[15] <Notice>: WiFi:[394562044.086342]: BG Application: Not Present, BG Daemon: Present. Daemons: itunesstored apsd networkd Jul 3 18:34:04 Sergis-iPhone wifid[15] <Notice>: WiFi:[394562044.087068]: Already connected to Dormirdcine.Jul 3 18:34:05 Sergis-iPhone securityd[85] <Error>: OCSPResponse: now > latestNextUpdateJul 3 18:34:05 Sergis-iPhone securityd[85] <Error>: OCSPResponse: now > latestNextUpdateJul 3 18:34:07 Sergis-iPhone securityd[85] <Error>: OCSPResponse: now + maxAge > latestNextUpdate, using latestNextUpdateJul 3 18:34:07 Sergis-iPhone securityd[85] <Error>: OCSPResponse: now + maxAge > latestNextUpdate, using latestNextUpdateJul 3 18:34:14 Sergis-iPhone wifid[15] <Notice>: WiFi:[394562054.825934]: Client itunesstored set type to normal applicationJul 3 18:34:14 Sergis-iPhone wifid[15] <Notice>: WiFi:[394562054.827106]: BG Application: Not Present, BG Daemon: Present. Daemons: apsd networkd

33

Page 34: Curso de formación en Movilidad (Parte II) - Personalización

MonitorizaciónLogs

iOS

Xcode Organizer Device Logs→ Trazas de error por app

34

Page 35: Curso de formación en Movilidad (Parte II) - Personalización

MonitorizaciónLogs

Android

$ adb logcat

35

Page 36: Curso de formación en Movilidad (Parte II) - Personalización

MonitorizaciónLogs

Android

Eclipse, Android Studio

36

Page 37: Curso de formación en Movilidad (Parte II) - Personalización

Caso prácticoAtención al usuario

37

Page 38: Curso de formación en Movilidad (Parte II) - Personalización

Backups

MatizamosBackup de datos de aplicacionesBackup de sistema: apps instaladas, configuración... todo menos contenido tarjeta SD

38

Page 39: Curso de formación en Movilidad (Parte II) - Personalización

BackupsiOS

iTunes

39

Page 40: Curso de formación en Movilidad (Parte II) - Personalización

BackupsAndroid

NANDroidEs un “standard” para el formato de backupsBootloader en modo recuperaciónOnline Nandroid BackupApp para evitar entrar en recovery mode

Necesitas root y BusyBox (utilidades extra)

40

Page 41: Curso de formación en Movilidad (Parte II) - Personalización

BackupsAndroid

Helium

No necesitas rootSólo backups de apps, SMS y registro llamadasBackup en PC y en Dropbox/Box/Google Drive (sólo versión de pago)

41

Page 42: Curso de formación en Movilidad (Parte II) - Personalización

BackupsAndroid

Titanium Backup

Backups completosNecesitas root

42

Page 43: Curso de formación en Movilidad (Parte II) - Personalización

Backups

¿Tiene sentido realizar backups de sistema completos?¿Backups sin acceso root?¿Es escalable?

43

Page 44: Curso de formación en Movilidad (Parte II) - Personalización

AntivirusiOS

44

Page 45: Curso de formación en Movilidad (Parte II) - Personalización

AntivirusAndroid

45