Android Basics | Τι είναι το ADB, πώς το χρησιμοποιώ και ποιες είναι οι βασικές εντολές του
To Android όπως και κάθε άλλο λειτουργικό σύστημα, διαθέτει διάφορες υπηρεσίες μέσα από τις οποίες μπορείς να χειριστείς από μακριά, να παραμετροποιήσεις ή ακόμα και να σώσεις μία Android συσκευή όταν έχει συμβεί κάτι κακό σε επίπεδο software. Μία από αυτές είναι το ADB (Android Debug Bridge) το οποίο μπορεί να μας βοηθήσει σε αρκετά σενάρια και σήμερα θα δούμε τις βασικότερες εντολές του.
Το ADB είναι μία γέφυρα η οποία μας επιτρέπει να επέμβουμε στην Android συσκευή μας από το τερματικό ενός υπολογιστή. Σε τι ακριβώς μπορεί να μας βοηθήσει; Μεταξύ άλλων μας επιτρέπει:
- να εγκαταστήσουμε / απεγκαταστήσουμε εφαρμογές ακόμη και αν το λειτουργικό μας σύστημα δε λειτουργεί λόγω ίσως κάποιου ιού,
- να εγκαταστήσουμε νέες ενημερώσεις του λειτουργικού συστήματος,
- να κάνουμε backup ολόκληρου του συστήματος ή συγκεκριμένων αρχείων, ακόμη και αν η συσκευή μας δε λειτουργεί σωστά,
- να συγχρονίσουμε φακέλους μεταξύ του υπολογιστή και του κινητού μας,
- να μεταφέρουμε / αντιγράψουμε / διαγράψουμε οποιοδήποτε αρχείο ή φάκελο στη συσκευή μας,
- να επανεκκινήσουμε τη συσκευή μας σε Bootloader / Revovery / Download mode για περαιτέρω εργασίες.
Προετοιμασία
Για να χρησιμοποιήσουμε το ADB στον υπολογιστή μας θα πρέπει πρώτα να κατεβάσουμε το "Android SDK Platform Tools" από την επίσημη σελίδα του. Αποσυμπιέζουμε το αρχείο και ανοίγουμε ένα τερματικό μέσα στο φάκελο που βρίσκεται το ADB.
Αν χρησιμοποιούμε Linux (Debian) στον υπολογιστή μας, μπορούμε να το εγκαταστήσουμε μόνιμα δίνοντας μία από τις ακόλουθες εντολές:
sudo apt install android-tools-adb
sudo apt install adb
Τέλος θα χρειαστεί να ενεργοποιήσουμε στο Android και τον "Εντοπισμό σφαλμάτων USB", καθώς χωρίς αυτόν η σύνδεση υπολογιστή με smartphone μέσω ADB είναι αδύνατη. Καλό λοιπόν θα ήταν να έχουμε ενεργοποιήσει από πριν τον εντοπισμό σφαλμάτων, γιατί όταν θα έρθει η στιγμή να τον εκμεταλλευτούμε, μπορεί να μην υπάρχει αυτή η δυνατότητα.
Σημείωση:
Το ADB λειτουργεί όταν η συσκευή μας βρίσκεται σε... Android mode, έχει
δηλαδή ανοίξει κανονικά. Σε κάποιες όμως συσκευές λειτουργεί και σε
Recovery mode, ενώ σε κάποιες άλλες παίζει ακόμη και αν έχουν κολλήσει στο
λογότυπο του κατασκευαστή (bootloop).
Έλεγχος ADB server
Ένα από τα πρώτα πράγματα που πρέπει να τσεκάρουμε, είναι αν το ADB τρέχει
σωστά στον υπολογιστή μας και αν η συσκευή μας αναγνωρίζεται κανονικά από
αυτόν. Συνδέουμε λοιπόν τη συσκευή μας μέσω USB στον υπολογιστή και δίνουμε
την ακόλουθη εντολή για να μάθουμε αν όλα είναι σωστά στημένα:
adb devices
Αν όλα έχουν πάει καλά, στην οθόνη του Android θα δούμε μία ειδοποίηση με την
οποία πρέπει να αποδεχτούμε τη σύνδεση, ενώ στο τερματικό θα εμφανιστεί ένας
σειριακός αριθμός για επιβεβαίωση.
Σημείωση:
Στην περίπτωση που δεν εμφανίζεται αυτός ο αριθμός, θα πρέπει να
εγκαταστήσουμε ξανά τον driver ή να αλλάξουμε θύρα USB στον υπολογιστή
μας.
Αν για κάποιο λόγο διακοπεί η σύνδεση μεταξύ Android και υπολογιστή ή αν δε
συμπεριφέρεται σωστά το ADB, μπορούμε να το σταματήσουμε με την εντολή:
adb kill-server
Για να το εκκινήσουμε και πάλι δίνουμε την εντολή:
adb start-server
Αυτά είναι όλα όσα έχουν να κάνουν με τον ίδιο τον ADB server. Πάμε τώρα να
δούμε τις εντολές που έχουν πρακτική αξία και μας επιτρέπουν να κάνουμε χρήσιμες εργασίες στο Android μας.
Διαφήμιση
Ανταλλαγή αρχείων και συγχρονισμός φακέλων
Το ADB μπορεί να κάνει μεταφορές αρχείων από και προς τη συσκευή μας. Αυτό είναι ιδιαίτερα χρήσιμο αν η συσκευή μας έχει κάποιο πρόβλημα και θέλουμε να πάρουμε τα αρχεία μας από αυτή. Αυτό γίνεται με την εντολή "adb push" στην οποία πρέπει να δώσουμε τη διαδρομή του αρχείου που θέλουμε να στείλουμε και τη διαδρομή του φακέλου στον οποίο θέλουμε να πάει.
Αν θέλουμε για παράδειγμα να στείλουμε το αρχείο "doctor.pdf" από τον υπολογιστή μας στο φάκελο "Downloads" του Android, το τοποθετούμε στον ίδιο φάκελο με αυτόν που βρίσκεται το ADB και δίνουμε την εντολή:
adb push doctor.pdf /Downloads
Αν τώρα θέλουμε να πάρουμε ένα αρχείο από τη συσκευή μας, δίνουμε την εντολή "adb pull" και στη συνέχεια τη διαδρομή του. Για να αντιγράψουμε για παράδειγμα το αρχείο "doctor.pdf" που βρίσκεται στο φάκελο "Downloads" δίνουμε την εντολή:
adb pull /Downloads/doctor.pdf
Το ίδιο μπορούμε να κάνουμε επίσης με ολόκληρους φακέλους. Αν θέλουμε να μεταφέρουμε για παράδειγμα το φάκελο "Music" από το Android στον υπολογιστή δίνουμε την εντολή:
adb pull /Music/
To ADB μας επιτρέπει επίσης να συγχρονίσουμε δύο φακέλους, έναν στον υπολογιστή και έναν στο κινητό, οι οποίοι θα περιέχουν τα ίδια αρχεία. Αυτό γίνεται με την εντολή "adb-sync" στην οποία συμπληρώνουμε πρώτα τη διαδρομή του φακέλου του υπολογιστή και στη συνέχεια τη διαδρομή που θέλουμε να τα στείλουμε στο Android.
Αν θέλουμε για παράδειγμα να συγχρονίσουμε τη μουσική που έχουμε στο φάκελο 'Metal' του υπολογιστή με τον φάκελο "Dance" που υπάρχει στο Android, θα το κάνουμε με την εντολή:
adb-sync ~/Metal/ /Dance
Με αυτό τον τρόπο μπορούμε να προσθέτουμε νέα κομμάτια στο φάκελο του υπολογιστή μας και να τα συγχρονίζουμε με τη συγκεκριμένη εντολή με το κινητό μας.
Αν θέλουμε η μουσική μας να διαγραφεί από τον υπολογιστή, καθώς μεταφέρεται στο Android, θα δώσουμε την εντολή:
adb-sync --delete ~/Metal/ /Dance
Τέλος μπορεί όλο αυτό να θέλουμε να το κάνουμε ανάποδα, να συγχρονίσουμε δηλαδή ένα φάκελο από το Android στο PC. Αν για παράδειγμα θέλουμε να πάρουμε ένα backup του φακέλου "DCIM" που περιέχει όλες τις φωτογραφίες μας και να τις στείλουμε στο φάκελο "Photos" του υπολογιστή, θα δώσουμε το εξής:
adb-sync --reverse /DCIM ~/Photos/
Είδαμε λοιπόν ότι με το "push" το "pull" και το "sync" μπορούμε να μεταφέρουμε εύκολα και γρήγορα αρχεία και φακέλους, μεταξύ του Android και του υπολογιστή μας. Πάμε να δούμε πώς μπορούμε να εγκαταστήσουμε και εφαρμογές!
Εγκατάσταση / απεγκατάσταση εφαρμογών
Το ADB μας δίνει τη δυνατότητα να εγκαταστήσουμε εφαρμογές από τον υπολογιστή μας στο Android. Αυτό είναι τρομερά εξυπηρετικό αν θέλουμε να επαναφέρουμε μαζικά όλες τις εφαρμογές που έχουμε κάνει backup. Χρησιμοποιούμε λοιπόν την εντολή "adb install" και για να εγκαταστήσουμε π.χ. την εφαρμογή "facebook.apk" θα δώσουμε το εξής:
adb install facebook.apk
Αν αυτή η εφαρμογή υπήρχε ήδη στη συσκευή μας και θέλουμε απλά να την αναβαθμίσουμε σε νεότερη έκδοση, δίνουμε την εντολή:
adb install -r facebook.apk
Στις συσκευές που διαθέτουν κάρτα microSD, μπορούμε να εγκαταστήσουμε την ίδια εφαρμογή απ'ευθείας σε αυτή. Η εντολή είναι η εξής:
adb install -s facebook.apk
Με το ADB μπορούμε επίσης να απεγκαταστήσουμε εφαρμογές! Αν για παράδειγμα έχουμε εγκαταστήσει το app με όνομα "virus.apk" το οποίο εν αγνοία μας περιλαμβάνει έναν ιό, που έχει προκαλέσει βλάβη στη συσκευή και δεν μας επιτρέπει να μπούμε στο παραδοσιακό μενού για να το αφαιρέσουμε, μπορούμε να το βγάλουμε από τη συσκευή μας με την εντολή:
adb uninstall virus.apk
Μπορούμε επίσης να απεγκαταστήσουμε μία εφαμρμογή (π.χ. "music.apk"), αλλά να κρατήσουμε τα δεδομένα της στη συσκευή μας (αρχεία ρυθμίσεων, save file). Με αυτό τον τρόπο όταν την εγακαταστήσουμε ξανά θα δούμε ότι οι ρυθμίσεις που είχαμε κάνει υπάρχουν κανονικά. Για να το κάνουμε λοιπόν αυτό δίνουμε την εντολή:
adb uninstall -k music.apk
Με το "install" και το "uninstall" μπορούμε λοιπόν να προσθέσουμε και να αφαιρέσουμε εφαρμογές από τη συσκευή μας. Αν έχουμε κάνει και "root" στο παρελθόν, μπορούμε να αφαιρέσουμε και τις προεγκατεστημένες εφαρμογές της! Σειρά έχει τώρα να δούμε πώς θα μπούμε σε άλλα mode της συσκευής για να κάνουμε πιο προχωρημένα πράγματα.
Διαφήμιση
Επανεκκίνηση σε "κρυφά" mode και αναβάθμιση
Με το ADB μπορούμε να κάνουμε επανεκκίνηση σε μία συσκευή που έχει κολλήσει. Μπορούμε όμως να μπούμε και σε "κρυφά" mode τα οποία απευθύνονται στο σέρβις της εταιρίας και υπάρχουν για την επισκευή της συσκευής.
Για να κάνουμε λοιπόν μία απλή επανεκκίνηση αρκεί να δώσουμε:
adb reboot
Για να μπούμε σε Recovery mode, στο οποίο μπορούμε να κάνουμε διάφορες εργασίες όπως επαναφορά εργοστασιακών δεδομένων χωρίς να ανοίξουμε καν τη συσκευή μας, δίνουμε την εντολή:
adb reboot recovery
Μπορούμε επίσης να μπούμε σε Bootloader / Fastboot mode, στο οποίο έχουμε τη δυνατότητα να δούμε αν η συσκευή μας είναι "ξεκλείδωτη" (από άποψη ασφάλειας λειτουργικού συστήματος) και να χρησιμοποιήσουμε τις εντολές του Fastboot. Αυτό γίνεται με την εντολή:
adb reboot-bootloader
adb reboot sideload
adb sideload ota.zip
Όλες οι εντολές του "adb reboot" είναι εντελώς ακίνδυνες για τη συσκευή μας και μπορούμε να τις δοκιμάσουμε άφοβα. Προσοχή όμως στο "adb sideload" καθώς αν το πακέτο που προσπαθούμε να εγκαταστήσουμε δεν ταιριάζει στη συσκευή μας, μπορεί να την καταστρέψουμε.
Ένα από τα καλύτερα χαρακτηριστικά του ADB είναι ότι σου επιτρέπει να κάνεις backup ολόκληρη τη συσκευή σου και να επαναφέρεις αργότερα τα αρχεία και τις ρυθμίσεις σου. Αυτό είναι ιδιαίτερα χρήσιμο αν θέλεις για παράδειγμα να ξεκλειδώσεις τον Bootloader, ο οποίος θα διαγράψει την εσωτερική μνήμη της συσκευής.
Για να κάνουμε λοιπόν backup μέσω ADB, δίνουμε την εντολή:
Backup & Restore χωρίς root
Ένα από τα καλύτερα χαρακτηριστικά του ADB είναι ότι σου επιτρέπει να κάνεις backup ολόκληρη τη συσκευή σου και να επαναφέρεις αργότερα τα αρχεία και τις ρυθμίσεις σου. Αυτό είναι ιδιαίτερα χρήσιμο αν θέλεις για παράδειγμα να ξεκλειδώσεις τον Bootloader, ο οποίος θα διαγράψει την εσωτερική μνήμη της συσκευής.
Για να κάνουμε λοιπόν backup μέσω ADB, δίνουμε την εντολή:
adb backup -all
Αν θέλουμε να συμπεριλάβουμε και τις εφαρμογές που έχουμε εγκαταστήσει δίνουμε την εντολή ως εξής:
adb backup -all -apk
Αν τέλος θέλουμε να αποθηκεύσουμε και τα περιεχόμενα της κάρτας SD, δίνουμε
την εντολή:
adb backup -all -apk -shared
Οι εντολές αυτές θα εμφανίσουν στην οθόνη του Android το μενού "Full backup", στο
οποίο πρέπει να επιβεβαιώσουμε τη δημιουργία του backup επιλέγοντας "Backup my data". Μπορούμε αν θέλουμε
να προσθέσουμε και έναν κωδικό για να το κρυπτογραφήσουμε κιόλας. Η διαδικασία
αυτή θα δημιουργήσει ένα αρχείο με ονομασία 'backup.ab', το οποίο περιέχει τα
πάντα.
Για να επαναφέρουμε στη συσκευή μας το backup που δημιουργήσαμε, δίνουμε την ακόλουθη εντολή και
ακολουθούμε τις ίδιες οδηγίες στο κινητό μας:
Με το ADB μπορούμε τέλος να μπούμε στο εσωτερικό τερματικό του Android, στο οποίο μπορούμε να δώσουμε τις κλασικές Linux εντολές για να διαγράψουμε ή να μεταφέρουμε εφαρμογές, αρχεία και φακέλους. Η είσοδος στο τερματικό γίνεται με την εντολή:
adb restore backup.ab
Είσοδος στο εσωτερικό τερματικό του Android
Με το ADB μπορούμε τέλος να μπούμε στο εσωτερικό τερματικό του Android, στο οποίο μπορούμε να δώσουμε τις κλασικές Linux εντολές για να διαγράψουμε ή να μεταφέρουμε εφαρμογές, αρχεία και φακέλους. Η είσοδος στο τερματικό γίνεται με την εντολή:
adb shell
Πλέον έχουμε μπει στο τερματικό του Android και μπορούμε να κάνουμε τις εργασίες που θέλουμε. Μόλις τελειώσουμε θα χρειαστεί να βγούμε ξανά πίσω στο τερματικό του υπολογιστή μας, γράφοντας απλά:
exit
Εν κατακλείδι
Το ADB δεν είναι ένα εργαλείο που μπορεί να εξυπηρετήσει τον καθημερινό χρήστη του Android. Σου δίνει όμως τη δυνατότητα να αναβαθμίσεις τη συσκευή σου, να την επισκευάσεις όταν έχει πρόβλημα ή να πάρεις τα αρχεία σου όταν αυτό δεν είναι εφικτό. Καλό είναι λοιπόν να είμαστε λιγάκι εξοικειωμένοι με αυτό, σε περίπτωση που το χρειαστούμε στο μέλλον.
Καλησπέρα,
ΑπάντησηΔιαγραφήδουλεύει και με S-ON συσκευές;
και αν ναι, με τον ίδιο τρόπο;
ευχαριστώ!
Γεια σου Αργύρη.
ΔιαγραφήΟ τρόπος είναι ίδιος αρκεί να έχεις απλά root.
Πρόσεξε όμως καθώς οι εντολές είναι για Ubuntu λειτουργικό σύστημα.
Δεν έχουν μεγάλη διαφορά στα Windows και στα Mac βέβαια αλλά διαφέρουν.
Ευχαριστώ για την απάντηση, αλλά μάλλον κάτι δεν κάνω καλά. Εκτελώ από ubuntu 11.10, και αφού κάνω remount δίνω την εντολή adb push για να μεταφέρω από την /data στην /system. Για παράδειγμα adb push /data/app/com.facebook.katana-2.apk /system/app και παίρνω ως απάντηση ότι το /data/app/com.facebook.katana-2.apk δεν υπάρχει. Επίσης δοκίμασα να κάνω πρώτα pull το συγκεκριμένο apk σε έναν τοπικό φάκελο και στην συνέχεια push στο /system. Το πρώτο βήμα ολοκληρώθηκε επιτυχώς, στο δεύτερο όμως μου λέει ότι δεν υπάρχει αρκετός χώρος. Το συγκεκριμένο partition όμως έχει περίπου 90mb ελεύθερα. Έχω το HTC Legend root με cyanogenmod 7.1. Και πάλι ευχαριστώ!
ΔιαγραφήΑν θέλεις απλά να μεταφέρεις τις εφαρμογές σου στο /system/app για να γλιτώσεις χώρο, υπάρχει πιο εύκολος τρόπος και περιγράφεται εδώ: http://www.doctorandroid.gr/2012/03/android.html
ΔιαγραφήΤώρα αν Θέλεις να παίξεις απλά με το ADB όποια κίνηση κάνεις πρέπει να την κλείνεις με "adb reboot" για να κάνει το κινητό σου επανεκκίνηση, αλλιώς οτι και να δοκιμάσεις θα σου βγάλει σφάλμα.
Στην περίπτωση που μου περιγράφεις οτι έκανες pull το facebook, σου βγάζει σφάλμα γιατί δε γίνεται απεγκατάσταση με το pull αλλά αντιγραφή. Για αυτό και δεν μπορείς να την επιστρέψεις. Το διόρθωσα και στο άρθρο για να μη γίνουν άλλες παρεξηγήσεις.
Καλημέρα,
ΑπάντησηΔιαγραφήείχα δοκιμάσει με τον ES explorer, αλλά ενώ μου κάνει προσάρτηση στο σύστημα ως εγγράψιμο όταν επιχειρώ την μετακίνηση μιας εφαρμογής μου βγάζει "αδυναμία μετακίνησης". Μήπως υπάρχει πρόβλημα που είναι S-ON η συσκευή;
Καμιά φορά βγάζει ένα προβληματάκι ο ES. Δοκίμασε στις ρυθμίσεις, στην προσάρτηση να το αποεπιλέξεις και να το επιλέξεις πάλι.
ΔιαγραφήΘα το δοκιμάσω σήμερα και σε μία S-ON συσκευή να είμαι σίγουρος και θα επανέλθω.