Σάββατο, 30 Αυγούστου 2014

Android Basics: Τι είναι ROM dump, πώς το κάνουμε και σε τι μπορεί να μας χρησιμεύσει;


Θα έχετε προσέξει κατά καιρούς όταν ανακοινώνεται μία νέα συσκευή, ότι αρχίζουν να κυκλοφορούν στο ίντερνετ τα wallpaper της, οι προεγκατέστημένες εφαρμογές, ο launcher και άλλα μοναδικά αρχεία που μόνο σε αυτή βρίσκονται. Η εξαγωγή αυτών των αρχείων γίνεται μέσω του λεγόμενου ROM dump μίας διαδικασίας που έχει σκοπό να εξάγει ότι έχει σχέση με λογισμικό από μία συσκευή.

Το ROM dump λοιπόν εξάγει κυριολεκτικά τα πάντα. Το πρώτο όφελος ενός ROM dump είναι οι εφαρμογές και τα αρχεία της ROM που αναφέραμε προηγουμένως, τα οποία μπορούμε να εγκαταστήσουμε σε άλλες συσκευές υπό προϋποθέσεις, το σημαντικότερο όμως είναι η μελέτη. Με τη μελέτη των εικόνων recovery, boot, system και όλων των υπολοίπων partition που έχουν πλέον στη διάθεσή τους οι προγραμματιστές, μπορούν να κάνουν port τη νέα ROM σε παλιότερες συσκευές, να βρουν τρόπους για να κάνουμε root και φυσικά να κατανοήσουν τα νέα χαρακτηριστικά που φέρνουν οι εταιρίες, όπως για παράδειγμα το Knox της Samsung, που κάτι παρόμοιο δεν είχαμε δει στο Android.

Υπάρχει όμως και μία πιο άμεση χρήση του ROM dump από τον καθημερινό χρήστη του Android και αυτό δεν είναι άλλο από το backup. Για όσους αλλάζουν συχνά ROM δεν αρκεί πολλές φορές το γνωστό nandroid backup που παίρνουμε μέσω recovery. Για παράδειγμα για να εγκαταστήσουμε ένα επίσημο update στη συσκευή μας θα χρειαστούμε την επίσημη recovery και πολλές φορές είναι απαραίτητο να επαναφέρουμε ή να αναβαθμίσουμε και το boot.img. Σήμερα θα δούμε λοιπόν τον πιο εύκολο τρόπο για να κάνει κανείς backup στα τρία σημαντικότερα partition της συσκευής μας, χωρίς παρουσία υπολογιστή.

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

Για να τα καταφέρουμε θα χρειαστούμε:


Η διαδικασία

Ακολουθείτε τη διαδικασία με δική σας ευθύνη!

  • Κατεβάζουμε το ROMdump στη συσκευή μας και το αποσυμπιέζουμε με τον file explorer μας.
  • Μεταφέρουμε το αρχείο romdump στη διαδρομή "/data/local".
  • Ανοίγουμε το Terminal Emulator και τρέχουμε με τη σειρά τις παρακάτω εντολές:

su
chmod 04755 /data/local/romdump
/data/local/romdump

Η πρώτη θα μας δώσει δικαιώματα διαχειριστή, η δεύτερη θα κάνει εκτελέσιμο το αρχείο romdump και η τρίτη θα τρέξει το αρχείο.

  • Περιμένουμε μέχρι να τελειώσει η διαδικασία και πηγαίνουμε στο φάκελο romdump στη συσκευή μας, όπου θα βρούμε το boot.img, το recovery.img και το system.img.

Εναλλακτική μέθοδος

Εάν η παραπάνω διαδικασία δε λειτουργήσει μπορείτε να δοκιμάσετε ένα ακόμη σετ εντολών από το Terminal Emulator.

Το ανοίγουμε λοιπόν και τρέχουμε τις εντολές:

su
cat proc/mtd

Η πρώτη θα μας δώσει δικαιώματα διαχειριστή και η δεύτερη μία λίστα με τα partition της συσκευής, η οποία θα μοιάζει κάπως έτσι:

dev:    size   erasesize  name
mtd0: 000a0000 00020000 "misc"
mtd1: 00480000 00020000 "recovery"
mtd2: 00300000 00020000 "boot"
mtd3: 0fa00000 00020000 "system"
mtd4: 02800000 00020000 "cache"
mtd5: 093a0000 00020000 "userdata"

Προσέχουμε το νούμερο του "mtd" και το όνομα του partition που θέλουμε να κάνουμε dump και δίνουμε την αντίστοιχη εντολή. Σύμφωνα με το παράδειγμά μας θα δώσουμε:

Για το recovery partition:

dd if=/dev/mtd/mtd1 of=/sdcard/recovery.img bs=4096

Για το boot partition:

dd if=/dev/mtd/mtd2 of=/sdcard/boot.img bs=4096

Για το system partition:

dd if=/dev/mtd/mtd3 of=/sdcard/system.img bs=4096

Η κάθε μία από τις εντολές θα δώσει αντίστοιχα τα αρχεία "recovery.img", "boot.img" και "system.img" στην sdcard μας. Σε μερικές συσκευές το "system.img" δε θα δημιουργηθεί σωστά με τη δεύτερη μέθοδο για αυτό τη χρησιμοποιούμε κυρίως για τα δύο πρώτα.

Επαναφορά

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

να στήσουμε το Android SDK στον υπολογιστή μας,
να βάλουμε τα τρία αρχεία στο φάκελο "platform-tools",
να μπούμε μέσω τερματικού στο φάκελο και να δώσουμε μία από τις παρακάτω εντολές, ανάλογα με το αρχείο που θέλουμε να επαναφέρουμε:

Boot

fastboot flash boot boot.img

Recovery

fastboot flash recovery recovery.img

System

fastboot flash system system.img

Καλή επιτυχία!

18 στο: "Android Basics: Τι είναι ROM dump, πώς το κάνουμε και σε τι μπορεί να μας χρησιμεύσει;"
  1. Δε μπορω να μπορω να μπω στο Super SU καθως μου λεει οτι το SuperSU διακοπηκε.Ποιο ειναι το προβλημα;Επισης μου λεει πως δε μπορω να κανω ενημερωση γιατι δεν εχω εξουσιοδοτηση (λογω root?).Δε το ρουταρα εγω αλλα αλλο παιδι που το αγορασα.Note 2

    ΑπάντησηΔιαγραφή
  2. Δοκίμασε να κάνεις εκκαθάριση δεδομένων στην εφαρμογή του SuperSU και αν δεν αλλάξει κάτι, κάνε ξανά root.

    ΑπάντησηΔιαγραφή
  3. Δεν μπορω να κανω εκαθαριση δεδομενων καθως ειναι γκρι.Θα επιχειρησω ξανα με το root.Σε ευχαριστω

    ΑπάντησηΔιαγραφή
  4. Έβλεπα συγκριτικά μεταξύ m8, S5 & G3 και πραγματικά ενώ το G3 και το S5 έχουν ελαφρώς καλύτερα specs από το m8 είναι βλακεία να βλέπεις το S5 να κυριαρχεί σε χρόνους απόκρισης και benchmarks και το G3 να είναι σε πολλές περιπτώσεις στα ίδια επίπεδα με G2 και Z1 (ναι καλά διαβάσατε κινητά 1 γενιάς πίσω) γιατί η τερατώδης οθόνη που διαθέτει τρώει πολλούς πόρους και υπολογιστική ισχύ του συστήματος. Ελπίζω να το διορθώσει με κάποιο major software update αυτό η LG γιατί είναι πραγματικά βλακεία... Όποιος πιστεύει ότι αυτά που γράφω δεν ισχύουν μπορεί να κάνει αναζήτηση στο Google για τα test του phonearena.

    ΑπάντησηΔιαγραφή
  5. Γεια σου ρε Δημήτρη. Εγώ ξέρεις τι θα έκανα; Θα το έπαιρνα και θα έριχνα επάνω μια AOSP custom ROM.

    ΑπάντησηΔιαγραφή
  6. Δεν είναι λίγο νωρίς για custom rom σε G3; Έχει custom rom χωρίς bugs κιόλας;

    ΑπάντησηΔιαγραφή
  7. Είναι αλλά είναι και η μόνη λύση για ελαφρύ Android.

    ΑπάντησηΔιαγραφή
  8. exw provlima me tn fortisi alla den 3erw ti ftei..mpataria.? i fortistis.? otan sindeo ton fortisti merikes fores dixni oti den fortizi kai otan kanw restart to smartphone fortizi kanonika..mou exei simvi na to exw na fortizete gia wres(8-9wres) kai na dixni 34% kai otan to ekana restart edeixne 22%...tha eithela tin gnwmi sas...kai kati teleuteo ean dokimasw na to fortisw me allis etairias fortisti einai ok.?

    ΑπάντησηΔιαγραφή
  9. καταρχην τις ευχαριστιες μου και ενα μεγαλο μπραβο chris για το μερακι σου και την υπομονη σου...θελω να ρωτησω..εφτιαξα ενα swap αλλα διαλεξα ext κι οχι fat..θα δουλεψει.? κι επισης πως αναιρω τα swap που εχω φτιαξει.?

    ΑπάντησηΔιαγραφή
  10. ενταξει το βρηκα chris..συγνωμη για την ασχετοσυνη μου !! καταλαβα οτι το fat παει στην εσωτερικη μνημη ενω το ext παει στην εξωτερικη...και βεβαι τα αναιρω με τον filemanager hd...

    ΑπάντησηΔιαγραφή
  11. Μπορεί να φταίει ο φορτιστής, το καλώδιο, το πριζάκι, η μπαταρία ή το λειτουργικό σύστημα που σου δίνει λάθος πληροφορίες. Τα πρώτα μπορείς να τα αλλάξεις, εγώ φορτίζω συνέχεια τις συσκευές μου με άλλους φορτιστές. Όσο για το τελευταίο, δοκίμασε μια επαναφορά εργοστασιακών ρυθμίσεων.

    ΑπάντησηΔιαγραφή
  12. αναγκαία προϋπόθεση, για να λειτουργήσει το swapper, είναι η συσκευή να παίρνει micro sd?

    ΑπάντησηΔιαγραφή
  13. Νομίζω πως γίνεται και στην εσωτερική μνήμη αφού υπάρχει η δυνατότητα το Swap να δημιουργηθεί ως αρχείο. Τσέκαρε το "Swap File Position" αν δίνει τη δυνατότητα.

    ΑπάντησηΔιαγραφή
  14. έγινε, σε ευχαριστώ γιατρέ μου !!

    ΑπάντησηΔιαγραφή
  15. Καλημέρα Χρήστο,
    Σκέφτομαι να αγοράσω το G3 γιατί από οτι είδα έιναι το μονο κοντά στα 350€ (μαζι με 1+1) που αξίζει να αγοράσω.
    Ήθελα να σε ρωτήσω, είδα το IOroot αλλα νομίζω δεν γίνεται σε 5.0. Και επίσης εσύ ποια Custom Rom θα προτιμούσες ?

    ΑπάντησηΔιαγραφή
  16. Εγώ με τη σειρά θα προτιμούσα: Omni, CM και Paranoid. Νομίζω ότι είναι καλή επιλογή το G3, θα το έπαιρνα άνετα σε αυτή την τιμή και τέλος όσον αφορά το IOroot, πρέπει να τους δώσουμε λίγο χρόνο να το αναβαθμίσουν.

    ΑπάντησηΔιαγραφή
  17. καλησπέρα σχετικά με τον αυτόματο συγχρονισμό αντί να τον απενεργοποιήσουμε δεν είναι αρκετό το κλείσιμο δικτύων και wifi?

    ΑπάντησηΔιαγραφή
  18. Αν κλείσεις τα δίκτυα δε χρειάζεται να απενεργοποιήσεις τον αυτόματο συγχρονισμό.

    ΑπάντησηΔιαγραφή