Problemen met je Android telefoon
- Introductie
- Bellen lukt niet (meer)
- Rooten van je telefoon
- Het nut van Android Debug Bridge, en installeren ervan
- Toegang tot beveiligde mappen zonder root
- Gespreksgeschiedenis WhatsApp is beschadigd
- Niet voldoende geheugenruimte over om bv. apps te updaten
- Batterij te snel leeg en/of telefoon wordt warm
- Links
Introductie
Bellen lukt niet (meer)
Server onbereikbaar
Probleem
Ik kon nog wel gebeld worden (Galaxy S9), maar niet meer zelf bellen. Ik kreeg dan de melding dat de server onbereikbaar was (server unreachable).
Oplossing
De (tijdelijke) oplossing is te gaan naar
Instellingen (Settings) - Verbindingen
- Mobiele netwerken
.
Daar moet je bellen via 4G uitschakelen.
Mogelijk is een definitieve oplossing de telefoon te herstarten. Ik vermoed dat bij mij de problemen begonnen zijn na een update van Android.
Rooten van je telefoon
Introductie
Om *alles* met je telefoon te kunnen doen heb je 'root access' nodig. Op Unix/Linux-computers is root de naam van de supergebruiker, vergelijkbaar met Administrator onder Windows.
Net als het in Windows de gebruiker steeds moeilijker wordt gemaakt om "domme" dingen te doen door de privileges van gewone gebruikers steeds verder in te perken, heeft men dat ook in Android gedaan.
Maar natuurlijk zullen er altijd slimme hackers blijven die het voor elkaar krijgen om ook in de nieuwste versies van Android toegang tot root te krijgen.
Wat moet je doen?
Dus, als je het risico wilt nemen om je telefoon om zeep te helpen, dan kan je bv. beginnen op deze pagina, waar een hele lijst van telefoons genoemd wordt.
Er zijn nl. talloze versies van Android in omloop, en in theorie zou het overal net iets anders kunnen werken.
Handleiding voor de Samsung Galaxy S II (mijn telefoon, 1-12-2014) staat hier.
Het nut van Android Debug Bridge, en installeren ervan
Introductie
ADB
is onderdeel van de Google Android System
Development Kit (SDK).
Na het installeren ervan (onder Windows), kan je via een USB-kabel vanaf de commandoregel een hoop dingen doen met je telefoon, zoals er bestanden naartoe en vanaf kopiëren, apps installeren en deïnstalleren, etc.
Het installatieproces wordt o.a. op de site van How-to-geek beschreven (maar klopte niet met waar ik tegenaan liep, zie onder).
Installatie
JDK
Als eerste moet je op je PC de 32-bits versie van de Java Development Kit installeren (ook als je een 64-bits versie van Windows draait). Deze versie (Windows x86!!) is hier te downloaden.
Op sommige PC's zal de Java Runtime Environment (JRE) al aanwezig zijn, maar dat is niet voldoende.
Android SDK
Het 2e te installeren product (volgens de Engelse site) is de Android System Development Kit. Ik heb echter gemerkt dat het voldoende is om het bestand te downloaden en te ontzippen.
Je kan het pakket hier downloaden.
Ik heb ook in dit geval maar een 32-bits versie genomen, hoewel ik een 64-bits PC heb.
Android SDK Platform-tools
Stel dat je ontzipt naar de map c:\adk
, dan
staan daarna de platform tools in
C:\adk\adt-bundle-windows-x86-20140702\sdk\platform-tools
Als het goed is moet je een bestand zien met de naam
adb.exe
Debugging aanzetten
Zet op je telefoon USB debugging
aan, via
Settings - System - Developer options
Test of ADB werkt
Sluit je telefoon op de PC aan (met USB-kabel).
Ga vanaf de commandoregel
naar de map platform-tools
(Op de commandoregel kan je met het commando cd \
naar de hoofdmap van de schijf gaan, met het commando
schijfletter:
naar een andere schijf, en
met cd mapnaam
naar een dieper gelegen map.
Je kan jezelf tikwerk besparen door
deel-van-mapnaam
in te tikken, en dan een 1 of meer keer spatie
tot de goede naam op je scherm staat.
Als je in de hoofdmap van schijf C:
staat, en je
tikt in cd wi
en dan 1 of meer keer spatie, dan komt
er vanzelf cd windows
te staan.)
Tik dan in: adb devices
Als je niets ziet, moet je nog drivers installeren.
USB driver installeren
Je kan eerst proberen de Google USB driver
te
installeren.
Start SDK Manager
vanuit de map waarin ook
de platform-tools
zitten.
Vink onder
Extras
Google USB Driver
aan (haal alle andere vinkjes
weg), en klik op Install
Het kan ook zijn dat de fabrikant van je telefoon een driver heeft.
Gebruik van ADB
Een complete beschrijving van het gebruik van ADB
is
hier te vinden.
Shell commando's
adb shell
:
interactieve commandoregel op je Android-apparaat;adb shell commando
:
voert het specifieke commando uit op je Android-apparaat.
App commando's
adb install package-naam
:
Installeer het package met naam package-naam (op je computer) op je Android-apparaat. De package-naam zal doorgaans (altijd?) extensie.apk
hebben;adb uninstall package-naam
:
Deïnstalleer het package met naam package-naam van je Android-apparaat. package-naam is hier van de vormcom.whatsapp
(voorWhatsApp
) ofcom.rovio.angrybirds
voorAngry Birds
.
File commando's
adb push lokaal-bestand Android-bestand
:
Kopiëert een bestand van je computer naar je Android-apparaat. Op de telefoon zou het bestand bv. in de map\sdcard
kunnen komen te staan.adb pull Android-bestand lokaal-bestand
:
Kopiëert een bestand van je Android-apparaat naar je computer. Op de telefoon zou het bestand bv. in de map\sdcard
kunnen staan.
Log commando's
adb logcat
:
Bekijk de log van je Android-apparaat. Kan nuttig zijn als je problemen hebt met een app.
Toegang tot beveiligde mappen zonder root
Introductie
Als je met een tool als SD Maid
(een soort Verkenner (Explorer)
voor de telefoon)
door de mappen van je telefoon gaat, zal je merken dat je tot sommige ervan
geen toegang hebt.
Een voorbeeld is de map /data/data
Nou kan je je telefoon rooten (waarmee je 'root access' krijgt, en dus *alles* kan), maar fabrikanten vinden dat minder leuk. En jij misschien ook, als je je telefoon ermee om zeep helpt.
Dus: hoe kan je bij die mappen komen zonder te rooten? 1 ding lijkt zeker te zijn: je hebt sowieso Android Debug Bridge nodig.
Adb backup
Met deze methode lijk je alle bestanden van apps van de telefoon af te kunnen krijgen.
Maak een backup van de data van een app
door op de commandoregel
(in de map waar adb
staat) in te tikken:
adb backup -f lokale-filenaam -apk
app-naam
Kijk dan op je telefoon, want je moet daar een bevestiging geven. Je kan ook een code opgeven, maar doe dat niet!!! Dat maakt de rest alleen maar veel moeilijker.
Voor WhatsApp
(app-naam =
com.whatsapp
) heb ik gemerkt dat dat de backup ook de
file key
en de onversleutelde database bevat.
Normaal gesproken kan je deze bestanden niet benaderen.
Inhoud uit backup halen
Een probleempje is nog wel dat de backup in een zeer obscuur formaat
(Android backup = .ab
) is.
Het is een gecomprimeerde vorm van een .TAR
-bestand,
wat op zich ook al weer een gecomprimeerd bestand is.
De file wordt gemaakt met het DEFLATE-algoritme, maar dan
nog weer net iets anders.
Er is een open source tool om de .TAR
-file uit de
backup te halen.
Android Backup Extractor
is
hier te downloaden.
Je hoeft het bestand alleen maar uit te pakken.
Zorg ervoor dat (de map van) java.exe
in je pad zit.
Die map zal waarschijnlijk ongeveer zo heten:
C:\Program Files (x86)\Java\jreversie\bin
Het is het handigste om de backup file in dezelfde map te zetten als in de map
van Android Backup Extractor
.
Ga dan op de commandoregel naar die map toe.
Voer het volgende commando uit:
java -jar abe.jar unpack
<backup.ab> <backup.tar> [password]
Het password is hetzelfde als je evt. (maar hopelijk niet) op de telefoon hebt gebruikt bij het maken van de backup.
Ik ga er van uit dat het invoerbestand (de backup)
backup.ab
heette, dan heb je achteraf een bestand
backup.tar
Elk fatsoenlijk compressieprogramma kan .TAR
-files
aan, dus met bv. 7Zip
kan je de inhoud uit
backup.tar
halen.
Run-as
Deze methode werkt alleen voor apps waarbij de debug-vlag aanstaat. Zie de beschrijving hier.
Als je interactief wilt werken tik je de volgende commando's in:
run-as com.your.package
shell@android:/data/data/com.your.package $ ls
cache
databases
lib
shared_prefs
rm databases/mydatabase.db
Je zit dan in de map met data voor de app.
Je kan ook de volgende 2 commando's uitvoeren:
run-as com.your.package ls -l /data/data/com.your.package
run-as com.your.package rm /data/data/com.your.package/databases/mydatabase.db
Gespreksgeschiedenis WhatsApp is beschadigd
Het probleem
Iemand die ik ken kreeg de volgende melding:
Uw gespreksgeschiedenis is beschadigd.
Wilt u uw gespreksgeschiedenis herstellen?
De Engelse variant van deze boodschap is:
Error: your message history is corrupted.
Would you like to restore backup
Als onderstaand verhaal niet duidelijk is, zie dan evt. deze pagina.
De WhatsApp database
De database is een sqlite3
database, en is zowel
versleuteld als onversleuteld opgeslagen op je telefoon.
De onversleutelde vorm staat in een niet toegankelijke map:
/data/data/com.whatsapp/databases/msgstore.db
De versleutelde vorm is toegankelijk, en staat in
/sdcard/WhatsApp/Databases/msgstore.db.crypt7
De gegevens van de telefoon naar je computer halen
Maak een backup van de data van WhatsApp
,
door op de commandoregel
(in de goede map) in te tikken:
adb backup -f lokale-filenaam -apk
com.whatsapp
Een voorbeeld zou zijn:
adb backup -f c:\whatsapp.ab -apk com.whatsapp
Kijk nu op je telefoon, want je moet daar een bevestiging geven. Je kan ook een code opgeven, maar doe dat niet!!! Dat maakt de rest alleen maar veel moeilijker.
De WhatsApp-gegevens bekijken
Haal de inhoud uit de Android backup file.
In principe heb je nu de onversleutelde database,
msgstore.db
, en kan je
die met WhatsApp Viewer
bekijken.
De persoon die ik probeerde te helpen had wel de versleutelde database
veiliggesteld, maar daarna WhatsApp
geinitialiseerd.
In dat geval moet je de file key
uit de backup
(in de map f
) en het bestand
msgstore.db.crypt7
gebruiken om de versleutelde
database in een onversleutelde om te zetten.
Ook dat kan met
WhatsApp Viewer
.
Als de WhatsApp
database corrupt is zou het kunnen
zijn dat WhatsApp Viewer
en ook
DB Browser for SQLite
hem niet
kunnen benaderen.
In dat geval kan je deze methode via Linux proberen.
WhatsApp database terugzetten naar telefooon
Ik kan me niet voorstellen dat je dat zou willen, want met de viewer is het veel gemakkelijker je chats te bekijken dan op de telefoon. Maar wie ben ik...
Je hebt op de computer
een bestand met een onversleutelde WhatsApp
database.
Zo niet, zorg dan eerst dat je die krijgt.
Deïnstalleer WhatsApp
van je telefoon.
Verander de naam van de onversleutelde database in
msgstore.db
, en kopiëer hem weer naar je
telefoon in de map /sdcard/WhatsApp/Databases/
Installeer dan WhatsApp
opnieuw.
WhatsApp Viewer 1.6
Dit programma is gratis en hoef je niet te installeren.
Je kan hiermee de inhoud van de WhatsApp
database
bekijken, maar ook de versleutelde variant decrypten (als je tenminste ook
de file key
hebt).
Download WhatsApp Viewer van Andreas Mausch. Je hoeft de file alleen uit te pakken.
WhatsApp-gegevens bekijken
Klik in het programma op
File - Open
Je geeft in het bovenste vak de naam van de onversleutelde database, en in het onderste vak je Google account-naam. Dat is gewoon het stuk voor @gmail.com
Je WhatsApp
-geschiedenis is nu gesplitst in een
aantal bestanden (de lijst die je links ziet), en rechts kan je de inhoud
ervan bekijken.
Het oudste bestand staat onderaan, en binnen de bestanden staan de berichten van boven naar beneden in chronologische volgorde, en de verschillende chats zijn met dunne lijntjes van elkaar gescheiden.
WhatsApp database decrypten
Je klikt op
File - Decrypt .crypt7
Je moet nu de locaties van de versleutelde database en de key file opgeven.
Als uitvoer krijg je dan een onversleuteld bestand
msgstore.decrypted.db
Het benaderen van de WhatsApp gegevens als sqlite3 database met DB Browser for SQLite 3.4.0
Het bekijken met deze tool is veel minder handig dan met
WhatsApp Viewer
, maar je
kan er ook andere nuttige dingen mee.
Stel dat een sqlite3-file corrupt zou zijn, en deze tool kan hem nog wel lezen, dan zou je alle gegevens kunnen exporteren en weer importeren in een nieuwe database. Ik zou verwachten dat de corruptie dan weg moet zijn.
De tool is hier te downloaden, en moet geïnstalleerd worden.
Om de msgstore.db
database file van
WhatsApp
te kunnen benaderen klik je op
File - Open Database
, en ga je naar de locatie
van de file toe.
Daarna klik je op het tabblad Browse Data
, en
selecteer je achter Table
bv.
messages
Onder de kolom data
zie je dan de inhoud van de
boodschappen.
Exporteren van de hele database kan met File -
Export - Database to SQL file
Corrupte db decrypten
Deze stappen moeten in Linux.
Als het goed is heb je de file key
en de file
msgstore.db.crypt7
Haal de 256-bit AES-sleutel uit de key file:
hexdump -e '2/1 "%02x"' key | cut -b 253-316 > aes.txt
Haal de initialization vector uit de key file:
hexdump -e '2/1 "%02x"' key | cut -b 221-252 > iv.txt
Strip de header van de crypt7 file:
dd if=msgstore.db.crypt7 of=msgstore.db.crypt7.nohdr ibs=67
skip=1
Extraheer een onversleutelde versie uit de crypt7 file:
openssl enc -aes-256-cbc -d -nosalt -nopad -bufsize 16384 -in
msgstore.db.crypt7.nohdr -K $(cat aes.txt) -iv $(cat iv.txt) > msgstore.db
Je zou nu een onversleutelde file msgstore.db
moeten hebben.
Je zou kunnen proberen of de database nu met
WhatsApp Viewer
is
te benaderen.
Zo niet, ga dan door met het exporteren en importeren van de gegevens (nog steeds onder Linux).
Exporteren en importeren van de db
Zodra je het bestand msgstore.db
ergens in een
Linux-omgeving hebt staan, haal je met het volgende commando de inhoud eruit:
echo .dump | sqlite3.exe msgstore.db > Temp.sql
De database staat nu in een andere vorm in de file
Temp.sql
Nu maak je een nieuwe db aan die geschikt is voor
WhatsApp
, dus in
sqlite3
-formaat:
echo .quit | sqlite3.exe -init Temp.sql msgstore_new.db
Je hebt nu een onversleuteld
bestand met de naam msgstore_new.db
Niet voldoende geheugenruimte over om bv. apps te updaten
De meest voor de hand liggende manier om ruimte te maken is apps naar de SD-kaart te verhuizen.
Herstart
Sommige mensen laten hun telefoon *altijd* (of in elk geval heeeeel lang) aan staan.
In dat geval kan het nuttig zijn om je telefoon te herstarten (echt uit en weer aan).
Verwijder cached data
Doe dat door in de instellingen te gaan naar
Storage
.
Tik vervolgens op Internal Storage
Je komt dan op een scherm waar o.a. de grootte van
Cached data
berekend wordt (kan even duren).
Bij mij was dat ca. 0,5 GB.
Tik op Cached data
, en daarna op
Delete
.
Je wint dan die ruimte terug.
Installeer een schoonmaak-app
Batterij te snel leeg en/of telefoon wordt warm
Ik heb deze situatie meegemaakt met de Samsung Galaxy S5.
Toen ik de telefoon een paar maanden eerder kocht, kon ik makkelijk 1 etmaal mee zonder de batterij op te laden.
Vandaag (30-4-2015) had ik de telefoon om 12 uur opgeladen, en zou hij volgens de voorspelling leeg zijn om 19 uur 's avonds. Dat gaat wel heel hard.
Die voorspelling kan je als volgt bekijken, en eronder zie je ook welke programma's de meeste stroom slurpen.
In mijn geval was dat mm-qcamera-daemon
.
Dit programma had anderhalf uur na het opladen al 3% van de batterij verbruikt,
terwijl ik (kijkend naar de naam van het programma) helemaal niets met een
camera had gedaan.
Ik blijk niet de enige te zijn met dit probleem. Zie bv. deze thread op een forum.
Links
- Whatsapp Xtract: Backup Messages Extractor / Database Analyzer / Chat-Backup
- Nog een tool om de inhoud van de
WhatsApp
database te kunnen bekijken. Je hebt er echter wel Python voor nodig. - How do you extract an App's data from a full backup made through “adb backup”?
- Een thread op een forum, waarin o.a. duidelijke uitleg wordt gegeven over
wat een Android backup is, een verwijzing naar de tool
Android Backup Extractor
en naar de toolDroid Explorer
, etc. - How to Decrypt WhatsApp crypt7 Database Messages
- Zeer goed verhaal over waar de
WhatsApp
-bestanden op je telefoon staan, hoe je ze er metAndroid Debug Bridge
vanaf kan krijgen, hoe je ze kan decrypten, etc. Wel allemaal Linux-based. - How to access data/data folder in Android device?
- Deze thread was een beetje het startpunt voor mijn zoektocht, en er staat
een hoop nuttige info in, o.a. ook over
Eclipse
. Maar er staat ook een hoop onzin in. - Corrupted data - Can't restore Whatsapp chat history
- Deze thread bevat ook veel van het materiaal dat ik in deze pagina heb
verwerkt.
Duidelijke info over de
WhatsApp
-bestanden, en hoe je de database m.b.v. Linux-commando's uit de versleutelde file kunt halen en weer terug kunt krijgen op de telefoon. - Pro tip: Fix the dreaded Android USB storage full issue
- Een niet zo geweldig artikel van TechRepublic om het probleem van te weinig geheugenruimte op je Android-telefoon op te lossen.
- [GUIDE] How to extract, create or edit android adb backups
- De naam zegt het al: een gids om met
.ADB
-bestanden (AnDroid Backup) te kunnen werken.
Reageer via E-mail (dalmolen@xs4all.nl)
Deze pagina is voor het laatst gewijzigd op: 18-02-23 13:22:28