Αυξάνουμε την εσωτερική μνήμη της Samsung συσκευής μας όσο θέλουμε, χρησιμοποιώντας απλά ένα PIT αρχείο


Οι περισσότεροι από εμάς έχουμε αναρωτηθεί κάποια στιγμή: "Γιατί η μνήμη εγκατάστασης των εφαρμογών μου να είναι μόνο 150MB ή 300MB ή 1GB; Γιατί φτιάχτηκε έτσι η συσκευή μου ενώ υπάρχει και άλλος άπλετος χώρος στον οποίο δε μου δίνεται η δυνατότητα να κάνω αυτό που θέλω, δηλαδή να εγκαταστήσω περισσότερες εφαρμογές;"

Όσοι έχετε συσκευές της Samsung και θέλετε να απαλλαγείτε από αυτό το πρόβλημα μια και καλή, σήμερα θα δείτε πώς μπορείτε να κάνετε τη μνήμη σας όσο μεγάλη θέλετε, ακόμα και 10GB! Η μέθοδος αυτή χρησιμοποιείται από την ίδια τη Samsung και είναι ο καλύτερος τρόπος για να λύσετε το πρόβλημα χώρου χωρίς να έχετε πρόβλημα μπαταρίας και χωρίς να χρησιμοποιήσετε εξωτερική SD κάρτα.

Στο άρθρο της σειράς Android Basics για το Odin και το Heimdall αναφερθήκαμε λιγάκι στο αρχείο PIT και είχαμε πει ότι μέσω αυτού του αρχείου μπορούμε να αλλάξουμε το μέγεθος των partition στην Android συσκευή μας. Σήμερα λοιπόν θα δούμε πώς μπορούμε να το χρησιμοποιήσουμε και να επωφεληθούμε από αυτό. Ακολουθούν λίγα λόγια για τα partition, το αρχείο PIT και τα block των αποθηκευτικών χώρων, τα οποία αν δε θέλετε να γνωρίζετε, μπορείτε να προσπεράσετε και να πάτε κατευθείαν στη διαδικασία repartition.

Τα partition

Οι Android συσκευές μας έχουν έναν και μοναδικό χώρο αποθήκευσης. Αυτός ο χώρος όμως πρέπει να εξυπηρετήσει πολλά αρχεία και διεργασίες του συστήματος και έτσι είναι χωρισμένος σε κομμάτια, τα λεγόμενα partition (στα ελληνικά κατατμήσεις). Αυτό δεν είναι κάτι που συναντάμε μόνο στο Android, αλλά σχεδόν σε όλες τις ηλεκτρονικές συσκευές και κυρίως στους υπολογιστές μας.

Στο Android λοιπόν θα βρούμε ένα partition για τον bootloader, ένα για τη recovery, ένα για τη ROM, τα σημαντικότερα για εμάς όμως είναι το data partition στο οποίο εγκαθίστανται οι εφαρμογές που κατεβάζουμε και το sdcard partition το οποίο υπάρχει για να εξυπηρετήσει τα υπόλοιπα αρχεία μας (φωτογραφίες, μουσική, βίντεο κλπ.).

Σε μία συσκευή των 16GB το data partition είναι συνήθως 1GB ή 2GB, ενώ ο υπόλοιπος χώρος δεσμεύεται από το sdcard partition. Έχουμε δηλαδή μόνο 1GB (ή 2GB) στη διάθεσή μας για να εγκαταστήσουμε εφαρμογές, το οποίο όπως πολλοί θα έχετε προσέξει τελειώνει πολύ γρήγορα. Σε συσκευές όμως που διαθέτουν θύρα microSD, δε θα ήταν ωραίο αν μπορούσαμε να μικρύνουμε το sdcard partition μεταφέροντας όλα μας τα αρχεία στην πραγματική SD κάρτα και να μεγαλώσουμε το data partition στα 4GB ή στα 8GB για να έχουμε άπλετο χώρο για εφαρμογές;


Το αρχείο PIT

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

Στην πράξη...

Για να δούμε στην πράξη πώς είναι διαμορφωμένος ο χώρος της δικής μας συσκευής, τη συνδέουμε στον υπολογιστή μας (και στο ADB) και δίνουμε τις παρακάτω εντολές μέσω τερματικού / γραμμής εντολών:

adb shell
parted /dev/block/mmcblk0
unit s
print

Το τερματικό θα μας απαντήσει με κάτι παρόμοιο με αυτό:


Στο συγκεκριμένο PIT αρχείο βλέπουμε 12 partition από τα οποία μας ενδιαφέρουν κυρίως το DATAFS (10o) και το UMS (11ο). Το πρώτο αφορά το data partition και το δεύτερο το sdcard partition που λέγαμε νωρίτερα. Μεγαλώνοντας λοιπόν το πρώτο και μικραίνοντας το δεύτερο πετυχαίνουμε αυτό που θέλουμε, δηλαδή να μεγαλώσουμε το χώρο που εγκαθίστανται οι εφαρμογές μας.

Τι είναι τα block;

Στον παραπάνω πίνακα θα προσέξετε την εξής γραμμή:

Disk /dev/block/mmcblk0: 30777344s

Αυτή η γραμμή μας λέει ότι η μνήμη της συσκευής μας αποτελείται από 30.777.344 block. Όλοι οι αποθηκευτικοί χώροι αποτελούνται από block, η χωρητικότητα των οποίων είναι 512B (Byte) το καθένα. Αν λάβουμε λοιπόν υπόψιν μας τη σχέση 1ΜΒ (MegaByte) = 1.024kB (kiloByte) έχουμε:

  1. 512Β (Byte) = 1 block
  2. 512kΒ (kiloΒyte) = 1.024 block
  3. 1MB (MegaΒyte) = 2.048 block

Σε κάθε 2.048 block χωράει ένα MegaByte. Για μεγαλύτερη ευκολία μπορούμε να χρησιμοποιήσουμε έναν μετατροπέα που θα μας πει με ακρίβεια πόσα block χρειάζονται μεγάλες ποσότητες όπως τα 8GB (GigaByte) ας πούμε.

Στον πίνακα επίσης θα δείτε τις τρεις στήλες "Start", "End" και "Size", οι οποίες μας λένε από ποιο block ξεκινάει το κάθε partition, σε ποιο τελειώνει και ποιο είναι το μέγεθός του. Για παράδειγμα το πρώτο partition, το EFS ξεκινάει από το block 8.192 και τελειώνει στο block 49.151, έχει δηλαδή μέγεθος 40.960 block που αν τα βάλουμε στο μετατροπέα, θα μας πει σε πόσα MegaByte αντιστοιχεί (20ΜΒ). Προσέξτε επίσης ότι το επόμενο partition ξεκινάει συνήθως αμέσως μόλις τελειώνει το προηγούμενο, για παράδειγμα το EFS τελειώνει στο 49.151 και το SBL1 αρχίζει από το 49.152, πράγμα που σημαίνει ότι δε χάνεται καθόλου χώρος ανάμεσά τους και ότι δεν πρέπει σε καμία περίπτωση τα partition να καταλαμβάνουν κοινά block!

Στην εικόνα παρακάτω βλέπουμε σε κλίμακα μία πρόχειρη γραφική απεικόνιση των block και με ποιο τρόπο καταλαμβάνονται από τα partition, έτσι για να έχουμε μια ιδέα:


Ξεκινάμε... επιτέλους!

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

  • έναν υπολογιστή με Windows,
  • εγκατεστημένους τους driver της συσκευή μας,
  • το Odin και το Heimdal
  • το PIT Magic

Ξεκινάμε συνδέοντας τη συσκευή μας στον υπολογιστή μέσω USB με ενεργοποιημένο τον "Εντοπισμό σφαλμάτων" και δίνουμε τις παρακάνω εντολές στη γραμμή εντολών για να εμφανίσουμε το πινακάκι της συσκευής μας:

adb shell
parted /dev/block/mmcblk0
unit s
print

Το αποθηκεύουμε σε κάποιο αρχείο, καθώς θα χρειαστούμε τις πληροφορίες του DATAFS και του UMS. Στη συνέχεια χρησιμοποιούμε το Heimdall για να εξάγουμε το PIT αρχείο της συσκευής μας μπαίνοντας μέσω γραμμής εντολών στο φάκελό του και δίνοντας την εντολή:

heimdall download-pit --output mypit.pit

Θα εμφανιστεί στον ίδιο φάκελο το αρχείο "mypit.pit". Δημιουργούμε δύο αντίγραφα του συγκεκριμένου αρχείου, ένα για να το έχουμε ως backup αν κάτι πάει στραβά και ένα για να δημιουργήσουμε το νέο partition σύστημα της συσκευής.

Η διαδικασία

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

Ανοίγουμε το PIT Magic στον υπολογιστή μας, επιλέγουμε "Open" και βρίσκουμε το "mypit.pit". Στον κατάλογο "PIT Entry List" βρίσκουμε το partition "DATAFS".



Το "Block Size" εμφανίζει από ποιο block ξεκινάει το συγκεκριμένο partition (είναι η ίδια τιμή με τη στήλη "Start" στο πινακάκι μας), ενώ το "Block Count" εμφανίζει το μέγεθος του partition (η τιμή "Size" στο πινακάκι μας). Στο πινακάκι που χρησιμοποιούμε ως παράδειγμα, το DATAFS είναι 4.194.304 block (2GB) και το UMS είναι 24.133.630 block (11.5GB) άρα έχουμε στη διάθεσή μας 13.5GB στο σύνολο.

Θέλουμε λοιπόν να τα μετατρέψουμε ως εξής:

  • DATAFS: 8GB άρα 16.777.216 block
  • UMS: 5.5GB άρα 11.534.336 block

Πηγαίνουμε λοιπόν στο PIT Magic και στο "Block Count" του "DATAFS" δίνουμε την τιμή 16.777.216 που αντιστοιχεί στα 8GB. Το νέο "DATAFS" πλεόν ξεκινάει από το 1.392.640 και τελειώνει στο 18.169.856 block (αυτό βγαίνει προσθέτοντας "Block Size" και "Block Count").


Τώρα πηγαίνουμε στο επόμενο "Entry" από το "PIT Entry List" το οποίο είναι το "UMS" και στο "Block Size" δίνουμε την τιμή 18.169.857 που είναι το αμέσως επόμενο block από αυτό που τελείωσε το προηγούμενο partition. Στο "Block Count" θα βάλουμε την τιμή 11.534.336 που αντιστοιχεί στα υπόλοιπα 5.5GB. Το "UMS" λοιπόν τελειώνει πλέον στο 29.704.193


Στη συνέχεια ελέγχουμε αν τα επόμενα partition συμπέφτουν στα ίδια block με το τελευταίο που πειράξαμε και στο δικό μας παράδειγμα βλέπουμε ότι το "UMS" τελειώνει στο 29.704.193 block ενώ το "HIDDEN" ξεκινάει στο 29.720.574 block (το βλέπουμε στη στήλη "Start" στο πινακάκι). Αποθηκεύουμε λοιπόν το αρχείο μας και ανοίγουμε το Odin για να το εγκαταστήσουμε με την εξής διαδικασία:

  • Το εισάγουμε στο Odin στη θέση "PIT".
  • Εισάγουμε και ένα νέο firmware στο "PDA" όπως δείξαμε παλιότερα.
  • Τσεκάρουμε το "Re-Partition" μαζί με το "Auto Reboot" και το "F. Reset Time".
  • Πατάμε "Start".

Αν όλα έγιναν σωστά, η συσκευή μας θα επανεκκινήσει με την εργοστασιακή ROM και το χώρο εγκατάστασης των εφαρμογών να είναι 8GB!

Αν κάτι πάει στραβά

Αν το αποτέλεσμα δεν είναι αυτό που περιμένουμε και η συσκευή μας δεν ανοίγει ή κάνει bootloop, χρησιμοποιούμε το Odin με το ίδιο firmware και το PIT αρχείο που εξαγάγαμε από τη συσκευή μας, για να επαναφέρουμε τα πάντα σε αρχική μορφή. Περισσότερες πληροφορίες για τη χρήση του Odin μπορείτε να βρείτε εδώ.

Το τελικό πόρισμα

Η λογική του PIT είναι στην πραγματικότητα πολύ πιο απλή από όσο φαίνεται. Είναι απλά μαθηματικά και τίποτε άλλο και το μόνο που θα πρέπει να προσέξουμε είναι τα partition να μη συμπέσουν στα ίδια block.

Μπορούμε φυσικά να πειράξουμε και όλα τα υπόλοιπα partition όμως θα έχουμε ελάχιστο πραγματικό όφελος και πιθανά προβλήματα. Αν για παράδειγμα μικρύνουμε το partition FactoryFS (όπου βρίσκεται η ROM μας) και προσπαθήσουμε να εγκαταστήσουμε μία άλλη ROM ή μας έρθει η αναβάθμιση της υπάρχουσας και αυτή έχει μεγαλύτερο μέγεθος, δε θα χωρέσει και έτσι θα δημιουργήσουμε πρόβλημα στη συσκευή μας.

Το μεγάλο πλεονέκτημα αυτής της μεθόδου είναι ότι δεν επηρεάζει την μπαταρία, δεν κάνει τη συσκευή μας να σέρνεται, ούτε χρειάζεται κάποια SD κάρτα καθώς πρόκειται για την εργοστασιακή μέθοδο. Κάνουμε αυτό που κάνει ούτως ή άλλως η Samsung στις συσκευές μας πριν τις βγάλει στην αγορά, αλλάζοντας απλά κάποιες πραμέτρους.

Καλή επιτυχία στους τολμηρούς!

Σχόλια

  1. Ειχα διαβασει παλιοτερα για μια μεθοδο στην οποια δημιουργουσε καποιος ενα ext4 partition στην sdcard κ με αυτο τον τροπο μπορουσε να εξασφαλισει περισσοτερο ζωρο για εγκατασταση εφαρμογων . Ποια ειναι λοιπον τ α πλεονεκτηματα-μειονεκτηματα της μιας μεθοδου εναντι της αλλης . Ευχαριστω εκ των προτερων .

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Δημήτρη η μέθοδος στην οποία αναφέρεσαι είναι αυτή:
      http://www.doctorandroid.gr/2013/10/increase-internal-space-on-android.html

      Η διαφορά είναι ότι με αυτή τη μέθοδο μειώνεται η διάρκεια της μπαταρίας αλλά και η διάρκεια ζωής της κάρτας sd.

      Διαγραφή
  2. Όλο αυτό δεν θέλει άδεια root? :/

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Όχι. Το root γίνεται στο λογισμικό, όχι στη συσκευή. Μπορείς να διαμορφώσεις τα partition και να βάλεις μία unrooted ROM στο τέλος.

      Διαγραφή
  3. Προφανώς τα δεδομένα χάνονται, έτσι; ξαναεγκαθιστούμε και την rom ή όχι;

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Εγκαθιστούμε και πάλι τη ROM και Ναι τα δεδομένα χάνονται.

      Διαγραφή
  4. Αυτό μπορώ να το χρησιμοποιήσω και σε κινέζικο κινητό με επεξργαστή ΜΤΚ?

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Το scatter file που έχουν οι MTK συσκευές μοιάζει πολύ με το pit των Samsung. Γίνεται αλλά δεν ξέρω πώς θα το διαμορφώσεις και σίγουρα δεν το φλασαρεις με το Odin.

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

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Δεν το έχω ψάξει το θέμα ακόμα δυστυχώς. Δεν έχω ιδέα με ποιο tool το διαμορφώνεις.

      Διαγραφή
  6. Ευχαριστώ πολύ για τον χρόνο σου

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

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

      Διαγραφή
  8. Καλησπέρα,
    Σε περίπτωση που θέλω μαζί με το repartitioning να περάσω και μια νέα custom rom (πχ τη resurrection remix), στο odin, εκτός του αρχείου *.pit στη θέση PDA θα βάλω το αρχείο zip που κατέβασα για τη resurrection; Τι γίνεται με τα gapps;
    Μήπως είναι καλύτερα να κάνω το repartitioning με ένα επίσημο firmware και μετά να περάσω την custom rom;

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Το Odin από όσο ξέρω φλασάρει μόνο tar.md5 αρχεία, όχι zip. Νομίζω ότι το δεύτερο είναι το σωστό και φυσικά προσοχή να χωράει η ROM στο νέο partition που θα δημιουργήσεις.

      Διαγραφή
    2. Πρώτα από όλα ευχαριστώ για την τόσο σύντομη απάντηση!
      Θα αυξήσω μόνο το partition της "εσωτερικής μνήμης" μειώνοντας αντίστοιχα αυτό που αποθηκεύονται οι εικόνες κλπ. Στον οδηγό πιο πάνω νομίζω πως μόνο αυτή η αλλαγή γίνεται, σωστά;

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

      Διαγραφή
    4. Συμφωνώ. Έτσι και αλλιώς θα ακολουθούσα πιστά τις οδηγίες σου αυξάνοντας την εσωτερική μνήμη στα 8GB. Έχω ένα Galaxy SII με εσωτερική μνήμη 2GB. Τα 8 νομίζω πως είναι αρκετά!
      Ευχαριστώ πολύ για τον κόπο σου να συντηρείς μια τόσο δυναμική ελληνική κοινότητα για το Android.
      Καλή συνέχεια φίλε!
      Κώστας.

      Διαγραφή
    5. Να 'σαι καλά Κώστα. Καλή επιτυχία στο εγχείρημα.

      Διαγραφή

Δημοσίευση σχολίου

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

Δείτε επίσης...

Φεύγω από την Google (μέρος 15) | ''Ξηλώνουμε'' τα Google apps από το Android

Android | Γιατί δε θα αγόραζα ποτέ smartphone της OnePlus

Ιδιωτικό απόρρητο | Το αφελές επιχείρημα του ''Δεν έχω τίποτα να κρύψω''

Docker (μέρος 7) | Στήνουμε έναν reverse proxy για τα container μας με το Traefik

Μάθε παιδί μου Linux (μέρος 11) | Δίσκοι, κατατμήσεις και σύστημα αρχείων (filesystem)

Ubuntu Touch 2020 review | Μια πραγματική mobile GNU/Linux διανομή έτοιμη για καθημερινή χρήση

Android | Περιόρισε την παρακολούθηση των εφαρμογών και κόψε τις διαφημίσεις με το TrackerControl

Docker (μέρος 1) | Τι είναι και πώς το εγκαθιστούμε στον υπολογιστή μας;

Android | Βάλε στην ''απομόνωση'' τις εφαρμογές που δεν εμπιστεύεσαι με το Shelter

Απόρρητο | ''Μπερδεύουμε'' τον αλγόριθμο Google και Facebook με ψεύτικες πληροφορίες