Δευτέρα, 7 Αυγούστου 2017

Android Basics | Τι είναι το ADB και πώς το χρησιμοποιώ; [Παραδείγματα]


Από όλα τα εργαλεία που υπάρχουν στο Android και μας επιτρέπουν να το παραμετροποιήσουμε αλλά και να σώσουμε τη συσκευή μας σε περίπτωση λάθους, το σημαντικότερο είναι το ADB. Πρόκειται για ένα binary με το οποίο δίνουμε εντολές από το τερματικό του υπολογιστή μας και διαθέτει μία πολύ μεγάλη γκάμα επιλογών για να κάνουμε ότι θέλουμε πραγματικά στο λειτουργικό μας σύστημα. Σήμερα λοιπόν θα δούμε αυτές που ενδέχεται να χρειαστούμε κάποια στιγμή στο μέλλον, μερικές από τις οποίες είναι ιδιαίτερα χρήσιμες.

Τι ακριβώς μπορούμε να κάνουμε με το ADB;

  • Να εγκαταστήσουμε / απεγκαταστήσουμε εφαρμογές αλλά και ενημερώσεις του συστήματος.
  • Να κάνουμε backup ολόκληρου του συστήματος.
  • Να συγχρονίσουμε φακέλους μεταξύ του υπολογιστή και του κινητού μας.
  • Να μεταφέρουμε / αντιγράψουμε / διαγράψουμε αρχεία στη συσκευή μας.
  • Να επανεκκινήσουμε τη συσκευή μας σε Bootloader ή Revovery mode.

Δεν είναι δηλαδή κάτι το οποίο χρησιμοποιούμε στην καθημερινότητά μας, αλλά μπορεί να μας δώσει λύσεις σε περιπτώσεις που το Android δε λειτουργεί σωστά.

Προϋποθέσεις

Για να χρησιμοποιήσουμε το ADB στον υπολογιστή μας, θα πρέπει:

  • να κατεβάσουμε τα Platform Tools (ADB & Fastboot) στον υπολογιστή μας και να τα αποσυμπιέσουμε σε κάποιο φάκελο.
  • Αν χρησιμοποιούμε Windows θα πρέπει να έχουμε επίσης τον ADB driver της συσκευής μας.
  • Να ενεργοποιήσουμε τον 'Εντοπισμό σφαλμάτων USB' στο κινητό μας.
  • Να ανοίξουμε ένα τερματικό μέσα στο φάκελο που βρίσκεται το ADB (Shift + δεξί κλικ).

Σύνδεση

Ένα από τα πρώτα πράγματα που πρέπει να τσεκάρουμε, είναι ότι ο ADB 'Εντοπισμό σφαλμάτων USB' τρέχει σωστά στον υπολογιστή μας και ότι η συσκευή μας αναγνωρίζεται κανονικά από αυτόν. Σημαντικό είναι να γνωρίζουμε ότι το ADB λειτουργεί πλήρως μόνο όταν η συσκευή μας βρίσκεται σε... Android mode. Λειτουργεί όμως και σε Recovery mode όταν αυτή που έχουμε εγκαταστήσει το υποστηρίζει, ενώ σε μερικές συσκευές που πάσχουν από... Bootloop, δουλεύει όταν βρίσκονται κολλημένες στο Bootanimation!

Συνδέουμε λοιπόν τη συσκευή μας μέσω USB στον υπολογιστή και δίνουμε την ακόλουθη εντολή για να μάθουμε αν όλα είναι σωστά στημένα:

adb devices

Η συσκευή μας θα ρωτήσει αν επιτρέπουμε τη σύνδεση και στο τερματικό θα εμφανιστεί ένας σειριακός αριθμός για επιβεβαίωση. Στην περίπτωση που δεν εμφανίζεται αυτός ο αριθμός, θα πρέπει να εγκαταστήσουμε ξανά τον driver ή να αλλάξουμε θύρα USB στον υπολογιστή μας, μετά από αυτό μπορούμε να σταματήσουμε το ADB με την εντολή:

adb kill-server

και να το εκκινήσουμε ξανά με την εντολή:

adb start-server

Αυτές είναι και οι βασικές εντολές σύνδεσης του υπολογιστή μας με μία Android συσκευή, οπότε προχωράμε σε μερικά παραδείγματα, τα οποία είναι πολύ χρήσιμα για διάφορους λόγους.

Διαφήμιση
Διαφήμιση

Επανεκκίνηση / Είσοδος σε άλλα Mode

Με το ADB μπορούμε να κάνουμε επανεκκίνηση σε μία συσκευή που έχει κολλήσει ή να μπούμε σε Bootloader, Recovery mode σε περίπτωση που δε γνωρίζουμε τον κατάλληλο συνδυασμό πλήκτρων.

Για να κάνουμε απλή επανεκκίνηση δίνουμε την εντολή:

adb reboot

Για να μπούμε σε Bootloader / Fastboot Mode δίνουμε την εντολή:

adb reboot-bootloader

Για να μπούμε σε Recovery mode δίνουμε την εντολή:

adb reboot recovery

Μπορούμε τέλος να μπούμε και σε Sideload Mode για να εγκαταστήσουμε χειροκίνητα ένα OTA update. Αυτό γίνεται με την εντολή:

adb reboot sideload

Εγκατάσταση / απεγκατάσταση εφαρμογών και αρχείων

Με το ADB μπορούμε επίσης να εγκαταστήσουμε μία εφαρμογή από τον υπολογιστή στο κινητό μας τηλέφωνο, να απεγκαταστήσουμε όσες δε χρειαζόμαστε, αλλά και να εγκαταστήσουμε OTA αναβαθμίσεις!

Αν έχουμε για παράδειγμα την εφαρμογή 'xxx.apk', την τοποθετούμε στον ίδιο φάκελο με το ADB και για να την εγκαταστήσουμε δίνουμε την εντολή:

adb install xxx.apk

Αν αυτή η εφαρμογή υπήρχε ήδη στη συσκευή μας και θέλουμε να την αναβαθμίσουμε σε νεότερη έκδοση, δίνουμε την εντολή:

adb install -r xxx.apk

Μπορούμε επίσης να εγκαταστήσουμε την εφαρμογή απ' ευθείας στην κάρτα SD, αν το επιτρέπει η ROM μας. Για αυτό το σκοπό δίνουμε την εντολή:

adb install -s xxx.apk

Για να απεγκαταστήσουμε τώρα μια εφαρμογή δίνουμε την εντολή:

adb uninstall xxx.apk

Αν θέλουμε να την απεγκαταστήσουμε αλλά να κρατήσουμε τα δεδομένα της στη συσκευή (αρχεία ρυθμίσεων, save file), δίνουμε την εντολή:

adb uninstall -k xxx.apk

Μπορούμε τέλος να εγκαταστήσουμε μία OTA αναβάθμιση για να κάνουμε χειροκίνητα update στη συσκευή μας. Αυτό γίνεται με την εντολή 'sideload', την οποία μπορούμε να χρησιμοποιήσουμε στο ομώνυμο mode. Αν υποθέσουμε ότι το αρχείο της αναβάθμισης ονομάζεται 'ota.zip', τότε η εντολή που πρέπει να δώσουμε είναι η εξής:

adb sideload ota.zip

Διαφήμιση
Διαφήμιση

Μεταφορά & συγχρονισμός αρχείων

Το ADB μπορεί να κάνει και μεταφορές αρχείων από και προς τη συσκευή μας. Αν θέλουμε για παράδειγμα να να στείλουμε το αρχείο 'doctor.pdf' στο φάκελο 'Downloads' της συσκευής μας, το τοποθετούμε στον ίδιο φάκελο με αυτόν που βρίσκεται το ADB και δίνουμε την εντολή:

adb push doctor.pdf /sdcard/Downloads

Αν τώρα θέλουμε να βγάλουμε κάτι από τη συσκευή μας, για παράδειγμα το φάκελο 'sdcard' που περιέχει όλα τα αρχεία μας, πρέπει να δώσουμε την εντολή:

adb pull /sdcard/

Τέλος ενδέχεται να θέλουμε να έχουμε δύο συγχρονισμένους φακέλους, έναν στον υπολογιστή και έναν στο κινητό, οι οποίοι θα περιέχουν τα ίδια αρχεία. Θέλουμε για παράδειγμα να συγχρονίσουμε τη μουσική που έχουμε στο φάκελο 'Music' του υπολογιστή με τον αντίστοιχο φάκελο που υπάρχει στη συσκευή μας. Αυτό γίνεται με την εντολή:

adb-sync ~/Music/ /sdcard/Music

Με αυτό τον τρόπο μπορούμε να προσθέτουμε νέα κομμάτια στο φάκελο του υπολογιστή μας και να τα συγχρονίζουμε με αυτή την εντολή με το κινητό μας. Σε ένα άλλο παράδειγμα ίσως θα θέλαμε να παίρνουμε συχνά ένα backup του φακέλου 'DCIM' που περιέχει όλες τις φωτογραφίες μας. Αυτό μπορεί να γίνει με την εντολή:

adb-sync --reverse /sdcard/DCIM /Η/διαδρομή/του/φακέλου/Photos/

Τέλος μπορεί να κάναμε ένα ξεκαθάρισμα στο φάκελο 'Photos' που αποθηκεύουμε τις φωτογραφίες μας στον υπολογιστή και θέλουμε να γίνει το ίδιο και στο κινητό μας. Για να γίνει αυτόματα, δίνουμε την εντολή:

adb-sync --delete /Η/διαδρομή/του/φακέλου/Photos/ /sdcard/Photos

Backup & Restore χωρίς root

Ένα από τα καλύτερα χαρακτηριστικά του ADB είναι ότι μπορεί να κάνει backup στη συσκευή μας και να την επαναφέρει αργότερα στην αρχική της κατάσταση. Αυτό είναι ιδιαίτερα σημαντικό όταν πρέπει για κάποιο λόγο να κάνεις επαναφορά εργοστασιακών ρυθμίσεων και θες να τα επαναφέρεις όλα με ευκολία. Ένας τέτοιος λόγος είναι το ξεκλείδωμα του Bootloader, το οποίο διαγράφει την εσωτερική μνήμη της συσκευής μας.

Για να κάνουμε backup μέσω ADB λοιπόν, δίνουμε την εντολή:

adb backup -all

Αν θέλουμε να συμπεριλάβουμε και τις εφαρμογές μας δίνουμε αυτή την εντολή:

adb backup -all -apk

Αν τέλος θέλουμε να αποθηκεύσουμε και τα περιεχόμενα της κάρτας SD, δίνουμε την εντολή:

adb backup -all -apk -shared

Οι εντολές αυτές θα εμφανίσουν στην οθόνη του Android το αντίστοιχο μενού, στο οποίο πρέπει να επιβεβαιώσουμε τη δημιουργία του backup. Μπορούμε αν θέλουμε να προσθέσουμε και έναν κωδικό για να το κρυπτογραφήσουμε κιόλας. Η διαδικασία αυτή θα δημιουργήσει ένα αρχείο με ονομασία 'backup.ab', το οποίο περιέχει τα πάντα.


Για να το επαναφέρουμε στη συσκευή μας, δίνουμε την ακόλουθη εντολή και ακολουθούμε τις ίδιες οδηγίες στο κινητό μας:

adb restore backup.ab

Διαφήμιση
Διαφήμιση

Είσοδος στο εσωτερικό τερματικό του Android

Η τελευταία χρήσιμη λειτουργία του ADB είναι ότι μπορεί να σε βάλει στο εσωτερικό τερματικό του Android, στο οποίο έχεις τη δυνατότητα να κάνεις (σχεδόν) ότι και σε ένα κανονικό Linux λειτουργικό σύστημα. Η είσοδος στο τερματικό γίνεται με την εντολή:

adb shell

Από εδώ μπορούμε να κάνουμε διάφορα πράγματα όπως για παράδειγμα να απεγκαταστήσουμε εφαρμογές συστήματος χωρίς να έχουμε κάνει root στη συσκευή μας. Οι βασικές εντολές που θα πρέπει να γνωρίζουμε για να περιηγηθούμε στους φακέλους της συσκευής μας από το τερματικό είναι οι εξής:

  • su (super user): Απόκτηση δικαιωμάτων διαχειριστή, αν έχουμε κάνει root.
  • ls (list): Εμφάνιση λίστα αρχείων που βρίσκονται μέσα στο φάκελο.
  • cd (change directory): Μετάβαση στην τοποθεσία άλλου φακέλου.
  • rm (remove): Διαγραφή αρχείου.
  • mv (move): Μετακίνηση αρχείου.
  • pwd: Εμφάνιση φακέλου στον οποίο βρισκόμαστε.

Για παράδειγμα...

Για να πάμε στο φάκελο '/system/app' δίνουμε την εντολή:

cd /system/app

Για να δούμε τα αρχεία που βρίσκονται σε αυτό το φάκελο δίνουμε την εντολή:

ls

Για να αφαιρέσουμε ένα από τα αρχεία του φακέλου (π.χ. το com.android.google) δίνουμε την εντολή:

rm -r com.android.google

Μπορούμε επίσης να μεταφέρουμε μία εφαρμογή από τη μνήμη χρήστη (data) στην μνήμη συστήματος για να εξοικονομήσουμε χώρο στην εσωτερική μνήμη της συσκευής μας. Για να το πετύχουμε δίνουμε την εντολή:

mv /data/app/xxxxx.apk /system/app

Τέλος αν έχουμε χαθεί και δεν ξέρουμε σε ποιο φάκελο βρισκόμαστε, μπορούμε να το μάθουμε εύκολα δίνοντας απλά την εντολή:

pwd

Πληροφορίες

Αυτά είναι λοιπόν τα βασικά του ADB και πώς μπορούμε να το χρησιμοποιήσουμε για να εκτελέσουμε διάφορες εργασίες στη συσκευή μας. Υπάρχουν πολλές εφαρμογές οι οποίες χρησιμοποιούν τις εντολές του ADB, αλλά διαθέτουν γραφικό περιβάλλον στο οποίο πατάς απλά κουμπιά για να γίνει το κάθε τι, αλλά έχει άλλο γούστο να τα γράφεις με το χέρι και γιατί όχι να δημιουργείς τα δικά σου script, στα οποία θα εκτελούνται πολλές από αυτές τις εντολές ομαδικά και αυτόματα.

Για περισσότερες πληροφορίες σχετικά με το ADB μπορείτε απλά να ανοίξετε ένα τερματικό στο φάκελο που το περιέχει και να δώσετε την εντολή:

adb

6 στο: "Android Basics | Τι είναι το ADB και πώς το χρησιμοποιώ; [Παραδείγματα]"