From aad75c389dea4dce236f7e4f85c07381f6b2831e Mon Sep 17 00:00:00 2001
From: Silvio Rhatto <rhatto@riseup.net>
Date: Thu, 6 Jul 2017 14:54:10 -0300
Subject: [PATCH] Updates research/smartphone

---
 research/smartphone.mdwn | 183 ++++++++++++++++++++++++++++++---------
 1 file changed, 144 insertions(+), 39 deletions(-)

diff --git a/research/smartphone.mdwn b/research/smartphone.mdwn
index cad5aaa..c076f64 100644
--- a/research/smartphone.mdwn
+++ b/research/smartphone.mdwn
@@ -1,33 +1,83 @@
 [[!meta title="Smartphone"]]
 
-Pesquisa rápida sobre smartphones.
+[[!toc levels=4]]
 
 Objetivo
 --------
 
-* [LineageOs](https://lineageos.org).
+* Ter um smartphone disponível e funcional sempre que preciso.
+* Reduzindo ao máximo as perdas de privacidade e segurança.
+* Estabilidade de longo prazo: escolhas de hardware, software e configuração duráveis.
 
-Prós
-----
+Sistema escolhido
+-----------------
+
+Para este estudo, o sistema escolhido foi o [LineageOS](https://lineageos.org).
+
+### Prós
 
 * Código mais aberto.
 * Risco menor de backdoors.
 * Google Apps não-mandatório.
 
-Contras
--------
+### Contras
 
-* Menos base de aplicativo.
+* Menor base de aplicativos.
 * Atualizações de segurança mais lentas.
-* Redução de segurança por conta to root?
+* Ainda dependente de um ecossistema tecnotóxico.
+* No caso de root no dispositivo, há redução de segurança.
 
-LineageOS
----------
+Modelo escolhido
+----------------
 
-* [Update and build preparation](http://lineageos.org/Update-and-Build-Prep/).
-* [Verifying builds](http://wiki.lineageos.org/verifying-builds.html).
+Para este estudo, o modelo escolhido foi o Moto E.
+
+### Prós
+
+* Custo relativamente baixo.
+* Bom suporte ao LineageOS.
+
+### Contras
+
+* Sem flash.
+* Bateria não-removível.
+* Jack de áudio não é compatível com qualquer conector.
+
+Checklist
+---------
 
-### Destravamento
+Iterador básico para a manutenção do smartphone:
+
+* Destravamento do bootloader.
+* Instalação ou atualização do recovery.
+* Instalação do LineageOS.
+* [Criptografia do armazenamento interno](https://source.android.com/security/encryption/full-disk).
+* Configuração de senha e intervalo de travamento (após cifrar o armazenamento).
+* Ferramentas de desenvolvimento habilitadas.
+* Restaurar backups e configurações, caso existam.
+* Configurações de aparência e comportamento.
+* Apps:
+    * VPN.
+    * Editor.
+    * LibreSignal.
+    * Barcode Scanner.
+    * [Scuttloid](https://f-droid.org/packages/gr.ndre.scuttloid/).
+    * [MPDroid](https://f-droid.org/packages/com.namelessdev.mpdroid/).
+* Teste e correções.
+* Realização de backups.
+* Upgrade:
+    * Atualizar ROM.
+    * Atualizar apps via F-Droid.
+    * Atualizar apks manualmente.
+    * Alguns apps podem ser auto-autualizáveis.
+
+Detalhes a seguir sobre algumas das etapas acima elencadas.
+
+Destravamento
+-------------
+
+Este procedimento é específico para alguns aparelhos para que o bootloader
+possa ser desbloqueado, como é o caso do modelo escolhido:
 
     # stretch onwards: sudo apt install adb fastboot
     sudo apt install android-tools-adb android-tools-fastboot
@@ -49,7 +99,8 @@ LineageOS
     0012711246      fastboot
     0 20160410 15:30:49 user@box:~ $ 
 
-### Recovery
+Recovery
+--------
 
 Usando o [TWRP para Moto E surnia](https://twrp.me/devices/motorolamotoelte.html):
 
@@ -57,60 +108,114 @@ Usando o [TWRP para Moto E surnia](https://twrp.me/devices/motorolamotoelte.html
     fastboot flash recovery recovery.img
     fastboot reboot
 
-### Instalação
+Instalação
+----------
+
+Detalhes de instalação já são bem cobertos pela documentação do LineageOS,
+incluindo a ativação do ADB:
 
+* [Update and build preparation](http://lineageos.org/Update-and-Build-Prep/).
 * [Moto E surnia builds](https://download.lineageos.org/surnia).
+* [Verifying builds](http://wiki.lineageos.org/verifying-builds.html).
 * [Info about surnia | LineageOS Wiki](https://wiki.lineageos.org/devices/surnia).
 * [Install LineageOS on surnia | LineageOS Wiki](https://wiki.lineageos.org/devices/surnia/install).
+* [Using ADB and fastboot | LineageOS Wiki](https://wiki.lineageos.org/adb_fastboot_guide.html).
 
-Instalação manual de apps
--------------------------
+Backups
+-------
 
-    adb install app.apk
+Usaremos o [adb-sync](https://github.com/google/adb-sync) e o [adb-export](https://github.com/snatik/adb-export):
 
-Upgrade
--------
+    # Parameters
+    date="`date +%Y%m%d`"
+    base="/storage/emulated/0"
 
-Procedimento:
+    mkdir $date && cd $date && mkdir files
 
-* Atualizar ROM.
-* Atualizar apps via F-Droid.
-* Atualizar apks manualmente.
-* Alguns apps podem ser auto-autualizáveis.
+    # Contatos
+    # Exportar também para .vcf direto do aplicativo de contatos
+    adb-export.sh           -e    content://com.android.contacts/contacts
+    adb shell content query --uri content://com.android.contacts/contacts > contacts.rows
 
-Arquivos
---------
+    # Configurações
+    adb backup -all
 
-Movendo arquivos do sdcard para o armazenamento interno:
+    # Arquivos: cópia completa
+    #adb pull $base files/
 
-    adb shell
-    cd /storage/emulated/0
-    mv /storage/1FAC-34C3/Music/* Music/
+    # Remover cache multimídia do backup
+    #rm -rf files/Music
 
-Backups
--------
+    # Arquivos: cópia completa básica
+    #adb shell ls -1 $base | grep -v ^Music | while read file; do
+    #  adb pull $base/$file files/
+    #done
 
-* [Full Phone Backup without Unlock or … | Samsung Galaxy Nexus](https://forum.xda-developers.com/galaxy-nexus/general/guide-phone-backup-unlock-root-t1420351).
-* [How to use ADB backup to back up your unrooted phone - Pocketables](http://www.pocketables.com/2012/09/how-to-use-adb-backup-to-back-up-your-unrooted-phone.html).
+    # Arquivos: cópia incremental básica
+    adb shell ls -1 $base | grep -v ^Music | while read file; do
+      adb-sync --delete --reverse $base/$file files/
+    done
 
-    adb backup -all
+Restauro
+--------
+
+A partir de um sistema recém-instalado:
+
+    # Arquivos: cópia completa
+    #for file in `ls $backup`; do
+    #  adb push $backup/$file files/
+    #done
+
+    # Arquivos: cópia incremental
+    for file in `ls $backup`; do
+      adb-sync --delete $backup/$file files/
+    done
+
+    # Configurações
     adb restore backup.ab
 
+## Subir músicas
+
+Podem ser enviadas a partir de acervos compatíveis com o [playlister](https://git.fluxo.info/playlister/about/):
+
+    playlist-copy <playlist> adb
+
 Dicas
 -----
 
-* [Hide Certain Files in Android Music Player (or Photo Gallery)](http://www.guidingtech.com/15563/hide-certain-files-android-music-player-photo-gallery/):
+## Escondendo arquivos do mídia player
 
     touch /storage/emulated/0/SomeApp/Media/.nomedia
 
-* [Validating the Android 4.2.2 RSA fingerprint](https://shred.zone/cilla/page/374/validating-the-android-422-rsa-fingerprint.html):
+Via [Hide Certain Files in Android Music Player (or Photo Gallery)](http://www.guidingtech.com/15563/hide-certain-files-android-music-player-photo-gallery/).
+
+## Checagem de fingerprint do ADB
 
     awk '{print $1}' < ~/.android/adbkey.pub | openssl base64 -A -d -a | openssl md5 -c | \
     awk '{print $2}' | tr '[:lower:]' '[:upper:]'
 
+Via [Validating the Android 4.2.2 RSA fingerprint](https://shred.zone/cilla/page/374/validating-the-android-422-rsa-fingerprint.html).
+
+## Instalação manual de apps
+
+    adb install app.apk
+
+## Movendo arquivos do sdcard para o armazenamento interno
+
+    adb shell
+    cd /storage/emulated/0
+    mv /storage/1FAC-34C3/Music/* Music/
+
 Referências
 -----------
 
 * Aplicativos interessantes: snoopsnitch.
-* [Modificações](https://web.archive.org/web/20160402005909/https://people.torproject.org/~ioerror/skunkworks/moto_e/).
+* [Modificações de hardware](https://web.archive.org/web/20160402005909/https://people.torproject.org/~ioerror/skunkworks/moto_e/).
 * [List of custom android firmware](https://en.wikipedia.org/wiki/List_of_custom_Android_firmware).
+* [Fossdroid: Free and open source Android apps](https://fossdroid.com/).
+* Backups:
+    * [Android: How to Backup Contacts and SMS Messages | chombium's blog](https://chombium.wordpress.com/2012/09/30/android-how-to-backup-contacts-and-sms-messages/), but requires root on recent androids.
+    * [Does adb backup include contacts? - Android Enthusiasts Stack Exchange](https://android.stackexchange.com/questions/85269/does-adb-backup-include-contacts).
+    * [GitHub - stachre/dump-contacts2db: Bash script that dumps contacts from an Android contacts2.db to stdout in vCard format. Especially helpful when the device is inop or missing, with only a contacts2.db file available (from backup, etc.) to migrate contac](https://github.com/stachre/dump-contacts2db).
+    * [Full Phone Backup without Unlock or … | Samsung Galaxy Nexus](https://forum.xda-developers.com/galaxy-nexus/general/guide-phone-backup-unlock-root-t1420351).
+    * [How to use ADB backup to back up your unrooted phone - Pocketables](http://www.pocketables.com/2012/09/how-to-use-adb-backup-to-back-up-your-unrooted-phone.html).
-- 
GitLab