JavascriptProva

mercoledì 2 novembre 2016

Prime esperienze di navigazione all'interno dell'emulatore con adb.

Un po' di adb e sintassi del Linux.
Vorrei strappare il database al cellulare non rootato, e forse mediante adb c'è modo di farlo.

Però devo imparare a usare adb.

Vediamo:
c:\Users\Antonello\AppData\Local\Android\sdk\platform-tools>adb devices
List of devices attached
emulator-5554   device


c:\Users\Antonello\AppData\Local\Android\sdk\platform-tools>
Ottengo un elenco dei dispositivi cui sono collegato. Al momento c'è solo l'emulatore. Ora attacco anche il cellulare.
c:\Users\Antonello\AppData\Local\Android\sdk\platform-tools>adb devices
List of devices attached
emulator-5554   device


c:\Users\Antonello\AppData\Local\Android\sdk\platform-tools>adb devices
List of devices attached
52036bacee7b833d        device
emulator-5554   device


c:\Users\Antonello\AppData\Local\Android\sdk\platform-tools>
Ecco prima e dopo aver attaccato il cellulare.
Vado sul cellulare
c:\Users\Antonello\AppData\Local\Android\sdk\platform-tools>adb -s 52036bacee7b833d shell
shell@a3xelte:/ $
Ora provo ad andare sull'emulatore:
c:\Users\Antonello\AppData\Local\Android\sdk\platform-tools>adb -s 52036bacee7b833d shell
shell@a3xelte:/ $ exit

c:\Users\Antonello\AppData\Local\Android\sdk\platform-tools>adb -s emulator-5554 shell
root@generic_x86_64:/ #
Sono uscito dal cellulare e sono entrato sull'emulatore.

Ora, dal momento che l'emulatore è rootato per definizione, posso aprirmi ADM (Android Device Monitor) e snavigazzare allegramente fra le directory dell'emulatore con i comandi Linux confrontando il mio percorso con il filesystem del dispositivo.

Tools->Android->Android Device Monitor

Eccolo.
Vediamo dove mi trovo...
Do il comando ls e ottengo:
127|root@generic_x86_64:/ # ls
acct
cache
charger
config
d
data
default.prop
dev
etc
file_contexts
fstab.goldfish
fstab.ranchu
init
init.environ.rc
init.goldfish.rc
init.ranchu.rc
init.rc
init.trace.rc
init.usb.rc
init.zygote32.rc
init.zygote64_32.rc
mnt
proc
property_contexts
root
sbin
sdcard
seapp_contexts
selinux_version
sepolicy
service_contexts
storage
sys
system
ueventd.goldfish.rc
ueventd.ranchu.rc
ueventd.rc
vendor
Confronto con un'immagine da ADM:



Ecco, praticamente sono qui.
Uso il comando pwd per vedere dove mi trovo:
root@generic_x86_64:/ # pwd
/
root@generic_x86_64:/ #
Sto praticamente nella directory radice. Prima avevo provato a fare qualcosa del genere con il cellulare e mi diceva che mi trovavo su sdcard... ma il cellulare non è rootato.

Ora voglio andare su sdcard. Come fare? Una mezza idea ce l'ho, vediamo se è giusta...
root@generic_x86_64:/ # cd ./sdcard/
root@generic_x86_64:/sdcard # ls
Alarms
Android
DCIM
Download
LOST.DIR
Movies
Music
Notifications
Pictures
Podcasts
Ringtones
root@generic_x86_64:/sdcard #
Confronto:



Ecco. C'è però un'anomalia.
Con ADM sdcard risulta vuota, e devo andare su storage/sdcard per ottenere l'accesso.
Lo desumo da questo:

...leggendo la dicitura a destra ->storage/sdcard.

E se provo ad andare su storage/sdcard con linux?
root@generic_x86_64:/ # cd ./storage/sdcard/
root@generic_x86_64:/storage/sdcard # ls
Alarms
Android
DCIM
Download
LOST.DIR
Movies
Music
Notifications
Pictures
Podcasts
Ringtones
root@generic_x86_64:/storage/sdcard
E' la stessa cosa.


Ora provo ad andare sulla directory del database di un'applicazione.
root@generic_x86_64:/ #
root@generic_x86_64:/ # ls
acct
cache
charger
config
d
data
default.prop
dev
etc
file_contexts
fstab.goldfish
fstab.ranchu
init
init.environ.rc
init.goldfish.rc
init.ranchu.rc
init.rc
init.trace.rc
init.usb.rc
init.zygote32.rc
init.zygote64_32.rc
mnt
proc
property_contexts
root
sbin
sdcard
seapp_contexts
selinux_version
sepolicy
service_contexts
storage
sys
system
ueventd.goldfish.rc
ueventd.ranchu.rc
ueventd.rc
vendor
root@generic_x86_64:/ #
Bene, vado in /data/:
root@generic_x86_64:/ # cd ./data/
root@generic_x86_64:/data # ls
adb
anr
app
app-asec
app-lib
app-private
backup
bugreports
dalvik-cache
data
dontpanic
drm
local
lost+found
media
mediadrm
misc
nativebenchmark
nativetest
nativetest64
property
resource-cache
security
system
tombstones
user
root@generic_x86_64:/data #
Vado nella seconda directory data e faccio la lista dei files contenuti:
root@generic_x86_64:/data # cd ./data/
127|root@generic_x86_64:/data/data # ls
com.android.backupconfirm
com.android.browser
com.android.calculator2
com.android.calendar
com.android.camera
com.android.captiveportallogin
com.android.certinstaller
com.android.contacts
com.android.customlocale2
com.android.defcontainer
com.android.deskclock
com.android.development
com.android.development_settings
com.android.dialer
com.android.documentsui
com.android.dreams.basic
com.android.email
com.android.emulator.smoketests
com.android.exchange
com.android.externalstorage
com.android.fallback
com.android.gallery
com.android.gesture.builder
com.android.htmlviewer
com.android.inputdevices
com.android.inputmethod.latin
com.android.keychain
com.android.location.fused
com.android.managedprovisioning
com.android.mms
com.android.mms.service
com.android.music
com.android.netspeed
com.android.packageinstaller
com.android.pacprocessor
com.android.phone
com.android.printspooler
com.android.protips
com.android.providers.calendar
com.android.providers.contacts
com.android.providers.downloads
com.android.providers.downloads.ui
com.android.providers.media
com.android.providers.settings
com.android.providers.telephony
com.android.providers.userdictionary
com.android.proxyhandler
com.android.sdksetup
com.android.server.telecom
com.android.settings
com.android.sharedstoragebackup
com.android.shell
com.android.smoketest
com.android.smoketest.tests
com.android.soundrecorder
com.android.speechrecorder
com.android.systemui
com.android.vending
com.android.vpndialogs
com.android.wallpaper.livepicker
com.android.webview
com.android.widgetpreview
com.example.android.apis
com.example.android.livecubes
com.example.android.softkeyboard
com.example.antonello.agendina
com.example.antonello.j_communicator
com.example.imagecom
com.google.android.apps.maps
com.google.android.gms
com.google.android.googlequicksearchbox
com.google.android.gsf
com.google.android.gsf.login
com.google.android.launcher
com.google.android.play.games
com.google.android.street
com.svox.pico
jp.co.omronsoft.openwnn
root@generic_x86_64:/data/data #
Praticamente vi sono elencati i packages.
Vado sul package che mi interessa:
root@generic_x86_64:/data/data # cd ./com.example.antonello.j_communicator/
root@generic_x86_64:/data/data/com.example.antonello.j_communicator # ls
cache
databases
lib
no_backup
shared_prefs
root@generic_x86_64:/data/data/com.example.antonello.j_communicator #
ecco la cartella dei database.
Ci vado.
1|root@generic_x86_64:/data/data/com.example.antonello.j_communicator #
cd ./databases/
root@generic_x86_64:/data/data/com.example.antonello.j_communicator/databases # ls
database.db
database.db-journal
root@generic_x86_64:/data/data/com.example.antonello.j_communicator/databases #
Ed ecco smascherato il mio file database.

E per il momento ci accontentiamo di questo.

Nessun commento:

Posta un commento