Dek unu jaroj da mesaĝoj en la aero: la sekurkopio de WhatsApp kiun oni ne povis restarigi
Serio pri WhatsApp, 1/2. Ĉi tiu artikolo rakontas kio okazis al mi kiam mi ŝanĝis telefonon. La dua, Ĉu WhatsApp vere estas sekura? La problemo de la finpunktoj kiujn vi ne kontrolas, klarigas kial la fin-al-fina ĉifrado ne garantias ĉion kion ĝi ŝajnas garantii.
TL;DR — Mi ne havas tempon por legi tiel longan tekston nun
- En januaro de 2024 mi aĉetis novan telefonon. WhatsApp ne kapablis restarigi mian sekurkopion: 1.701.082 mesaĝoj, de novembro de 2012.
- La restarigo atingis «Finiĝas 99%» kaj malsukcesis. Ĉiam. En tri malsamaj telefonoj.
- La oficiala funkcio de transdono inter Android-telefonoj malsukcesis mezvoje kaj lasis neuzebla la datumbazon de la malnova telefono. Ne plu estis reveno.
- Mi restis 44 tagojn sen WhatsApp, ĉar komenci de nulo signifis rezigni por ĉiam pri la historio. Tion diris al mi la subteno mem: la malnova kaj la nova historio ne kombineblas.
- Mi skribis 32 retleterojn al la subteno. Mi ricevis 31 respondojn: 30 ŝablonajn aŭ aŭtomatajn kaj unu de homo. Tiu homo promesis transdoni la kazon al la Produkta teamo kaj neniam plu skribis.
- Min savis tio, ke mi estas softvaringeniero. Per telefono kun root-atingo mi kaptis la ŝlosilon, kiun WhatsApp konservas en siaj serviloj kaj skribas sur la telefonon nur por momentoj dum la restarigo. Per ĝi mi malĉifris mian propran sekurkopion. La mesaĝoj ĉiuj estis tie.
- Laŭ la subteno, la datumbazo estis «koruptita». Reale ĝi havis unu duobligitan vicon en metadatuma tabelo de 57.658 vicoj. Per tri normaj SQLite-komandoj, en ĉirkaŭ 22 sekundoj, ĝi puriĝas.
Kio okazis
Mi uzas WhatsApp de 2012. Mi ŝanĝis telefonon plurfoje kaj ĉiam ĝi funkciis same: vi instalas la aplikaĵon, kontrolas la numeron, tuŝas «Restarigi» kaj la sekurkopio el Google Drive revenas al sia loko.
En januaro de 2024 mi transiris de Xiaomi Redmi Note 9S, kiun mi uzis kvar jarojn, al Google Pixel 8. Ĉi-foje la restarigo ne funkciis. Ĝi elŝutis la gigabajtojn, montris «Restarigas», atingis «Finiĝas 99%», restis tie iom da tempo kaj fine diris ke ĝi ne povas restarigi la babilojn. Poste, rekte, la aplikaĵo mortis.

18-a de januaro de 2024, 17:59: la restarigo blokita ĉe «Finalizando… (99 %)». Mi kaŝis la Google-konton.

18-a de januaro, 19:10: «No se pudieron restaurar tus chats desde esta copia de seguridad».
Antaŭ ol fari ion alian, per adb mi kopiis al la komputilo la tutan WhatsApp-dosierujon de la malnova telefono: ĉirkaŭ 30 GB en 80.000 dosieroj, kun la lokaj ĉiutagaj kopioj de la datumbazo. Tiu antaŭzorgo, fine, estas kio savis ĉion.
Mi faris kion diras la manlibro kaj iom pli:
- Mi forviŝis la sekurkopion el Google Drive por ke la malnova telefono faru novan. Ĝi bezonis ĉirkaŭ ses horojn kaj finiĝis sen ia ajn eraro.
- Mi refabrikigis la novan telefonon.
- Mi reaktivigis WhatsApp en la malnova telefono ĉiufoje kiam la nova malsukcesis. La unua afero kiun ĝi faris estis ĝisdatigi la sekurkopion, kaj mi neniam interrompis ĝin.
- Mi atendis inter provo kaj provo ĝis 20 horojn, ĉar la serviloj de WhatsApp ne volas ke vi kontrolu la numeron tiom da fojoj sinsekve.
Poste mi malkovris ke WhatsApp antaŭ nelonge aldonis rektan transdonon inter Android-telefonoj, per Wi-Fi. Ĝi ŝajnis la solvo: ĝi ne pasis tra Google Drive. La du telefonoj vidis unu la alian, la transdono komenciĝis kaj duonvoje malsukcesis. En tiu momento, WhatsApp markis kiel nevalida la datumbazon de la malnova telefono. Mi ne plu povis uzi ĝin. De tiam, restarigi la sekurkopion donis en la malnova telefono la saman eraron kiel en la nova.
Estis la 18-a de januaro de 2024. La lasta mesaĝo de mia malnova historio estas de tiu tago je la 10:07. La lasta sekurkopio en Google Drive estas de la 10:49: 20,5 GB, kun fotoj kaj videoj inkluzivitaj.
Kial ne komenci de nulo kaj jen
Ĉar ne estis reveno. Tion diras la respondo mem de WhatsApp de la 16-a de januaro:
«Solo puedes restaurar el historial de WhatsApp antes de activar la aplicación en el dispositivo nuevo. [...] No es posible combinar el historial antiguo con el nuevo.»
Se mi tuŝis «Preterlasi» kaj komencis uzi WhatsApp, mi rezignis por ĉiam pri restarigo de la sekurkopio. Tial mi restis sen WhatsApp dum mi atendis solvon. Estis 44 tagoj, de la 18-a de januaro al la 2-a de marto de 2024.
La 2-an de marto mi faris la lastan provon, en la malnova telefono. Je la 11:16 ĝi malsukcesis same kiel ses semajnojn antaŭe. Tiam mi tuŝis «Preterlasi» kaj komencis puran konton, sen historio.

2-a de marto de 2024, 11:16: la sama sekurkopio de la 18-a de januaro, la sama 99 % kaj la sama eraro.

Figura 1
Ankoraŭ hodiaŭ, la aplikaĵo per kiu mi konsultas miajn mesaĝojn montras du «enkorpiĝojn» de la sama numero: la malnovan historion, reakiritan, kaj la novan, kiu komenciĝas la 2-an de marto. Inter la du estas truo de 44 tagoj.
Nevidebla por la aliaj
Estis aldona angoro, kiun mi ne atendis. Preskaŭ ĉiuj supozas, ke se vi havas WhatsApp, vi ĉiam havas ĝin. Neniu kontrolas, ĉu mesaĝo alvenis: oni sendas ĝin, kaj jen ĉio. Dum tiuj 44 tagoj, laŭ la aliaj mi plu havis WhatsApp.
Ekzemplo. Teknikisto, kun kiu mi devis fari ian aferon por asocio, malproksime de hejmo, telefonis al mi iun tagon por rendevui la postan tagon je la oka. Ni interkonsentis telefone. La postan tagon mi iris tien, kaj li diris al mi: «Ha, hodiaŭ matene mi sendis al vi WhatsApp-mesaĝon por nuligi ĝin». Li ne rimarkis, ke la mesaĝo ne atingis min. Por li estis neimageble, ke iu ne havu WhatsApp.
Ne estas strange, ke homoj ne pensas pri tio: resti sen WhatsApp okazas tre malofte. Sed ĝuste pro tio WhatsApp devus averti. La sendinto vidas nur unu grizan hoketon, la saman kiel kiam via telefono estas malŝaltita dum iom da tempo, kaj neniun averton, ke tiu konto jam de semajnoj ricevas nenion. Krome, nelivritajn mesaĝojn WhatsApp konservas nur 30 tagojn. Mi pasigis 44 tagojn sen povi legi eĉ unu.
La subteno: 63 retleteroj kaj nenia teknikisto
De la 16-a de januaro al la 5-a de marto interkruciĝis 63 retleteroj: 32 miaj kaj 31 de WhatsApp. La respondoj de WhatsApp, klasifikitaj:
| Respondo | Fojoj |
|---|---|
| «Las copias de seguridad más grandes demorarán algo de tiempo…» | 4 |
| «Envíanos un vídeo / una captura de pantalla» | 4 |
| Kontentec-enketo | 4 |
| «Parece que la base de datos de tus chats está corrupta» | 3 |
| «Reproduce el problema y envía los registros» | 2 |
| «Tu cuenta permanece activa y no presenta ningún problema» | 2 |
| «Desinstala, reinstala y toca Restaurar; no podemos ayudarte» | 2 |
| Instrukcioj por transiri de Android al iPhone | 1 |
| «Actualiza Google Play Services» | 1 |
| Ne eblas fari sekurkopion el WhatsApp Web | 1 |
| Kiel restarigi lokan sekurkopion renomante dosierojn | 1 |
| Reklamo pri la fin-al-fina ĉifrado | 1 |
| «No tenemos información suficiente» / «envíanos tu número» | 2 |
| «No recibimos el archivo adjunto» | 1 |
| Aŭtomata ricevkonfirmo | 1 |
| Respondo de homo kiu legas la kazon | 1 |
Kelkaj momentoj kiuj resumas la laboron:
- 18-a de januaro, 19:22. Mi sendas el la aplikaĵo raporton kun protokoloj kaj ekrankopioj. Du minutojn poste: «Al parecer, debes actualizar la aplicación Google Play Services».
- 22-a de januaro. Oni diras al mi ke la datumbazo estas koruptita pro «una interrupción en el proceso de creación de la copia» aŭ ĉar «se fuerza el cierre de WhatsApp». Mi faris nek unu nek la alian. Mi demandas ilin, laŭvorte: «¿Me está atendiendo un sistema automatizado de IA?». La respondo estas la sama ŝablono pri la korupto, vorto post vorto.
- 29-a de januaro. Mi petas la solan aferon kiun nur ili povas fari: ke ili donu al mi la ŝlosilon por malĉifri mian datumbazon, aŭ ke ili malĉifru ĝin por mi. Alvenas la sola homa respondo de la tuta interŝanĝo. Ĝi diras ke oni transdonas la kazon al la Produkta teamo, ke la ŝlosilo «no es un dato que se pueda compartir» kaj ke estas homoj kiuj sukcesis per telefonoj kun root-atingo, «pero está claro que no es algo que aconsejo». Ĝi promesas skribi kiam estos novaĵoj. Ĝi neniam plu skribos.
- 13-a de februaro. Dufoje oni diras al mi ke mia konto estas aktiva kaj havas nenian problemon. Oni petas mian telefonnumeron, kiu estis en ĉiuj protokoloj kiujn oni igis min sendi. Kiam mi demandas ĉu la Produkta teamo rigardis la kazon, en malpli ol unu minuto mi ricevas la ŝablonon «desinstala y reinstala».
- 19-a de februaro. Mi proponas pagi por teknika subteno, se necese. Oni petas videon. Mi alŝutas ĝin al YouTube: oni vidas «Finiĝas 99%» kaj la aplikaĵon kiu mortas. Kvar minutojn poste oni respondas al mi ke la grandaj sekurkopioj bezonas tempon por elŝutiĝi.
- 1-a de marto, 12:12. Mi denove petas ke oni malĉifru la lokan datumbazon. Respondo: klarigo pri la fin-al-fina ĉifrado, kun la frazo ke «nadie más, ni siquiera WhatsApp» povas legi la mesaĝojn. Mi ne parolis pri la mesaĝoj en trafiko, sed pri dosiero sur mia disko ĉifrita per ilia ŝlosilo. (Pri tiu konfuzo temas la dua artikolo.)
- 1-a de marto, 13:00. Oni denove petas la videon, nun kunsendita. Ilia servilo resaltigas ĝin ĉar ĝi superas 20 MB. Kiam mi klarigas tion, oni diras al mi ke oni ne ricevis ĝin kaj ke la limo estas 100 MB.
- 4-a de marto. Mi skribas trifoje sinsekve ke mi bezonas ke homo prizorgu min. Mi ricevas «base de datos corrupta», «ya respondimos tu pregunta» kaj «las copias más grandes demorarán». La lasta mesaĝo de WhatsApp, la 5-an de marto je la unua matene, estas kontentec-enketo.
La respondoj venis de sep malsamaj biletnumeroj. Ĉiu estis nova bileto, sen la historio de la antaŭaj. Tial oni petis, foje kaj refoje, informojn kiujn oni jam havis.
Mi publikigis la kazon en Reddit. Tie mi malkovris ke mi ne estis la sola, eĉ ne proksime.
Kion vere enhavis mia sekurkopio
La 13-an de marto de 2024 mi akiris la ŝlosilon (mi klarigas tion pli sube) kaj malĉifris la sekurkopion de la 18-a de januaro. Jen la datumoj.
La mesaĝoj ĉiuj estis tie. Eliris 1.701.082 mesaĝoj, de la 16-a de novembro de 2012 ĝis la 18-a de januaro de 2024 je la 10:07. Malĉifrita, la dosiero havas 1,94 GB da SQLite.
Estis malkohero, sed ĝi estis etega. La integrec-kontrolo de SQLite (PRAGMA quick_check) diras ke kelkaj indeksoj ne kongruas. La kaŭzo estas unu sola ripetita vico en la tabelo user_device, kiu konservas kiujn aparatojn havas ĉiu kontakto, tabelo propra al la multaparata WhatsApp. Temas pri 57.658 vicoj, kaj unu el ili estas duobligita kaj rompas indekson UNIQUE. La mesaĝoj havas nenian problemon. La indeksoj estas derivitaj datumoj, kiel la indekso de libro: se ili malkongruas, oni regeneras ilin el la enhavo.
Mi faris la provon en kopio:
DELETE FROM user_device WHERE _id = 215478; -- la fila duplicada
REINDEX;
INSERT INTO message_ftsv2(message_ftsv2) VALUES('rebuild'); -- índex de cerca
PRAGMA quick_check; -- okTemas pri ĉirkaŭ 22 sekundoj en ordinara komputilo, kaj quick_check redonas ok.
La protokoloj kiujn WhatsApp mem igis min sendi diras:
msgstore-manager/checkhealth no db;
exception=android.database.sqlite.SQLiteException: Unable to open writable db: failed to open db
Mi ne povas pruvi ke la duobligita vico estas la kaŭzo de la fiasko: mi ne havas la kodon de WhatsApp. Sed ĝi estas la sola anomalio kiun mi trovas, kaj la tezo de la subteno ne staras:
- Ĝi ne estis interrompita sekurkopio. Sekurkopio tranĉita duonvoje donas trunkitan dosieron, kaj la aŭtentikigita ĉifrado (AES-GCM) rifuzus ĝin dum malĉifrado. Mia dosiero malĉifriĝas perfekte.
- La duobligitan vicon ne skribis mi. Sen root, en tiu datumbazo skribas nur WhatsApp. La malkoheron kreis la aplikaĵo mem.
- La sekurkopio ne detektis tion kaj la restarigo jes. WhatsApp generis kaj alŝutis ĉiutage sekurkopion kiun ĝi mem ne scius restarigi, kaj diris ke ĉio estas en ordo.
La kuriozaĵo de la 1000 MiB
Estas alia koincido kiun mi detektis antaŭ ol reakiri la ŝlosilon. La lokaj ĉiutagaj sekurkopioj de la antaŭaj tagoj havis:
| Sekurkopio | Bajtoj | MiB |
|---|---|---|
| 13/01/2024 | 1.044.519.996 | 996,1 |
| 14/01/2024 | 1.045.799.515 | 997,4 |
| 15/01/2024 (06:35) | 1.045.985.048 | 997,5 |
| 15/01/2024 (13:43) | 1.045.523.278 | 997,1 |
| 18/01/2024 (la nereakirebla) | 1.048.578.748 | 1000,003 |
La sekurkopio kiun oni ne plu povis restarigi havas ekzakte 1000 MiB plus 2.748 bajtojn. Fali hazarde je malpli ol 3 KB ĝuste super tiel ronda numero estas tre malprobabla. Povas esti interna grandec-limo malbone traktita ie en la restarigo. Ankaŭ tion mi ne povas pruvi.
Mi volis kontroli ĉu la duobligita vico jam estis en la sekurkopioj de la 15-a de januaro, kiam ili ankoraŭ ne atingis 1000 MiB. Mi ne povis: la ŝlosilo kiun mi akiris en marto ne malfermas ilin. Inter la 15-a kaj la 18-a de januaro la ŝlosilo ŝanĝiĝis, verŝajne kiam mi forviŝis la sekurkopion el Google Drive kaj WhatsApp generis novan. Miaj lokaj kopioj de antaŭ tiu dato estas, hodiaŭ, dosieroj kiujn mi ne povas legi.
Kiu ajn estu la kaŭzo, ambaŭ estas eraroj de WhatsApp. Se estas grandec-limo, la sekurkopio devas diri tion kiam ĝi estas kreata, ne kiam vi jam devas restarigi ĝin. Se temas pri la duobligita vico, la restarigo povus ripari ĝin en sekundoj, aŭ la sekurkopio povus detekti ĝin.
La ŝlosilo kiu «ne estas kunhavigebla»
La loka datumbazo de WhatsApp kaj la normalaj sekurkopioj en Google Drive (tiuj kiuj ne estas fin-al-finaj) estas ĉifritaj per ŝlosilo kiun la uzanto ne havas. En telefono sen root vi ne povas legi ĝin.
La 13-an de marto de 2024 mi instalis WhatsApp en telefono kun root-atingo, kontrolis mian numeron kaj kaptis la ŝlosilon: dosiero de 158 bajtoj (mi klarigas tion tuj sekve). Per tiu ŝlosilo mi malĉifris la sekurkopion kiun faris alia telefono la 18-an de januaro. Tio signifas ke la ŝlosilo ne loĝas en la telefono: ĝin konservas WhatsApp en siaj serviloj kaj donas ĝin al iu ajn telefono kiu pruvas ke ĝi kontrolas la numeron. Ĝuste tio permesas restarigi en nova telefono sen ia ajn pasvorto. Tion dokumentas ankaŭ tiuj kiuj faras krimmedicinajn ilojn: Elcomsoft klarigas ke la ŝlosilon generas la serviloj de WhatsApp la unuan fojon kiam oni faras sekurkopion.
Sekve, kiam la subteno diris ke la ŝlosilo «no es un dato que se pueda compartir», tio estis laŭvorte vera: ili havis ĝin, ili donas ĝin aŭtomate al la aplikaĵo, sed ne al la homo posedanta la datumojn. La aplikaĵo de mia telefono povis legi mian historion; mi ne. Ĝuste tio estas la demando de la dua artikolo: kies estas la finpunkto?
Doni ĝin al mi kostus al ili nenion. WhatsApp jam transdonas la ŝlosilon aŭtomate al iu ajn telefono kiu kontrolas mian numeron, kun la PIN de dupaŝa kontrolo se ĝi estas aktivigita. Proponi ĝin al la homo kun ekzakte la samaj kontroloj aldonus nenian riskon: kiu povas restarigi mian sekurkopion en nova telefono, tiu jam povas legi ĝin. Ĝi estus butono en la agordoj. Efektive, ĉe la fin-al-fina sekurkopio kun 64-cifera ŝlosilo ili jam akceptas ke la uzanto havu la ŝlosilon. Ĉe la normala sekurkopio, ili simple ne proponas tion. Kial, mi ne scias. Povas esti por ŝpari subtenon, por ne faciligi ke iu kun via malŝlosita telefono forportu la historion, aŭ por ne faciligi la eliron el la platformo. Tio estas spekuladoj.
Kiel mi akiris ĝin
La ŝlosilo neniam aperas en ordinara telefono. Kion mi faris estis ripeti la restarigon en telefono kun root-atingo kaj gvati la privatan dosierujon de WhatsApp, /data/data/com.whatsapp/, kien nenia alia aplikaĵo povas rigardi.
Dum la restarigo, WhatsApp skribas la ŝlosilon en dosiero de tiu dosierujo, ĉar ĝi bezonas ĝin por malfermi la sekurkopion. Kiam la restarigo malsukcesas, ĝi forviŝas ĝin. Estas do mallonga intervalo en kiu la ŝlosilo estas sur la disko. Kun root, mi povis kopii ĝin en tiu intervalo.
De tie, la resto estas konata inĝenierado. La dosiero crypt14 estas kapo, SQLite-datumbazo kompaktigita per zlib kaj ĉifrita per AES-GCM, kaj aŭtentikig-sigelo. Ekzistas liberaj iloj kiel wa-crypt-tools kiuj, kun la ŝlosilo, malĉifras ĝin. Mi akiris SQLite-datumbazon de 1,94 GB kun mia tuta historio.
Reakiri ne estas restarigi
Sed havi la datumojn ne redonis al mi la antaŭan WhatsApp. Ne estas oficiala maniero diri al WhatsApp «jen mia datumbazo, importu ĝin». Kaj, eĉ se mi reĉifrus ĝin kaj metus ĝin en sian lokon, WhatsApp kraŝus ĉe la sama 99 %.
SQLite-datumbazo de preskaŭ 2 GB, cetere, ne estas interfaco por legi konversaciojn. Tial mi finfine faris al mi propran rigardilon, kiu legas la reakiritan historion kaj la novan kvazaŭ ili estus unu sola kaj markas la truon de 44 tagoj inter ili.
WhatsApp ne perdis miajn datumojn. Ĝi perdis la kapablon redoni ilin al mi.
Kion ni postulus de iu ajn sekurkopia sistemo
Iu ajn homo kiu administris sistemojn scias kion oni devas postuli de sekurkopio. WhatsApp plenumas preskaŭ nenion:
| Kutima eco de sekurkopio | |
|---|---|
| Fari sekurkopion kiam vi volas | Jes, per la butono «Konservi» |
| Alkrementaj kopioj, kun versioj al kiuj reveni (hieraŭ, antaŭ semajno, antaŭ monato) | Ne: unu sola kopio en la nubo kaj kelkaj lokaj kiuj rotacias |
| Kontroli la integrecon de la kopio | Ne |
| Fari prov-restarigon sen perdi ion | Ne |
| Restarigi nur parton (unu babilon, ĝis certa dato) | Ne: ĉio aŭ nenio |
| Legi la kopion per aliaj iloj | Ne: la ŝlosilon havas WhatsApp |
| Frostigi la ŝanĝojn por fari puran tranĉon (la quiesce de la datumbazoj) | Ne: oni ne povas haltigi la ricevon de mesaĝoj |
| Eraro kiu diras kio malsukcesis | Ne: «no se pudieron restaurar tus chats» |
| Iu kiu povas interveni kiam ĉio malsukcesas | Ne |
La konsekvenco estas malmola sed ekzakta: per WhatsApp estas neeble ŝanĝi telefonon kun la certeco ke vi perdos nenion. Vi povas redukti la riskon, ekzemple metante la malnovan telefonon en aviadilan reĝimon antaŭ la lasta sekurkopio. Sed ne estas maniero frostigi la konton dum vi migras, nek kontroli ke la sekurkopio restariĝos antaŭ ol dependi de ĝi. Ĉiu telefonŝanĝo estas salto sen reto.
La mankoj de la sekurkopia sistemo de WhatsApp
Preter mia kazo, la dezajno de la sekurkopioj havas strukturajn problemojn.
- Ne estas prov-restarigo. Ne estas maniero kontroli ke sekurkopio estas restarigebla sen vere restarigi ĝin, kaj restarigo movas la konton al la telefono kie vi faras tion. Vi ekscias ke la sekurkopio ne utilas ĝuste en la tago kiam vi bezonas ĝin.
- La sekurkopio diras «ĉio en ordo» sen kontroli ion ajn. La restarigo faras kontrolojn kiujn la sekurkopio ne faras. La rezulto estas sekurkopioj kiujn WhatsApp mem ne scios restarigi, kaj nenia averto.
- La stato kiun montras la aplikaĵo povas esti malvera. Mi forviŝis la sekurkopion el la retpaĝo de Google Drive kaj WhatsApp daŭre diris ke estas sekurkopio de tiom da gigabajtoj farita je tia horo. Ĝi montris kaŝmemorajn datumojn, ne la realan staton.
- La migrado povas detrui la fonton. La transdono inter Android malsukcesis kaj nevalidigis la datumbazon de la malnova telefono. Migrado ne devus tuŝi la fonton ĝis la celo funkcias.
- Ĉio aŭ nenio. Se la restarigo malsukcesas en la lasta paŝo, vi ricevas nenion: nek partan restarigon, nek tekstan eksporton, nek eraromesaĝon kiu diras kio okazas.
- Unu sola kopio en la nubo. Ĉiu sekurkopio en Google Drive anstataŭas la antaŭan. La opcio «restarigi antaŭan kopion» petas ke vi elektu Google-konton, kaj en la sama konto el kiu mi ĵus elŝutis 19 GB ĝi diris al mi ke estas nenia kopio.
- La lokaj kopioj helpas malmulte. WhatsApp konservas kelkajn ĉiutagajn en la telefono, sed ili estas ĉifritaj per la ŝlosilo de la servilo. Se la ŝlosilo ŝanĝiĝas, la malnovaj ne plu malfermeblas. Kaj restarigi ilin postulas renomi dosierojn kaj malkonekti Google Drive, procedon kiu eĉ ne plu aperas en la oficiala helpo.
- La historio ne kunfandeblas. Se vi komencas de nulo ĉar vi bezonas komuniki, vi perdas la eblon reakiri la historion en WhatsApp.
- Eksporti babilon ne estas fari sekurkopion. La eksporto generas tekston por legi aŭ arkivi, sed ĝi ne estas reimportebla por daŭrigi la konversacion en alia telefono.
- Oni ne povas frostigi la ricevon dum migrado. Inter la lasta sekurkopio kaj la aktivigo de la nova telefono, la mesaĝoj kiuj alvenas al la malnova povas resti ekster la kopio. Ne estas reĝimo «retenu la mesaĝojn ĝis mi finas la migradon».
- La subteno ne havas atingon al iu ajn teknikisto, aŭ ne volas doni ĝin. Eĉ ne pagante. La oficiala helpo jam avertas vin: WhatsApp ne povas restarigi viajn babilojn ĉar ili ne estas en ĝiaj serviloj, kaj ne povas restarigi koruptitan sekurkopion. Kaj la kondiĉoj de la servo diras ke la servo estas provizata «kia ĝi estas» («as is»), sen garantioj.

«Restaurar copia anterior»: en la sama Google-konto el kiu mi ĵus elŝutis la sekurkopion, «No se encontró una copia de seguridad». Mi kaŝis la adreson.
Krome, la sekurkopio havas limigojn kiujn konvenas koni:
- Mesaĝoj kaj aŭdvidaĵoj iras aparte. La datumbazo
msgstore*.db.cryptXXportas la mesaĝojn kaj la metadatumojn. La fotoj, videoj, sonoj kaj dokumentoj iras al la dosierujoMedia. Kompleta sekurkopio bezonas ambaŭ aferojn. La avantaĝo estas ke la aŭdvidaĵoj estas kopieblaj aparte kaj remeteblaj: se la nomoj kaj la vojoj kongruas, WhatsApp denove montras ilin. - Sekurkopio estas momentfoto. Se mesaĝo alvenas dum ĝi estas farata, ĝi povas resti ekstere. En migrado, la plej pura maniero estas lasi la malnovan telefonon ricevi ĉion kio pendas, tranĉi al WhatsApp la retaliron (aviadila reĝimo aŭ fajroŝirmilo laŭ aplikaĵo), fari la definitivan lokan sekurkopion kaj kopii
DatabaseskajMediaeksteren de la telefono. Kio estas sendita al vi poste restas pendanta ĝis la nova telefono konektiĝas.
Ne izolita kazo
Kiam mi rakontis mian kazon en Reddit, en februaro 2024, mi malkovris ke mi ne estis la sola. Serĉante plu, oni trovas publikajn atestojn de aliaj homoj, dum jaroj, en Android kaj en iPhone. Temas pri rakontoj de uzantoj: ili ne diras kiom ofte tio okazas nek ĉu la kaŭzo ĉiam estas la sama, sed ili montras ke la ŝablono ripetiĝas.
- La kopio videblas, elŝutiĝas kaj ne restariĝas. Kopio de 11,2 GB, kiun WhatsApp trovas kaj elŝutas ĝis 100 %, sed poste ne povas restarigi, eĉ ne en dua telefono (Reddit, septembro 2026). Kopioj «sukcese» faritaj kiuj poste ne restariĝas (Google Drive Community, 2022, kun 29 pliaj homoj kun la sama problemo; 2025; 2026). Restarigo de 9,6 GB post kiu nenio aperas; inter la perditaĵoj estis mesaĝo de mortinta patrino (Reddit, julio 2026).
- Jardeko savita danke al la lokaj kopioj. Iu preskaŭ perdis dek jarojn da konversacioj, ĉar la kopio en Google Drive estis difektita, kaj savis ilin per la dosieroj de la malnova telefono. Li plendas pri la sama afero kiel mi: en la nubo estas nur unu kopio (Reddit, aŭgusto 2024).
- La oficiala transigo kiu forviŝas ĉion. «Transfer Chats» fiaskas meze de la procezo, Google Drive diras ke ne ekzistas kopio, kaj la malnova telefono jam estas malkonektita: sep jaroj perditaj (Reddit, januaro 2026). Estas la sama sinsekvo kiel la mia.
- La bona kopio, superskribita de malplena. WhatsApp diras ke ĝi ne sukcesas legi la historion, «restarigas» ĝin malplena, kaj la sekva aŭtomata kopio superskribas la bonan (Apple Community, 2017, kun 508 «ankaŭ al mi»).
- En iPhone, same. Kopio de 8,3 GB en iCloud, kun konversacioj ekde 2012 kun gepatroj jam mortintaj, kaj WhatsApp diras ke ne ekzistas kopio, ankaŭ en alia iPhone (Reddit, aprilo 2025). Babilejoj restarigitaj, sed sen 14 GB da fotoj kaj filmetoj (Apple Community, 2020).
La 99 % estas konata eraro. La «Finante 99 %», kiu okazis al mi, aperas jaron post jaro. En 2021, WABetaInfo, la retejo kiu atente sekvas ĉiun version de WhatsApp, jam klarigis, ke en Android la restarigo ofte blokiĝis ĉe 99 % (majo 2021). Kelkajn monatojn poste, pri la restarigoj blokitaj ĉe 100 %, ĝi aldonis, ke post unu jaro la kaŭzo ankoraŭ estis nekonata kaj ke la uzanto ne havis alian elekton ol rezigni kaj perdi la tutan historion (oktobro 2021). Okazis ondoj. En junio 2023 la aplikaĵo devigis restarigi kaj poste pendiĝis (Hacker News; Canaltech). En februaro 2025, en telefonoj Galaxy S25, la restarigoj fiaskis «ĉe 99 %» (XDA). En marto 2025, la revuo heise raportis pri multaj plendoj pro restarigoj el Google Drive kiuj ne finiĝis, kun risko perdi historiojn, fotojn kaj filmetojn (ankaŭ en italaj kaj germanaj forumoj). En iPhone, ĝisdatigo de 2023 malebligis restarigi el iCloud, kaj oni korektis ĝin sen mencii tion en la versinotoj (WABetaInfo). Ankoraŭ en 2026, redaktoro de la hispana retejo Xataka skribis, ke la sekurkopio de WhatsApp «ne ĉiam funkcias ĝuste kaj emas erari (tio ofte okazas al mi)» (Xataka Móvil). Kaj kiam ĝi fiaskas, Google kaj WhatsApp ĵetas la respondecon unu al la alia: al kazo de blokiĝo ĉe 99 %, volontula eksperto de la forumo de Google Drive respondis, ke ili ne povas helpi restarigi kopiojn de WhatsApp (Google Drive Community, 2023).
La kaŭzo ne ĉiam estas la kopio. Dum la ondo de la Galaxy S25 en 2025, la tutmonda komunuma respondeculo de Samsung konfirmis al la uzantoj, ke WhatsApp konis la restarigan problemon en tiuj telefonoj kaj laboris pri ĝi (Samsung Members Brazilo). Uzanto tie klarigis, ke la restarigo fiaskis ĉe 49 % kaj ke li perdis ĉion. En aŭgusto 2026, iu konstatis, ke la sama kopio en Google Drive, kiu denove kaj denove fiaskis en S25, restariĝis senprobleme en alia telefono (Samsung Members Barato). Alivorte, «via kopio estas difektita» ne estas la sola ebla klarigo, kvankam ĝi estas la ŝablona respondo.
En Brazilo necesis la juĝejoj. En 2023, juĝejo en Kuritibo kondamnis Facebook pagi al uzanto 3 000 realojn pro fiasko de la WhatsApp-kopio kaj reakiri liajn datumojn ene de 15 tagoj (Migalhas). En 2021, la ŝtata kortumo de San-Paŭlo jam kondamnis Apple pagi 5 000 realojn al uzanto, kiu perdis sian WhatsApp-kopion post ĝisdatigo de iOS (MacMagazine). En 2026, uzantino el Rio-de-Ĵanejro plendis en Reclame Aqui, la granda brazila retejo por plendoj de konsumantoj, ke la restarigo pendiĝis ĉe 66 % kaj ke poste la kopio ne plu ekzistis, nek en Google Drive nek en la telefono. Inter la perditaj konversacioj estis kelkaj kun homoj jam mortintaj. WhatsApp eĉ ne respondis (Reclame Aqui). Olhar Digital, brazila teknologia retejo, resumis tion jene: «Ne ekzistas redundo, des malpli protekto kontraŭ fiaskoj. Se oni perdas la kopion, ne plu eblas reakiri ĝin» (Olhar Digital, 2024).
Kaj ne ĉio estas anekdotoj. La oficiala helpo de WhatsApp agnoskas, ke la babilejoj enhavas karajn memorojn kaj ke perdi ilin estas angorige; ke kopio povas difektiĝi kaj ke WhatsApp nek povas restarigi ĝin nek scii kial ĝi difektiĝis; kaj ke la Google-konto konservas nur unu kopion por ĉiu telefonnumero, kaj ĉiu nova kopio superskribas la antaŭan. La gvidilo de Google por transigi WhatsApp al nova telefono avertas, ke WhatsApp ne garantias, ke la babilejoj kaj datumoj estos ĝuste transigitaj. Tamen ĝi ankaŭ asertas, ke WhatsApp ne forigas la datumojn dum transigo kaj ke nenio perdiĝas se okazas eraro. En mia kazo, kaj en tiu de la sep jaroj supre, okazis ĝuste tio.
Ekzistas ankaŭ eraroj dokumentitaj de esploristoj. En 2019, Check Point trovis mesaĝon kiu igis WhatsApp senĉese kraŝi kaj devigis forigi la grupon kun ĝia tuta historio (The Register). Tio jam estas korektita, sed ĝi pruvas ke programeraro povas porĉiame forigi historion.
Kion mi farus nun
- Aktivigi la fin-al-fine ĉifritan sekurkopion kun la 64-cifera ŝlosilo, kaj konservi la ŝlosilon. WhatsApp proponas tri modalojn (pasŝlosilo, pasvorto aŭ 64-cifera ŝlosilo); tiu de 64 cifero estas la sola en kiu vi havas la ŝlosilon en la mano. Per ĝi, liberaj iloj kiel wa-crypt-tools povas malĉifri la sekurkopion sen peti ion de iu ajn.
- Eltiri kopiojn eksteren de la telefono periode. Datumbazo kaj aŭdvidaĵoj, konservante plurajn generaciojn kaj ne lasante WhatsApp decidi kiam ili estas forviŝataj. Ekzemple, per Termux, SSH kaj
rsync. Tion mi faras de tiam (mi rakontas tion tuj sekve). - Ne lasi ke iu ajn migrad-asistanto tuŝu la solan kopion kiun vi havas. La malnovan telefonon oni ne tuŝas ĝis la nova funkcias tute.
- Ne atendi ion de la subteno. En mia kazo, la sola homo kiu legis ĝin promesis ion kion li ne plenumis.
Kiel mi havas ĝin aranĝita nun
De tiam, WhatsApp ne plu estas la sola gardanto de mia historio. Mi havas aktivigitan la fin-al-fine ĉifritan sekurkopion kun la 64-cifera ŝlosilo, kaj la ŝlosilon havas mi.
Ĉiufoje kiam la telefono faras la sekurkopion, principe unufoje tage, okazas ĉi tio:
- Skripto en la telefono (en Termux) kopias per
rsyncla WhatsApp-dosierujon al servilo mia, Raspberry Pi. Tien iras la datumbazoj kaj la aŭdvidaĵoj. Kio malaperas el la telefono ne estas forviŝata en la servilo: ĝi estas konservata aparte. - La servilo malĉifras la sekurkopion per mia ŝlosilo kaj kontrolas la integrecon de la datumbazo (
PRAGMA integrity_check). Tiu kontrolo estus detektinta la duobligitan vicon de 2024 en la sama tago kiam ĝi aperis. Ĝi ne estas prov-restarigo en WhatsApp, kiu daŭre estas neebla, sed ĝi garantias ke la datumoj estas integraj kaj legeblaj. - Ĝi kopias la datumbazon tabelon post tabelo en SQL-dosierojn kaj faras enmetadon (commit) en Git-deponejo. Ĉiu sekurkopio restas kiel versio: mi povas reveni al iu ajn tago, vidi kio ŝanĝiĝis aŭ reakiri forviŝitan mesaĝon.
- Ĝi publikigas la skemon de la datumbazo, kiu ŝanĝiĝas kun la versioj de WhatsApp, en publika deponejo: rsalinas/whatsapp-db-schema. Ĉiu enmetado estas detektita skem-ŝanĝo.
- Ĝi ĝisdatigas propran retan rigardilon, kie mi legas mian tutan historion, la reakiritan kaj la aktualan, sen dependi de la aplikaĵo de WhatsApp.
- Ĝi sendas al mi retleteron kun la rezulto: «farita» aŭ «malsukcesa».

Figura 2
La ecojn de la supra tabelo kiujn WhatsApp ne proponas (versioj, kontrolado, legado per aliaj iloj, parta reakiro) mi devis fari mem. La kodon mi ne publikigas, sed la ideon povas reprodukti iu ajn homo kun iom da Linukso.
Per ĉi tiu sistemo, WhatsApp povus forpreni de mi morgaŭ la eblon fari novajn sekurkopiojn: ŝanĝi la formaton, retiri la 64-ciferan ŝlosilon aŭ fermi mian konton. Sed kion mi jam elŝutis estas mia. Pri mia historio mi havas, finfine, suverenecon.
Kaj temas ne nur pri trankvilo. Tiuj datumoj utilis al mi por multaj aferoj. Kun helpo de IA mi faris al mi aplikaĵon kiu permesas al mi konsulti mian mesaĝ-deponejon en multaj manieroj kaj eltiri ekstraktojn taŭgajn por IA, por peti resumojn de konversacio, de grupo aŭ de epoko.
Konkludo
WhatsApp preskaŭ igis min perdi dek unu jarojn da konversacioj: kun la familio kaj aliaj amataj homoj, kun amikoj, pri laboro, pri asocioj. Mesaĝ-historio ne plu estas «datumoj»: ĝi estas persona korespondado, voĉnotoj, fotoj, memoro. Kiam malaperas la mesaĝoj de iu, kiu jam mortis, la esploristino Debra Bassett, kiu studas funebron kaj ciferecan heredaĵon, nomas tion «dua perdo» (The Conversation).
Ĝi ne estis akcidento mia. La kaŭzo estis ĉeno da eraroj de ilia programaro: sekurkopio kiu ne estis kontrolata, restarigo kiu mortis ĉe 99%, migrado kiu detruis la fonton kaj subteno kiu ne aŭskultis.
Mi reakiris ĉion ĉar mi scias rootigi telefonon, kapti ŝlosilon kaj legi SQLite-datumbazon. La plimulto de la homoj ne scias tion. Por la plimulto, ĉi tiu historio estus finiĝinta la 2-an de marto kun malplena konto kaj la konkludo «mi perdis dek unu jarojn da WhatsApp». Se la datumoj ekzistas sed nur specialisto povas reakiri ilin, kiugrade la sekurkopio plenumis sian funkcion?
La problemo ne estas la ĉifrado. Ke WhatsApp ne povu legi miajn konversaciojn estas bona eco. La problemo estas ke konfidenceco kaj reakirebleco estas malsamaj aferoj, kaj la dezajno oferas la duan senbezone: kontrolebla sekurkopio, prov-restarigo, parta reakiro aŭ ŝlosilo en la manoj de la uzanto ne farus la konversaciojn malpli privataj.
La datumoj ĉiam estis miaj. La ŝlosilo, ne.
Aldono: kompleta kronologio
Lokaj horoj (Hispanio). «Mi» signifas retleteron mian; «WA», respondon de WhatsApp. Grase, la faktoj kiuj ne estas retleteroj.
| Dato | Horo | Kiu | Kio |
|---|---|---|---|
| 16/11/2012 | Unua mesaĝo de la historio kiu perdiĝos. | ||
| 13-15/01/2024 | Ĉiutagaj lokaj sekurkopioj; mi kopias la WhatsApp-dosierujon al la komputilo per adb. Unuaj provoj restarigi en la Pixel 8. |
||
| 15-16/01 | Mi | El la aplikaĵo: mi ne povas restarigi la sekurkopion en la Pixel 8; mi forviŝis la kopion el Drive por ke ĝi regeneriĝu kaj mi refabrikigis la telefonon. | |
| 16/01 | 09:55 | WA | Instrukcioj por transiri de Android al iPhone. «No es posible combinar el historial antiguo con el nuevo.» |
| 16/01 | 22:49 | WA | Kontentec-enketo. |
| 18/01 | 10:07 | Lasta mesaĝo de la malnova historio. | |
| 18/01 | 10:49 | Lasta sekurkopio en Google Drive (20,5 GB). La transdono per Wi-Fi malsukcesas kaj nevalidigas la datumbazon de la malnova telefono. | |
| 18/01 | 14:40 | WA | «Reproduce el problema y envía los registros.» |
| 18/01 | 19:22 | Mi | Raporto el la aplikaĵo, kun protokoloj kaj ekrankopioj. |
| 18/01 | 19:24 | WA | Ĝisdatigu Google Play Services. |
| 19/01 | 10:08 | Mi | Ĝi jam estas ĝisdatigita; ĝi malsukcesas same. Ĉu povas esti io kion la sekurkopio ne kontrolas kaj la restarigo jes? |
| 19/01 | 14:43 | WA | La grandaj sekurkopioj bezonas tempon por elŝutiĝi. |
| 22/01 | 09:20 | Mi | El la aplikaĵo, en la angla: mi daŭre ne povas restarigi. |
| 22/01 | 14:19 | WA | La datumbazo estas koruptita (pro interrompo aŭ perforta fermo). |
| 22/01 | 16:06 | Mi | Mi interrompis nenion. Mi proponas la 30-gigabajtan kopion de la telefonmemoro. |
| 22/01 | 16:11 | WA | Ne eblas fari sekurkopion el WhatsApp Web. «No podemos ayudarte a restaurar tus chats.» |
| 22/01 | 16:15 | Mi | La kopio estas de la telefonmemoro. Ĉu ĝi estas reuzebla? |
| 22/01 | 16:22 | WA | «Ya respondimos tu pregunta»; sendu ekrankopion aŭ videon. |
| 22/01 | 16:42 | Mi | «¿Me está atendiendo un sistema automatizado de IA?» Kompleta rakonto kaj peto pri eskalado. |
| 22/01 | 17:53 | WA | Koruptita datumbazo (sama teksto). |
| 23/01 | 09:08 | Mi | La rakonto en la angla: «Please escalate this.» |
| 24/01 | 09:21 | Mi | Mi plusendas la rakonton al la subtena adreso de Android. |
| 25/01 | 14:47 | Mi | El la aplikaĵo: ĉu mi povas sendi al ili la datumojn por ke ili riparu ilin? |
| 29/01 | 10:08 | Mi | «Please decrypt my msgstore.db.crypt14»: la ŝlosilon, aŭ ke ili malĉifru ĝin. |
| 29/01 | 17:29 | WA (homo) | Transdonas la kazon al Produkto. La ŝlosilo ne estas kunhavigebla. Root ne estas konsilinda. Promesas novaĵojn. |
| 29/01 | 22:20 | Mi | Dankesprimo. |
| 05/02 | 12:22 | Mi | Unu semajno sen novaĵoj; preskaŭ tri semajnoj sen WhatsApp. |
| 10/02 | 17:59 | Mi | El la aplikaĵo, en la malnova telefono: nun la aplikaĵo mortas. |
| 13/02 | 17:07 | Mi | Mi provas WhatsApp Business: la sama eraro. |
| 13/02 | 17:10 | WA | La konto estas aktiva kaj havas nenian problemon. |
| 13/02 | 17:58 | Mi | La problemo estas ke mi ne povas restarigi dek jarojn da mesaĝoj. |
| 13/02 | 17:59 | WA | Kiu estas la telefonnumero? |
| 13/02 | 18:11 | Mi | La numero (ĝi jam estis en la protokoloj). Mi petas nur ke oni malĉifru la datumbazon. |
| 13/02 | 18:14 | WA | La konto estas aktiva kaj havas nenian problemon. |
| 13/02 | 18:15 | Mi | «Parece que me esté contestando una IA como un disco rayado.» |
| 13/02 | 18:16 | WA | Malinstalu, reinstalu kaj tuŝu «Restarigi». Ni ne povas helpi vin. |
| 13/02 | 18:25 | Mi | Al la homo de la 29/01: ĉu la Produkta teamo rigardis la kazon? |
| 13/02 | 18:25 | WA | La sama ŝablono pri reinstalado. |
| 14/02 | 06:23 | WA | Kontentec-enketo. |
| 14/02 | 06:39 | WA | Kontentec-enketo. |
| 19/02 | 10:29 | Mi | El la aplikaĵo: la restarigo mortas. Mi pretas pagi. |
| 19/02 | 12:04 | WA | Sendu videon. |
| 20/02 | 21:20 | Mi | La videon, en YouTube. |
| 20/02 | 21:24 | WA | La grandaj sekurkopioj bezonas tempon por elŝutiĝi. |
| 20/02 | 21:33 | Mi | Ke homo rigardu ĝin. Mi provis en tri telefonoj. |
| 20/02 | 21:34 | WA | Kiel restarigi lokan sekurkopion renomante dosierojn. |
| 29/02 | Mi publikigas la kazon en Reddit. | ||
| 01/03 | 12:12 | Mi | Dek tagoj sen respondo. Mi ligas la Reddit-fadenon kaj denove petas ke oni malĉifru la datumbazon. |
| 01/03 | 12:14 | WA | Klarigo pri la fin-al-fina ĉifrado: «ni siquiera WhatsApp». |
| 01/03 | 12:17 | Mi | Ne konfuzu la ĉifradon en trafiko kun tiu de la loka datumbazo. |
| 01/03 | 12:36 | WA | Ni ne havas sufiĉajn informojn: numero, modelo, paŝoj, video. |
| 01/03 | 12:48 | Mi | Vi jam havas ĉion, ankaŭ en la video. |
| 01/03 | 12:53 | WA | Sendu videon. |
| 01/03 | 13:00 | Mi | Mi kunsendas la videon: ilia servilo resaltigas ĝin (limo de 20 MB). |
| 01/03 | 13:11 | Mi | Kiel do mi sendu ĝin? |
| 01/03 | 13:17 | WA | Ni ne ricevis la kunsendaĵon; la limo estas 100 MB. |
| 01/03 | 13:20 | Mi | La video reduktita al ĉirkaŭ 5 MB. |
| 01/03 | 13:38 | WA | La grandaj sekurkopioj bezonas tempon por elŝutiĝi. |
| 01/03 | 15:26 | Mi | Logcat en Xiaomi Mi A1: SQLiteException: Unable to open writable db. La dosiero havas 1.048.578.748 bajtojn: ĉu estas grandec-limo? |
| 01/03 | 15:28 | WA | Reproduktu la problemon kaj sendu la protokolojn. |
| 02/03 | 10:54 | Lasta provo restarigi, en la malnova telefono. Komencas enveni la pendantaj mesaĝoj. | |
| 02/03 | 11:16 | Ĝi malsukcesas denove. Mi tuŝas «Preterlasi»: nova konto, sen historio. Fino de la 44 tagoj sen WhatsApp. | |
| 04/03 | 08:06 | Mi | Novaj protokoloj, la indico de la 1000 MB kaj propono pagi. |
| 04/03 | 08:07 | WA | Aŭtomata ricevkonfirmo. |
| 04/03 | 11:04 | WA | Koruptita datumbazo. |
| 04/03 | 11:44 | Mi | La sekurkopio ne estis interrompita. Ĉu estas grandec-limo? Mi petas nur la ŝlosilon. |
| 04/03 | 11:48 | WA | «Ya respondimos tu pregunta»; sendu ekrankopion aŭ videon. |
| 04/03 | 11:51 | Mi | Mi bezonas ke homo prizorgu min. |
| 04/03 | 11:57 | WA | La grandaj sekurkopioj bezonas tempon por elŝutiĝi. |
| 04/03 | 12:58 | Mi | Mi bezonas ke homo prizorgu min. |
| 05/03 | 01:05 | WA | Kontentec-enketo. Lasta mesaĝo de WhatsApp. |
| 13/03 | Per telefono kun root-atingo mi akiras la ŝlosilon kaj malĉifras la sekurkopion de la 18/01: 1.701.082 mesaĝoj. |