.

Ένας εύκολος τρόπος για να τρέξουμε τα δικά μας script στο Android, χωρίς την ενεργοποίηση του init.d στον πυρήνα του!


 

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


Ένας εύκολος τρόπος για να αλλάξουμε αυτές τις ρυθμίσεις είναι τα λεγόμενα script και για να τα χρησιμοποιήσουμε πρέπει να ενεργοποιήσουμε την υποστήριξη του init.d στον πυρήνα (kernel) του Android.


Τι είναι τα script;
Είναι αρχεία κειμένου τα οποία είναι συνήθως γραμμένα σε bash και περιέχουν απλές εντολές τερματικού. Με αυτά μπορούμε να κάνουμε βελτιώσεις:

  • στη μπαταρία
  • στο σήμα
  • στο GPS
  • στις επιδόσεις
  • και ότι άλλο μπορούμε να φανταστούμε, αρκεί να το προσθέσουμε στον κώδικα.

Ένα απλό παράδειγμα είναι το παρακάτω:


1 #!/system/bin/sh
2 #Add a line in post_boot.sh
3
4 if [ -e /system/etc/post_boot.sh ]; then
5 echo "/system/etc/init.d/*" >> /system/etc/post_boot.sh



Στις πρώτες γραμμές με τη δίεση (#) υπάρχουν οι πληροφορίες για το script μας. Δηλώνουμε δηλαδή οτι είναι ένα αρχείο bash και το τι κάνει, ενώ στις επόμενες είναι ο κώδικας που στην προκειμένη περίπτωση σημαίνει: "Αν υπάρχει το αρχείο post_boot.sh στη διαδρομή /system/etc, τότε πρόσθεσε μέσα του τη γραμμή: /system/etc/init.d". Είναι γενικά εύκολα να διαβάσουμε τι κάνουν αρκεί να ξέρουμε 15-20 εντολές της κονσόλας του Linux (και του Android στην προκειμένη περίπτωση).


Πώς τα χρησιμοποιούμε χωρίς init.d;
Η υποστήριξη του init.d από τον πυρήνα του Android είναι το χαρακτηριστικό που μας δίνει τη δυνατότητα να τρέξουμε τα δικά μας script, δεν είναι όμως δεδομένη, για αυτό και θα δείτε κάποιες ROM να διαφημίζουν οτι διαθέτουν αυτή την ιδιότητα. Ως γνωστόν όμως, όσο πιο πολύ πειράζεις το σύστημά σου, τόσο πιο ασταθές γίνεται και έτσι βρέθηκε ένας τρόπος να τα καταφέρουμε χωρίς να επέμβουμε στον πυρήνα, με τη μόνη προϋπόθεση η συσκευή μας να είναι rooted.

Η λύση είναι, "να πούμε" στο αρχείο που είναι υπεύθυνο για την επανεκκίνηση της συσκευής, να τρέξει και όλα τα script που έχουμε αποθηκευμένα σε αυτήν. Θεωρητικά μπορεί να δουλέψει σε όλες τις ROΜ του Android αρκεί να μάθουμε ποιο είναι αυτό το αρχείο. Θα το βρούμε στη διαδρομή /system/etc και εάν στη δική σας συσκευή υπάρχει ένα από τα:

  • init.qcom.post_boot.sh
  • init.post_boot.sh
  • post_boot.sh

μπορείτε να κατεβάσετε και να φλασάρετε (με δική σας ευθύνη) μέσω recovery το αρχείο Easy InitD από εδώ: Download

Για τους υπόλοιπους, αρκεί να βρείτε ποιο αρχείο περιέχει τις λέξεις "post boot" και άρα διαχειρίζεται το reboot και να προσθέσετε στο τέλος του (επίσης με δική σας ευθύνη), τη γραμμή:
/system/etc/init.d/*
Αφού το κάνετε, μπορείτε να βάλετε όποιο script θέλετε στη διαδρομή /system/etc/init.d και αυτό θα τρέξει αυτόματα σε κάθε επανεκκίνηση. Έτσι δεν πειράζουμε το σύστημά μας και μπορούμε να βγάζουμε και να βάζουμε τα script με ευκολία στη συσκευή μας.

Οποιοσδήποτε άλλος τρόπος μέχρι σήμερα προϋποθέτει μεγάλες αλλαγές στον πυρήνα, μέχρι και αντικατάστασή του. Αυτός ο τρόπος, αν και δεν ενεργοποιεί το init.d για να χρησιμοποιήσουμε για παράδειγμα το Swapper, είναι μία εύκολη και ασφαλής λύση για τη χρήση των script μας. Δοκιμάστε το και επωφεληθείτε.

Περισσότερες πληροφορίες στο νήμα του στο XDA.

 
© 2012-2015 Dr. Android | Original theme design by Main-Blogger - Blogger Template and Blogging Stuff | Material design by Chris K.