Kako DIY priključiti TWRP za Android

, možete pokušati raditi s manjim stablom, poput ovog Minimalni manifest TWRP . No, možda će biti situacija u kojima će vam trebati više repo poslova nego što ovaj manifest dopušta.



Glavna napomena prije sastavljanja: Ako dodate ili promijenite bilo koju zastavicu, morat ćete očistiti (ili napraviti clobber) prije ponovnog prevođenja, jer u suprotnom vaše promjene zastave neće biti uključene!

Nakon što nabavite izvorni kôd TWRP, moramo promijeniti neke od zastavica gradnje za vaš određeni uređaj. Pronađite BoardConfig.mk za svoj uređaj - obično će se to naći u uređaji / proizvođač / kodno ime (na primjer, devices / lge / hammerhead / BoardConfig.mk)



Konfiguracija ploče mora sadržavati arhitekturu i postavke platforme - one su obično već uključene ako upotrebljavate tuđu konfiguraciju uređaja. Ali ako ste stvorili vlastiti, morat ćete ih dodati. To je zato što se bez njih pokretanje oporavka može segmentirati i na vašem će zaslonu jednostavno treptati logotip TeamWin.



Zastave treba staviti na dno BoardConfig.mk, pod naslovom #twrp



Za svi uređaja, trebate uputiti TWRP koju temu koristiti. Oznaka TW_THEME koristi se umjesto starije zastave DEVICE_RESOLUTION, što znači da TWRP sada koristi skaliranje za razvlačenje bilo koje teme.

Vaše su mogućnosti: portrait_hdpi, portrait_mdpi, landscape_hdpi, landscape_mdpi i watch_mdpi. Za portretni način najvjerojatnije ćete htjeti hdpi temu od 720 × 1280 i više, ali za pejzažne uređaje koristite 1280 × 720 i više.

Dakle, vaš odjeljak zastavice gradnje + zastava teme trebao bi izgledati ovako:



#twrp

TW_THEME: = portret_hdpi

Neke dodatne zastavice izrade koje ćete željeti uključiti u ovaj odjeljak (zasluge za XDA forume):

  • RECOVERY_SDCARD_ON_DATA: = true (ovo omogućuje pravilno rukovanje / podacima / medijima na uređajima koji imaju tu mapu za pohranu (većina saća i uređaji koji su se izvorno isporučivali s ICS-om poput Galaxy Nexusa). Ova oznaka nije potrebna za ove vrste uređaja. nemojte definirati ovu zastavicu, a također ne uključuju nikakve reference na / sdcard, / internal_sd, / internal_sdcard ili / emmc u vašem fstabu, tada ćemo automatski pretpostaviti da uređaj koristi emuliranu pohranu.)
  • BOARD_HAS_NO_REAL_SDCARD: = true - onemogućava stvari poput particioniranja SD kartice i može vam uštedjeti malo prostora ako TWRP ne stane u vašu paticiju za oporavak
  • TW_NO_BATT_PERCENT: = true - onemogućava prikaz postotka baterije za uređaje koji ga ne podržavaju ispravno
  • TW_CUSTOM_POWER_BUTTON: = 107 - prilagođeno mapiranje gumba za uključivanje za zaključani zaslon
  • TW_NO_REBOOT_BOOTLOADER: = true - uklanja gumb za ponovno podizanje sustava iz izbornika za ponovno pokretanje
  • TW_NO_REBOOT_RECOVERY: = true - uklanja gumb za oporavak ponovnog pokretanja iz izbornika za ponovno pokretanje
  • RECOVERY_TOUCHSCREEN_SWAP_XY: = true - zamjenjuje mapiranje dodira između osi X i Y
  • RECOVERY_TOUCHSCREEN_FLIP_Y: = true - prevrće vrijednosti zaslona osjetljivog na os y
  • RECOVERY_TOUCHSCREEN_FLIP_X: = true - okreće x os vrijednosti zaslona osjetljivog na dodir
  • TWRP_EVENT_LOGGING: = true - omogućuje evidentiranje događaja dodira radi otklanjanja pogrešaka na dodirnom zaslonu (ne ostavljajte ovo uključeno za izdanje - vrlo brzo će popuniti vašu datoteku dnevnika)
  • BOARD_HAS_FLIPPED_SCREEN: = true - okreće zaslon naopako za zaslone koji su postavljeni naopako

Dodatne se zastavice izrade mogu pronaći pregledavanjem datoteka Android.mk u izvoru oporavka, ali obično se ne koriste pa ih nema smisla dokumentirati.

Korištenje Recovery.Fstab

TWRP 2.5 i novije verzije imaju podršku za nove značajke recovery.fstab - posebno mogućnost proširenja TWRP-ovih funkcija sigurnosnog kopiranja / vraćanja. Ne trebate dodavati fstab zastavice, jer će se većina particija automatski obrađivati.

TWRP podržava samo v2 fstabs u verziji 3.2.0 i novijim - u starijim verzijama TWRP-a morat ćete koristiti stari format fstaba. Evo primjera TWRP fstaba za Galaxy S4:

Da biste maksimizirali kompatibilnost s vašim određenim stablom gradnje, možete stvoriti twrp.fstab i pomoću PRODUCT_COPY_FILES smjestiti u> etc> twrp.fstab.

Kada TWRP pokrene i pronađe twrp.fstab u ramdisku, preimenovat će ga u> etc> recovery.fstab.bak - u osnovi zamjenjuje fstab s vašeg uređaja TWRP fstab, što proširuje kompatibilnost.

Primjer koda:

PRODUCT_COPY_FILES + = device / lge / hammerhead / twrp.fstab: recovery> root> etc> twrp.fstab

Fstab u TWRP-u može sadržavati neke 'zastavice' za svaku particiju navedenu u fstab-u.

Te su zastave dodane do kraja popisa particija u fstabu, odvojeno razmacima / razmacima / karticama. Zastava će utjecati samo na tu particiju, ali ne i na ostale. Zastave su odvojene zarezom. Evo primjera koda:

Pa ispitajmo ovo malo po malo. Oznaka ovdje dat će naziv za prikaz 'Micro SDcard'. Oznaka wipeingui učinit će ovu particiju dostupnom za brisanje u izborniku Napredno brisanje. Oznaka koja se može ukloniti označava da ova particija nije uvijek prisutna, što će spriječiti prikazivanje pogrešaka u montiranju.

Cjelovit popis zastava (krediti za TeamWin) :

  • uklonjiv - označava da particija možda nije prisutna što sprječava prikazivanje pogrešaka pri montiranju tijekom pokretanja
  • skladište - označava da se particija može koristiti kao spremište što particiju čini dostupnom kao spremište za sigurnosno kopiranje, vraćanje, zip instalacije itd.
  • pohrana postavki - samo jedna particija treba biti postavljena kao pohrana postavki, ova se particija koristi kao mjesto za pohranu datoteke postavki TWRP-a
  • canbewiped - označava da particiju može obrisati pozadinski sustav, ali možda neće biti naveden u GUI-ju za brisanje od strane korisnika
  • userrmrf - poništava uobičajeni oblik brisanja i omogućuje brisanje particije samo pomoću naredbe rm -rf
  • sigurnosna kopija = - mora biti naslijeđena znakom jednakosti, tako da sigurnosna kopija = 1 ili sigurnosna kopija = 0, 1 označava da se particija može naći na popisu za sigurnosno kopiranje / vraćanje, dok 0 osigurava da se ta particija neće prikazati na popisu za sigurnosne kopije.
  • wipeingui - čini da se particija prikazuje u GUI-ju kako bi se omogućilo korisniku da je odabere za brisanje u naprednom izborniku brisanja
  • wipeduringfactoryreset - particija će se izbrisati tijekom vraćanja na tvorničke postavke
  • ignoreblkid - blkid se koristi za određivanje kojeg datotečnog sustava koristi TWRP, ova će zastavica uzrokovati da TWRP preskoči / zanemari rezultate blkida i koristi datotečni sustav naveden samo u fstab-u
  • retainlayoutversion - uzrokuje da TWRP zadrži datoteku .layoutversion u / data na uređajima poput Sony Xperia S koji se koristi / podacima / medijima, ali još uvijek ima zasebnu / sdcard particiju
  • simbolična veza = - uzrokuje da TWRP pokrene dodatnu naredbu za montiranje prilikom montiranja particije, koja se obično koristi s / data / media za izradu / sdcard
  • prikaz = - postavlja ime za prikaz particije za uvrštavanje u GUI
  • naziv skladišta = - postavlja naziv memorije za particiju za uvrštavanje na popis za pohranu u GUI
  • rezervno ime = - postavlja rezervno ime za particiju za uvrštavanje na GUI popis za sigurnosno kopiranje / vraćanje
    length = - obično se koristi za rezerviranje praznog prostora na kraju / podatkovne particije za spremanje ključa za dešifriranje kada je prisutna Androidova potpuna enkripcija, ako to ne postavite, to može dovesti do nemogućnosti šifriranja uređaja
  • canencryptbackup = - 1 ili 0 za omogućavanje / onemogućavanje, čini TWRP šifriranjem sigurnosne kopije ove particije ako korisnik odabere šifriranje (odnosi se samo na sigurnosne kopije tar-a, a ne na slike)
  • userdataencryptbackup = - 1 ili 0 za omogućavanje / onemogućavanje, čini TWRP šifriranjem samo dijela korisničkih podataka ove particije, određene podfldule poput / data / app ne bi se šifrirale radi uštede vremena
  • subpartitionof = - mora biti naslijeđen znakom jednakosti i stazom particije kojoj je podparticija. Podparticija se tretira kao 'dio' glavne particije, tako na primjer, TWRP automatski čini / datadata podparticijom / data. To znači da se / datadata neće prikazivati ​​u popisima na GUI-ju, ali / datadata će se izbrisati, sigurnosno kopirati, obnoviti, montirati i demontirati u bilo kojem trenutku kad se te operacije izvrše na / data.

Dobar primjer upotrebe poddionika su 3x efs particije na LG Optimusu G:

To grupira sve 3 particije u jedan 'EFS' unos u TWRP GUI-u, omogućavajući da se sve tri sigurnosne kopije i obnove pod jednim unosom.

Uz TWRP 3.2.0 i novije verzije koji koriste V2 Fstab, vi ne trebaju dodavati nikakve zastavice gradnje . Podrška za V2 Fstab je automatska. V2 Fstab također podržava zamjenske znakove (simbol *) koji mogu biti korisni za USB OTG i micro-SD kartice s više particija. Također možete nastaviti koristiti V1 Fstab format, a u potpunosti je moguće koristiti i V1 i V2 vrste u istom Fstabu.

Na primjer, ovdje je linija V1 Fstab s zamjenskim znakom namijenjenim USB OTG-u:

Evo linije V2 Fstab za isti uređaj koji postiže isti rezultat:

Uz to možete uključiti itd. Twrp.flags koji koriste V1 Fstab format, a mogu se koristiti za nadopunu V2 Fstaba s TWRP zastavicama, dodatne particije koje nisu uključene u V2 Fstab ili nadjačane postavke u V2 Fstab.

Na primjer, Huawei uređaj može imati ovaj V2 fstab u datoteci etc recovery.fstab:

Može sadržavati i ove zastavice:

Dakle, ovdje će prva dva retka u TWRP.Flags dodati particiju Boot i Recovery, koje nisu bili prisutni u V2 Fstab. Zatim će linija / cust u TWRP.flags uputiti TWRP da omogući krajnjem korisniku sigurnosnu kopiju (cust) particije i da joj ime za prikaz.

Particija / misc prisutna je u twrp.flags, a particija / oeminfo nalaže TWRP-u da također omogući sigurnosno kopiranje i davanje imena za prikaz.

Linija / data nam je potrebna jer su mnogi Huaweijevi uređaji šifrirani, ali koriste posebne Huaweijeve binarne datoteke - stoga koristimo Huaweijeve binarne datoteke za automatsko dešifriranje uređaja u načinu oporavka. Dakle, linija podataka / data će uputiti TWRP da koristi / dev / block / dm -0, a ne / dev / block / bootdevice / by-name / userdata, koji se obično koristi za 'pravilno' montiranje '.

Napokon postoji / system_image, tako da će TWRP uključiti opciju za stvaranje slike sustava u izbornicima Backup and Restore.

Službeni TeamWin github trebao bi sadržavati i najnovije primjere stabala uređaja za uređaje koji imaju službeni TWRP priključak. Može se pronaći TeamWin github OVDJE .

Nakon što se Omni ili CM sinkroniziraju i postavite TWRP zastavice, trebali biste izraditi izvor ./build/envsetup.sh

A vi ćete htjeti 'ručati' uređaj, pa možete učiniti nešto poput 'ručak omni_hammerhead.eng'.

Nakon uspješnog ručka, većina uređaja koristit će ovu naredbu:

Morate zamijeniti # u –j # brojem jezgara +1. Dakle, ako imate dualnu jezgru, to je –j3, četverostruki prikaz bit će –j5 itd. Zamijenite # brojem jezgre +1, dakle ako imate dvojažnu jezgru to je -j3, a četverojezgrena postaje -j5 itd.

Također, tipični Samsung uređaji zahtijevat će ovo:

To je zato što većina Samsung uređaja uključuje oporavak kao dodatni ramdisk u prtljažniku, umjesto na zasebnoj particiji za oporavak (koju koristi većina drugih uređaja).

Do sada biste trebali imati kompajlirani TWRP za svoj uređaj i nadamo se da radi u okruženju emulatora. Uvijek biste trebali prvo testirati svoj TWRP priključak u okruženju emulatora, tako da ne riskirate dosadnost uređaja.
Preuzmite ovaj skup datoteka s konfiguracijom uređaja.

Sastavite sliku za oporavak pomoću tih datoteka uređaja. U Android SDK-u kliknite Alati -> Upravljanje AVD-ovima. Kliknite Novo. Postavite ga na sljedeći način:

Zatim kliknite U redu.

Nakon što nabavite AVD i sliku za oporavak, možete pokrenuti TWRP u emulatoru pregledavanjem mape android-sdk / tools i pokrenuti ovu naredbu:

Imajte na umu da ADB ne radi odmah. Otprilike 10 do 15 sekundi nakon što TWRP završi pokretanje, ADB će se uključiti. ADB pokrećemo putem init.rc, pa čak i ako se TWRP ne uspije pokrenuti zbog neke pogreške koda koju ste možda napravili, ADB bi i dalje trebao raditi. Uživati!

TWRP i A / B uređaji (krediti za TeamWin):

S gledišta TWRP-a, A / B uređaji se ne razlikuju puno od uobičajenih uređaja, no čini se da su programeri sramežljivi u radu na tim uređajima. Pokušat ću rasvijetliti ovu temu i nadam se da će ovo poslužiti kao vodič za prijenos TWRP-a na A / B uređaje.

Prvo, shvatimo što je A / B uređaj i kako se razlikuje. A / B uređaji imaju duplikate mnogih particija na uređaju. A / B uređaj ima 2x sistemske particije, 2x particije za pokretanje, 2x particije dobavljača, 2x particije modema / firmvera itd. Istodobno se koristi samo jedan utor. Tijekom ranog pokretanja, prve faze pokretačkog programa učitavaju malu količinu podataka nazvanih BCB ili upravljački blok pokretačkog programa i odlučuju hoće li pokrenuti A ili B particije. Kada je dostupno ažuriranje OTA, podaci iz aktivnog utora kopiraju se iz neaktivnog utora i popravljaju / ažuriraju. Na primjer, ako ste trenutno na utoru A, vaš uređaj će preuzeti ažuriranje i kopirati postojeću sistemsku particiju iz utora A i zakrpati / ažurirati novim ažuriranjima u utor B. Nakon završetka kopiranja i ažuriranja, BCB se ažurira i uređaj se ponovno pokreće pomoću utora B. Sljedeći put kada je dostupno ažuriranje, sistemska particija u utoru B se kopira u utor A i ažurira, BCB se ažurira, a mi se ponovno pokrećemo u utor A. Prilikom pregledavanja particija na uređaju, vidjet ćete nešto poput ovoga:

Primijetite dvostruke particije za dizanje, sustav i dobavljača s gornjeg popisa, ali samo jednu particiju korisničkih podataka.

Iako tehnički ne postoji zahtjev koji mi je poznat, svi do sada isporučeni A / B uređaji nemaju zasebnu particiju za oporavak. Umjesto toga, slika pokretanja sadrži oporavak u svom disku. Važno je znati da slika pokretanja sada također sadrži oporavak. Za potpunost, sistemska je particija cjeloviti korijenski datotečni sustav. Tijekom dizanja, ako se kernelu kaže da se pokrene do oporavka, izvući će ramdisk u particiji za pokretanje. Ako učitač jezgru ne kaže da se pokrene do oporavka, tada će jezgra montirati odgovarajuću sistemsku particiju (A ili B) jer je sistemska particija puni korijenski datotečni sustav. To znači da je sistemska particija na tim uređajima montirana na / umjesto na / sustav, a sistemska particija sadrži sve datoteke koje bi se obično nalazile na ramdisku boot slike i / / sistemskoj podmapi.

Sa stajališta TWRP-a postoje 3 stvari koje morate učiniti za A / B uređaj. Prvo, morate postaviti

Kodirati:

I na kraju, nakon što uđete u TWRP, vjerojatno ćete htjeti biti sigurni da bootctl hal-info ispravno reagira bez grešaka. Obično bootctl binarni sustav zahtijeva vlasničku knjižnicu ili čak nekoliko usluga da bi ispravno radili. Ako bootctl ne radi ispravno, ni tada nećete moći pravilno prebaciti utor unutar TWRP-a.

Pored postavljanja

Kodirati:

AB_OTA_UPDATER: = točno

možda ćete htjeti postaviti i:

Kodirati:

BOARD_USES_RECOVERY_AS_BOOT: = točno

BOARD_BUILD_SYSTEM_ROOT_IMAGE: = točno

Ako postavite

Kodirati:

BOARD_USES_RECOVERY_AS_BOOT: = točno

tada slika za oporavak više neće raditi, a umjesto toga morat ćete napraviti sliku za pokretanje. Ne preporučujem postavljanje bilo koje od ovih zastavica za stabla izrade samo za TWRP. Ove će zastavice vjerojatno biti potrebne programerima koji izrađuju pune ROM-ove za A / B uređaje.

Instaliranje / treptanje TWRP-a na A / B uređajima:

Budući da svi poznati A / B uređaji nemaju zasebnu particiju za oporavak, na kraju ćete morati flash TWRP-u do particije za pokretanje. Na Pixelu 1 i 2 koristimo fastboot boot za privremeno pokretanje TWRP-a bez bljeskanja TWRP-a. Zatim isporučujemo zip kako bismo korisnicima omogućili da flash TWRP prebace u oba utora. Možete preuzeti jedan od ovih zipova s ​​našeg web mjesta i ažurirati zip po potrebi kako bi podržao vaše uređaje. Na kraju ćemo TWRP-u dodati alate koji će korisnicima omogućiti brzi oporavak na tim uređajima bez potrebe za patentnim zatvaračima.

Nedavno sam radio na Razer telefonu. Razer Phone nažalost ne podržava fastboot boot. Umjesto toga, korisnici moraju odrediti svoj trenutno aktivni utor za pokretanje

Kodirati:

ući u TWRP. Jednom u TWRP-u mogu otići na stranicu za ponovno pokretanje i vratiti se na izvorno aktivni utor, napraviti sigurnosnu kopiju, a zatim instalirati TWRP. Korištenje neaktivnog utora omogućuje korisnicima da dobiju dobru, neizmijenjenu sigurnosnu kopiju svog uređaja prije instaliranja TWRP-a.

Dodatne napomene:

Ako želite dobiti TWRP službeno podržana za vaš uređaj kako bi se mogao automatski instalirati s aplikacijom TWRP, a vi to stvarno želite učiniti kako bi drugi vlasnici istog uređaja mogli uživati ​​u službenoj podršci za TWRP, a to je lijepa stvar, morat ćete poslati sljedeće podatke na TeamWin:

  1. Datoteke za konfiguraciju uređaja za kompajliranje TWRP-a iz izvora za vaš uređaj - nemojte prepakirati oporavak.img ručno , trebaju ga sastaviti iz izvora.
  2. Nakon što TeamWin izradi kopiju TWRP-a, poslat će vam je na provjeru - nakon što je potvrdite, TeamWin će stvoriti radnu sliku za vaš uređaj i dodati je u službenu aplikaciju TWRP.
13 minuta čitanja