Pusisin pikalt ülesandega, kuidas saada telefonist /data/data kataloogist asju kätte ilma, et peaks seadet rootima hakkama. Leidsin ühe võimaluse. Siin on küll miljon “aga”, kuid sain oma asjad aetud.
- peab olema arvutisse installitud adb ja kasutatava seadme sobilikud draiverid – olemas
- tuleb seadmes lubada “usb debugging” (usb silumine) – tehtud
- peab olema app (mille kataloogis vaja sobrada), kus on android manifestis <application> sektsiooni lisatud android:debuggable=”true”. Loomulikult tuleb see app ka installida seadmesse – ka olemas
Ühenda oma seade arvutiga. Käivita kataloogis, kus asub adb, command prompt ning sisesta:
D:android-sdk-windowsplatform-tools>adb shell
Seejärel käivita shell oma programmi õigustes:
$ run-as oma programmipaketi nimi (com.misiganes)
kui selleks ajaks mingit veateadet pole saanud, siis järelikult edeneb kõik plaanipäraselt 🙂 Nüüd teeme kindlaks, mis nimelised need asjad on, mida vaja kopeerida. Mul oli konkreetselt vaja andmebaase, mille nimeks on kasutajanimest genereeritud koodijupp. Selleks piilume korra kataloogi sisse:
$ ls /data/data/oma programmipaketi nimi/databases
Vastuseks sain, et seal kataloogis istub 2 baasi:
kasutajad
tellikma_1334069097146
Nüüd võiks siis kasutada “pull” käsku? Tutkit brat – selle jaoks on vaja root õigust aga seda meil ju pole… Toimivaks lahenduseks osutus hoopis cat.
$ cat /data/data/oma programmipaketi nimi/databases/kasutajad > /sdcard/kasutajad
Kogu lugu. Edasiseks saad juba seadme sdcardi juurikast kätte failid, mida sinna just tekitatud sai. Sedasi saab ilmselt ka muid asju /data/data’st kätte eeldusel, et sul on võimalus adb shell vastava programmi õigustes käivitada. Selle eelduseks on omakorda ligipääs programmi sortsule, et teha debuggable installikas. Seega ei kõlba see juhend suvalise programmi tagahoovis kolamiseks.
Miks ma selle siia siis kõik kirja panin? Ikka enda jaoks, kui juhtumisi veel peaks seda vaja minema, siis hoiaks juba pikki tunde kokku. Ja võib-olla tekib kellegil samasugune vajadus, lisaks olukord, kus seadme rootimine ei tule kõne alla (kliendi seade, mille garantiiga mängida ei saa).