Kā atklāt slēptās ātrās palaišanas komandas

Jūsu ierīcē ir daudz slēptu ātrās palaišanas komandu. Lai tos atrastu, mums būs jāizmet sāknēšanas ielādētājs un jāpārbauda saturs!

Cenšoties uzzināt pēc iespējas vairāk par Android pielāgošanu, esmu izdarījis daudz neskaidru, tomēr interesantu atklājumu. Es jums parādīju, kā piekļūt slēptās izvēlnes ierīcē izsijājot visas slēptās lietojumprogrammu darbības savā tālrunī. Pavisam nesen es jums parādīju, kā piekļūt slēptās aparatūras diagnostikas rīks noteiktos viedtālruņos. Tagad es saprotu, ka daži no jums bija vīlušies par to, ka jūsu viedtālrunis netika apskatīts iepriekšējā rakstā, un es par to atvainojos.

Lai to kompensētu, es iepazīstināšu jūs ar kaut ko tālu, daudz progresīvāku un aizraujošāku: izmetot ierīces sāknēšanas ielādētāju, lai atklātu slēptās ātrās sāknēšanas komandas. Šī rokasgrāmata, lai gan tā ir sagatavota manā Nexus 6P, noteikti ir replicējams lielākajā daļā viedtālruņu. Tomēr komandas, kurām jums būs piekļuve, dažādās ierīcēs ievērojami atšķirsies. Lielākā daļa komandu jums nepalīdzēs nevienā reālā situācijā, taču tomēr ir diezgan interesanti padziļināti ienirt tālruņa iestatījumos. Sāksim.

Atruna. Kamēr jūs zināt, ko darāt, un varat pareizi izpildīt norādījumus, ar jūsu ierīci nedrīkst notikt nekas slikts. Taču mēs joprojām jaucamies ar mūsu ierīču nodalījumiem un sāknēšanas ielādētāju, tāpēc nevar pateikt, kas varētu notikt, ja ievadīsiet nepareizu komandu. Pārliecinieties, ka jums ir gatavs dublējums ārpus ierīces!


Sagatavošana

Pirms sākam, ir jāņem vērā viena ļoti, ļoti svarīga lieta. Lai izvilktu ierīces sāknēšanas ielādētāju, jums būs nepieciešama root piekļuve jūsu tālrunī. Ja jums nav root piekļuves, varat turpināt lasīt šo rokasgrāmatu izglītības nolūkos, taču nevarēsit izpildīt nevienu no nepieciešamajām komandām. Sapratu? Labi. Vēl viens priekšnoteikums, kas jums būs jāizpilda, ir nodrošināt, lai jūsu datorā būtu visi pareizi ADB/fastboot draiveri. Ja jums nav ADB/fastboot bināro failu, iesaku to instalēt Minimāls ADB un Fastboot no mūsu forumiem. Kas attiecas uz draiveriem, varat iegūt nepieciešamos draiverus Google Nexus ierīcēm šeit un visām pārējām ierīcēm no šeit. Kā jūs zināt, vai esat gatavs doties? Pievienojiet ierīci, iespējojiet USB atkļūdošanu sadaļā Izstrādātāja iestatījumi, atveriet komandu uzvedni un ierakstiet:

adb devices

Ja redzat uznirstošo ierīces sērijas numuru, jums ir piemēroti draiveri.


Bootloader izmešana

Mūsu pirmais solis ir ierīcē atvērt čaulu, lai mēs varētu palaist komandas, izmantojot ADB. Vislabāk ir palaist komandas, izmantojot ADB, jo mēs daudz biežāk pieļaujam kļūdas, rakstot uz virtuālās tastatūras, un kļūdīties šeit nevajadzētu darīt. Pirmā komanda, kas jāpalaiž komandu uzvednē, ir:

adb shell

Ja redzat, ka komandu uzvedne tiek rādīta no ADB binārā direktorija parādīšanas uz Android ierīces koda nosaukuma rādīšanu, tas nozīmē, ka esat veiksmīgi ievadījis ierīces lokālo komandrindas apvalku. Tagad, lai piekļūtu nodalījumiem, kas mums ir jāizmet, jums būs nepieciešama superlietotāja piekļuve. Lai to izdarītu, ierakstiet šo:

su

Simbolam pirms ierīces koda nosaukuma ir jāmainās no $ uz # norādot, ka tagad varat palaist komandas ar paaugstinātām privilēģijām. Esiet uzmanīgi tagad!

Tālāk mēs noskaidrosim precīzu jūsu ierīces sāknēšanas ielādes attēla atrašanās vietu. Lai atrastu precīzu direktoriju, mēs izdrukāsim visu nodalījumu un to direktoriju sarakstu pēc nosaukuma un meklēsim vienu ar nosaukumu "aboot.' Jums būs jāievada divas komandas šādi:

cd /dev/block/bootdevice/by-name
ls -all

Kā redzat iepriekš, tiek izdrukāts milzīgs nodalījumu direktoriju saraksts. Šie nodalījumi ir sakārtoti pēc nosaukuma, lai mēs varētu viegli noteikt mūsu bootloader nodalījuma atrašanās vietu. Manā gadījumā sāknēšanas ielādētājs, kas ir 'sākt' Iepriekš redzamajā attēlā var atrast /dev/block/mmcblk0p10. Šis mainīsies atkarībā no ierīces, tāpēc ir svarīgi ievērot šos norādījumus, lai noskaidrotu patieso direktoriju, kurā atrodas sāknēšanas programma. Tomēr ņemiet vērā šo direktoriju, jo mēs uz to atsauksimies šajā komandā, lai izmestu sāknēšanas ielādētāju:

dd if=/dev/block/{YOUR ABOOT PARTITION} of=/sdcard/aboot.img

Kad tas ir izdevies, jums vajadzētu atrast failu ar nosaukumu "aboot.imgatrodas jūsu iekšējās atmiņas saknē. Tagad, kad esam izmetuši sāknēšanas ielādētāju, mums tas ir jāpārbauda, ​​lai noteiktu, kādas slēptās komandas mēs varam atrast.


Slēptās ātrās sāknēšanas komandas un to lietojumi

Iespējams, esat iepazinies ar dažām biežāk lietotajām ātrās sāknēšanas komandām, piemēram, fastboot flash vai ātrās sāknēšanas sāknēšana. Ir daudz vairāk ātrās sāknēšanas komandu, kā noteikts atvērtā koda ātrās sāknēšanas protokols. Šeit ir saraksts ar ātrās sāknēšanas komandām, kas pieejamas katrā ierīcē ar sāknēšanas ielādētāju, kura pamatā ir jaunākais AOSP kods:

Šajā sarakstā trūkst ātrās palaišanas oem komandas. Šīs komandas ir specifisks Android ierīču ražotājiem, un nekur nav pieejams visaptverošs saraksts vai dokumentācija par to, kuras ātrās sāknēšanas oem komandas ir pieejamas. Tagad, ja jūsu ierīces ražotājs bija pietiekami laipns, lai nodrošinātu ātrās sāknēšanas komandu, kurā uzskaitītas visas oem komandas (mēģiniet fastboot oem? un pārbaudiet, vai tas darbojas), tad jums nekas vairs nav jādara. Ja nav nevienas komandas, kas izdrukātu pieejamo ātrās sāknēšanas oem komandu sarakstu, jums būs jādrukā stīgas no faila aboot.img un manuāli meklējiet oem komandas.

"strings" ir Linux komanda, kuras dokumentācija ir pieejams šeit. Kā jūs varat saprast, es personīgi izmantoju Windows datoru, tāpēc tā vietā es izmantoju a programma, kas atdarina "virknes" no Linux. Komandas "strings" neapstrādātā izvade failā aboot.img būs diezgan nekārtīgs, bet, ja jūs vienkārši nospiežat CTRL+F 'oem', jums vajadzētu atrast vajadzīgo. Ja vēlaties precizēt meklēšanu, varat izmēģināt šo komandu (Windows versijai, kuru es piesaistīju):

strings * | findstr /i oem

Nexus 6P es sastādīju šādu ātrās sāknēšanas oem komandu sarakstu:

fastboot oem unlock-go
fastboot oem frp-unlock
fastboot oem frp-erase
fastboot oem enable reduced-version
fastboot oem device-info
fastboot oem enable-charger-screen
fastboot oem disable-charger-screen
fastboot oem enable-bp-tools
fastboot oem disable-bp-tools
fastboot oem enable-hw-factory
fastboot oem disable-hw-factory
fastboot oem select-display-panel
fastboot oem off-mode-charge enable
fastboot oem off-mode-charge disable
fastboot oem ramdump enable
fastboot oem ramdump disable
fastboot oem uart enable
fastboot oem uart disable
fastboot oem hwdog certify begin
fastboot oem hwdog certify close
fastboot oem get-imei1
fastboot oem get-meid
fastboot oem get-sn
fastboot oem get-bsn
fastboot oem get_verify_boot_status

Brīdiniet, ka jums nevajadzētu mēģināt izpildīt nevienu no iepriekš minētajām komandām vai kādu no komandām, kuras atklājat savā ierīcē, ja vien nevēlaties uzņemties risku. Ir iemesls, kāpēc šīs komandas ir paslēptas no lietotāja.

To sakot, esmu izdomājis dažus glītus lietojumus dažām no šīm atrastajām ātrās sāknēšanas komandām (kas var būt vai nebūt atrodas jūsu ierīcē, tāpēc izpildiet iepriekš sniegtos norādījumus, lai pārbaudītu!), kam vajadzētu būt visgrūtākajam Android entuziasts. Šeit ir divas komandas, kurām varētu būt praktiska nozīme.

Vispirms ir fastboot oem (iespējot | atspējot) - lādētāja ekrāns komandu. Tas atspējo uzlādes ekrānu, kas tiek parādīts, kad ierīce ir izslēgta. Ja neesat lādēšanas ekrāna apžilbinošā spilgtuma cienītājs, kad tālrunis ir izslēgts, varat to atspējot, izmantojot šo slēpto ātrās palaišanas komandu!

Tālāk ir ātrās palaišanas OEM izslēgšanas režīma uzlāde (iespējot | atspējot) komandu. Šī komanda nosaka, vai ierīce automātiski ieslēgsies, kad tiek noteikts strāvas avots. Pēc noklusējuma tas ir iestatīts uz "atspējot". Atzīšos, ka šai komandai telefoniem nav liela pielietojuma, bet ja jūs plānojat uzstādīt planšetdatoru automašīnas informācijas panelī, jūs atradīsiet šo komandu neticami noderīga. Varēsiet iestatīt, lai ierīce nekavējoties ieslēgtos, kad planšetdators saņem strāvu, piemēram, kad tiek iedarbināts automašīnas akumulators. Un otrādi, planšetdatoru ir diezgan viegli izslēgt, ja pazūd strāva, izmantojot automatizācijas lietotni, piemēram, Tasker. Šī komanda, starp citu, darbojas tieši tā, kā rakstīts uz Nexus 7 (2013).


Tas ir viss šajā Android pielāgošanas nodarbībā. Kopīgojiet atklātās komandas (ideālā gadījumā pastebin saitē) zemāk esošajos komentāros!

Paldies XDA vecākajam atzītajam izstrādātājam Dees_Troy par palīdzību šī raksta tapšanā!