Kako narediti DIY Port TWRP za Android

, lahko poskusite delati z manjšim drevesom, kot je to Minimalni manifest TWRP . Vendar lahko v nekaterih situacijah potrebujete več repozitov, kot dovoljuje ta manifest.



Glavna opomba pred sestavljanjem: Če dodate ali spremenite katero koli zastavico, jo boste morali pred ponovnim prevajanjem očistiti (ali narediti clobber), sicer spremembe zastavice ne bodo vključene!

Ko dobite izvorno kodo TWRP, moramo spremeniti nekatere zastavice gradnje za vašo določeno napravo. Poiščite BoardConfig.mk za svojo napravo - običajno jo najdete v naprave / proizvajalec / kodno ime (na primer device / lge / hammerhead / BoardConfig.mk)



Konfiguracija plošče mora vključevati arhitekturo in nastavitve platforme - te so običajno že vključene če uporabljate konfiguracijo naprave nekoga drugega. Če pa ste ustvarili svojega, jih boste morali dodati. To je zato, ker se brez njih obnovitveni zagon lahko privzeto prikaže in na zaslonu večkrat utripa logotip TeamWin.



Zastave naj bodo na dnu BoardConfig.mk pod naslovom #twrp



Za vse naprav, morate TWRP poučiti, katero temo naj uporablja. Zastavica TW_THEME se uporablja namesto starejše zastavice DEVICE_RESOLUTION, kar pomeni, da TWRP zdaj uporablja skaliranje za raztezanje katere koli teme.

Vaše možnosti so: portrait_hdpi, portrait_mdpi, landscape_hdpi, landscape_mdpi in watch_mdpi. Za pokončni način boste najverjetneje želeli temo hdpi 720 × 1280 in več, za ležeče naprave pa 1280 × 720 in več.

Torej bi moral biti vaš del zastavice gradnje + zastava teme videti tako:



#twrp

TW_THEME: = portret_hdpi

Nekaj ​​dodatnih zastavic za gradnjo, ki jih boste želeli vključiti v ta razdelek (zasluge za forume XDA):

  • RECOVERY_SDCARD_ON_DATA: = true (to omogoča pravilno obdelavo / podatkov / medijev na napravah, ki imajo to mapo za shranjevanje (večina satja in naprave, ki so bile prvotno dobavljene z ICS, kot je Galaxy Nexus). Ta zastavica za te vrste naprav ni potrebna. ne določite te zastavice in tudi ne vključite nobenih sklicev na / sdcard, / internal_sd, / internal_sdcard ali / emmc v vašem fstabu, potem bomo samodejno domnevali, da naprava uporablja emulirano shrambo.)
  • BOARD_HAS_NO_REAL_SDCARD: = true - onemogoči stvari, kot je particioniranje kartice SD in vam lahko prihrani nekaj prostora, če TWRP ni primeren za vašo obnovitveno particijo
  • TW_NO_BATT_PERCENT: = true - onemogoči prikaz odstotka baterije za naprave, ki ga ne podpirajo pravilno
  • TW_CUSTOM_POWER_BUTTON: = 107 - po meri preslika gumb za vklop za zaklenjeni zaslon
  • TW_NO_REBOOT_BOOTLOADER: = true - odstrani gumb za ponovni zagon zagonskega nalagalnika iz menija za ponovni zagon
  • TW_NO_REBOOT_RECOVERY: = true - odstrani gumb za ponovni zagon iz menija za ponovni zagon
  • RECOVERY_TOUCHSCREEN_SWAP_XY: = true - zamenja preslikavo dotikov med osjo X in Y
  • RECOVERY_TOUCHSCREEN_FLIP_Y: = true - spremeni vrednosti zaslona na dotik y osi
  • RECOVERY_TOUCHSCREEN_FLIP_X: = true - spremeni vrednosti zaslona na dotik x osi
  • TWRP_EVENT_LOGGING: = true - omogoča beleženje dogodkov na dotik za lažje odpravljanje težav z zaslonom na dotik (ne pustite tega vklopljenega za sprostitev - vaš dnevnik bo napolnjen zelo hitro)
  • BOARD_HAS_FLIPPED_SCREEN: = true - zaslon obrne na glavo za zaslone, ki so bili nameščeni na glavo

Dodatne zastavice za gradnjo lahko najdete s preletom datotek Android.mk v obnovitvenem viru, vendar se običajno ne uporabljajo, zato jih ni smiselno dokumentirati.

Uporaba Recovery.Fstab

TWRP 2.5 in novejši ima podporo za nove funkcije recovery.fstab - zlasti možnost razširitve funkcij za varnostno kopiranje / obnovitev TWRP. Oznak fstab vam ni treba dodati, ker bo večina particij samodejno obdelana.

TWRP podpira različice fstabs v2 v različici 3.2.0 in novejših - v starejših različicah TWRP boste morali uporabiti staro obliko fstab. Tu je primer TWRP fstab za Galaxy S4:

Če želite povečati združljivost z vašim določenim drevesnim drevesom, lahko ustvarite twrp.fstab in uporabite PRODUCT_COPY_FILES, da ga postavite v> etc> twrp.fstab.

Ko TWRP zažene in v ramdisku najde twrp.fstab, ga bo preimenoval v> etc> recovery.fstab.bak - v bistvu nadomesti fstab iz vaše naprave s TWRP fstab, ki razširja združljivost.

Primer kode:

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

Fstab v TWRP lahko vsebuje nekaj 'zastavic' za vsako particijo, navedeno v fstab.

Te zastavice so dodane do konca seznama particij v fstabu, ločen s presledki / presledki / zavihki. Oznaka bo vplivala samo na to particijo, ne pa tudi na druge. Zastave so ločene s podpičji. Tu je nekaj primerov kode:

Torej, preučimo to po delčkih. Tu zastava bo imela prikazno ime »Micro SDcard«. Oznaka wipeingui bo omogočila brisanje te particije v meniju Advanced Wipe. Odstranljiva zastavica pomeni, da ta particija ni vedno prisotna, kar bo preprečilo prikaz napak pri namestitvi.

Popoln seznam zastav (krediti za TeamWin) :

  • odstranljiv - označuje, da particija morda ni prisotna, kar preprečuje prikazovanje napak pri namestitvi med zagonom
  • shranjevanje - označuje, da je particijo mogoče uporabiti kot pomnilnik, zaradi česar je particija na voljo kot shramba za varnostno kopiranje, obnovitev, namestitev zip itd.
  • shranjevanje nastavitev - kot pomnilnik nastavitev je treba nastaviti samo eno particijo, ta particija se uporablja kot mesto za shranjevanje nastavitvene datoteke TWRP
  • lahko obrisan - označuje, da lahko particijo obriše zaledni sistem, vendar morda ni naveden v GUI za brisanje s strani uporabnika
  • userrmrf - preglasi običajni način brisanja in omogoča brisanje particije samo z ukazom rm -rf
  • backup = - naslediti mora znak enačbe, zato backup = 1 ali backup = 0, 1 pomeni, da je particijo mogoče uvrstiti na seznam varnostnih kopij / obnovitev, medtem ko 0 zagotavlja, da ta particija ne bo prikazana na seznamu varnostnih kopij.
  • wipeingui - omogoči, da se particija prikaže v grafičnem uporabniškem vmesniku, tako da jo lahko uporabnik izbere za brisanje v naprednem meniju brisanja
  • brisanje tovarniške ponastavitve - particija bo med ponastavitvijo na tovarniške nastavitve izbrisana
  • ignoreblkid - blkid se uporablja za določanje, kateri datotečni sistem uporablja TWRP, ta zastavica bo povzročila, da TWRP preskoči / prezre rezultate blkid in uporabi datotečni sistem, določen samo v fstab
  • zadrži različico - povzroči, da TWRP ohrani datoteko .layoutversion v / data na napravah, kot je Sony Xperia S, ki se nekako uporablja / data / media, vendar ima še vedno ločeno particijo / sdcard
  • simbolna povezava = - povzroči, da TWRP pri namestitvi particije zažene dodaten ukaz za pritrditev, ki se običajno uporablja z / data / media za ustvarjanje / sdcard
  • zaslon = - nastavi prikazno ime particije za uvrstitev v GUI
  • ime shranjevanja = - nastavi ime pomnilnika za particijo za uvrstitev na seznam shranjevanja v GUI
  • rezervno ime = - nastavi varnostno ime particije za uvrstitev na seznam za varnostno kopiranje / obnovitev GUI
    dolžina = - običajno se uporablja za rezerviranje praznega prostora na koncu / podatkovne particije za shranjevanje ključa za dešifriranje, kadar je prisotno celotno šifriranje naprave Android, če tega ne nastavite, lahko povzroči šifriranje naprave
  • canencryptbackup = - 1 ali 0 za omogočanje / onemogočanje, omogoča, da TWRP šifrira varnostno kopijo te particije, če uporabnik izbere šifriranje (velja samo za varnostne kopije tar, ne za slike)
  • userdataencryptbackup = - 1 ali 0 za omogočanje / onemogočanje, omogoči, da TWRP šifrira samo del uporabniških podatkov te particije, nekateri podfuldi, kot je / data / app, ne bi bili šifrirani, da bi prihranili čas
  • podrazdelka = - mora naslediti znak enačbe in pot particije, katere del je. Podrazdelek se obravnava kot »del« glavne particije, zato na primer TWRP samodejno naredi / datadata podrazdelek / data. To pomeni, da / datadata ne bo prikazan v seznamih GUI, ampak / datadata bi bili izbrisani, varnostno kopirani, obnovljeni, nameščeni in demontirani, kadar koli se te operacije izvajajo na / data.

Dober primer uporabe poddelkov so particije 3x efs na LG Optimus G:

To združi vse tri particije v en vnos »EFS« v GUI TWRP, kar omogoča varnostno kopiranje in obnovo vseh treh pod enim vnosom.

Z TWRP 3.2.0 in novejšimi, ki uporablja V2 Fstab, ste vi ni treba dodajati nobenih zastavic za gradnjo . Podpora za V2 Fstab je samodejna. V2 Fstab podpira tudi nadomestne znake (simbol *), ki so lahko uporabni za kartice OTG USB in micro-SD z več particijami. Prav tako lahko še naprej uporabljate format V1 Fstab in v istem Fstabu je povsem mogoče uporabiti obe vrsti V1 in V2.

Tu je na primer vrstica V1 Fstab z nadomestnim znakom, namenjenim USB OTG:

Tu je linija V2 Fstab za isto napravo, ki doseže enak rezultat:

Poleg tega lahko vključite itd. Twrp.flags, ki uporabljajo format V1 Fstab, in jih je mogoče uporabiti za dopolnitev V2 Fstab z zastavicami TWRP, dodatnimi particijami, ki niso vključene v V2 Fstab, ali preglasnimi nastavitvami v V2 Fstab.

Na primer, naprava Huawei ima lahko ta V2 fstab v datoteki etc recovery.fstab:

Vključuje lahko tudi naslednje zastavice:

Torej, tukaj bosta prvi dve vrstici v TWRP.Flags dodali particiji Boot in Recovery, ki niso bili prisotni v V2 Fstab. Nato bo vrstica / cust v TWRP.flags navodila TWRP, naj končnemu uporabniku omogoči varnostno kopiranje particije (cust) in ji da prikazno ime.

Particija / misc je prisotna v twrp.flags, particija / oeminfo pa TWRP naroči, naj omogoči tudi varnostno kopiranje in prikazno ime.

Vrstico / data potrebujemo, ker je veliko naprav Huawei šifriranih, vendar uporabljamo posebne binarne datoteke Huawei - tako uporabljamo binarne datoteke Huawei za samodejno dešifriranje naprave v načinu za obnovitev. Torej, tukaj / data line bo TWRP naročil, naj uporablja / dev / block / dm -0 in ne / dev / block / bootdevice / by-name / userdata, ki se običajno uporablja za 'pravilno' namestitev.

Na koncu je še / system_image, tako da bo TWRP vključil možnost ustvarjanja sistemske slike v menijih Varnostno kopiranje in obnovitev.

Uradni github TeamWin bi moral vsebovati tudi najnovejše primere dreves naprav za naprave, ki imajo uradna vrata TWRP. Najdete github TeamWin TUKAJ .

Po sinhronizaciji Omni ali CM in ko ste nastavili zastavice TWRP, zgradite vir ./build/envsetup.sh

In napravo boste želeli 'kosili', tako da boste lahko naredili nekaj, kot je 'kosilo omni_hammerhead.slg'.

Po uspešnem kosilu bo večina naprav uporabila ta ukaz:

Zamenjati morate # in –j # s številom jeder +1. Torej, če imate dvojno jedro, je –j3, quadcore bo –j5 itd. Zamenjajte # s številom jeder +1, torej če imate dvojno jedro, je -j3 in štirijedrnik postane -j5 itd.

Tipične naprave Samsung bodo to tudi zahtevale:

To je zato, ker večina naprav Samsung vključuje obnovitev kot dodaten pomnilniški disk v prtljažniku, namesto na ločeni obnovitveni particiji (ki jo uporablja večina drugih naprav).

Do zdaj bi morali za svojo napravo pripraviti TWRP in upamo, da deluje v okolju emulatorja. Vedno morate najprej preizkusiti vrata TWRP v okolju emulatorja, da ne boste tvegali zadrževanja naprave.
Prenesite ta niz konfiguracijskih datotek naprave.

S pomočjo datotek naprave sestavite obnovitveno sliko. V SDK za Android kliknite Orodja -> Upravljanje AVD-jev. Kliknite Novo. Nastavite ga tako:

Nato kliknite V redu.

Ko imate AVD in obnovitveno sliko, lahko v emulatorju zaženete TWRP tako, da poiščete mapo android-sdk / tools in zaženete ta ukaz:

Upoštevajte, da ADB ne deluje takoj. Približno 10 do 15 sekund po tem, ko se TWRP konča z zagonom, bo ADB vzpostavljen. ADB zaženemo prek init.rc, tudi če se TWRP ne zažene zaradi neke vrste napake kode, ki ste jo morda storili, bi moral ADB še vedno delovati. Uživajte!

Naprave TWRP in A / B (krediti za TeamWin):

Z vidika TWRP se A / B naprave ne razlikujejo bistveno od običajnih naprav, vendar se zdi, da se razvijalci sramežljivo delajo na teh napravah. Poskusil bom osvetliti to temo in upam, da bo to vodilo pri prenosu TWRP na A / B naprave.

Najprej razumemo, kaj je A / B naprava in kako drugačna. A / B naprave imajo na njej dvojnike številnih particij. A / B naprava ima 2x sistemske particije, 2x zagonske particije, 2x prodajni particiji, 2x particiji modema / vdelane programske opreme itd. Naenkrat se uporablja samo ena reža. Med zgodnjim zagonom so prve stopnje zagonskega nalagalnika prebrale nekaj majhne količine podatkov, imenovane BCB ali Bootloader Control Block, in se odloči, ali naj zažene particije A ali B. Ko je na voljo posodobitev OTA, se podatki iz aktivne reže kopirajo iz neaktivne reže in popravijo / posodobijo. Če ste na primer trenutno v reži A, bo naprava prenesla posodobitev in kopirala obstoječo sistemsko particijo iz reže A ter jo popravila / posodobila z novimi posodobitvami v režo B. Ko je kopiranje in posodobitev končana, BCB se posodobi in naprava se znova zažene z režo B. Naslednjič, ko bo na voljo posodobitev, se sistemska particija v reži B kopira v režo A in posodobi, BCB se posodobi in znova zaženemo v režo A. Ko si ogledujemo particije v napravi, videli boste nekaj takega:

Upoštevajte dvojne zagonske, sistemske in prodajne particije na zgornjem seznamu, vendar le eno particijo z uporabniškimi podatki.

Čeprav tehnično ne poznam nobene zahteve, ki bi mi bila znana, vse do zdaj dobavljene A / B naprave nimajo ločene obnovitvene particije. Namesto tega zagonska slika vsebuje obnovitev v svojem disku. Pomembno je vedeti, da zagonska slika zdaj vsebuje tudi obnovitev. Za popolnost je sistemska particija poln korenski datotečni sistem. Če bo jedru med zagonom rečeno, da se zažene do obnovitve, bo izvlekel ramdisk v zagonski particiji. Če zagonski nalagalnik jedru ne naroči, naj se zažene do obnovitve, bo jedro namestilo ustrezno sistemsko particijo (A ali B), ker je sistemska particija poln korenski datotečni sistem. To pomeni, da je sistemska particija na teh napravah nameščena v / namesto v / sistem in sistemska particija vsebuje vse datoteke, ki bi bile običajno v zagonski sliki ramdisk in / / sistemski podmapi.

S stališča TWRP morate za A / B napravo narediti 3 stvari. Najprej morate nastaviti

Koda:

Nazadnje, ko enkrat vstopite v TWRP, boste verjetno želeli zagotoviti, da se bootctl hal-info pravilno odzove brez napak. Običajno bootctl binarni sistem zahteva pravilno lastniško knjižnico ali celo nekaj storitev. Če bootctl ne deluje pravilno, tudi reže znotraj TWRP ne boste mogli pravilno preklopiti.

Poleg nastavitve

Koda:

AB_OTA_UPDATER: = res

morda boste želeli nastaviti tudi:

Koda:

BOARD_USES_RECOVERY_AS_BOOT: = res

BOARD_BUILD_SYSTEM_ROOT_IMAGE: = res

Če nastavite

Koda:

BOARD_USES_RECOVERY_AS_BOOT: = res

potem obnovitev slike ne bo več delovala in namesto nje boste morali narediti zagonsko sliko. Ne priporočam nastavitve nobene od teh zastavic za drevesa, ki gradijo samo TWRP. Te zastave bodo verjetno potrebne za razvijalce, ki gradijo polne ROM-je za naprave A / B.

Namestitev / utripanje TWRP na A / B napravah:

Ker vse znane A / B naprave nimajo ločene obnovitvene particije, boste sčasoma morali TWRP utripati do zagonske particije. Pri Pixlu 1 in 2 uporabljamo zagon s hitrim zagonom, da začasno zaženemo TWRP brez utripanja TWRP. Nato dobavljamo zadrgo, ki uporabnikom omogoča, da v obe reži prižgejo TWRP. Eno od teh zadrg lahko prenesete z našega spletnega mesta in po potrebi posodobite zadrgo, da podpira vaše naprave. Sčasoma bomo TWRP dodali orodja, ki bodo uporabnikom omogočala bliskovito obnovitev na teh napravah, ne da bi morali uporabljati zadrge.

Pred kratkim sem delal na Razer telefonu. Razer Phone žal ne podpira hitrega zagona. Namesto tega morajo uporabniki določiti svojo trenutno aktivno zagonsko režo z uporabo

Koda:

priti v TWRP. Ko so v TWRP, lahko nato preidejo na stran za ponovni zagon in se vrnejo v prvotno aktivno režo, naredijo varnostno kopijo in nato namestijo TWRP. Uporaba neaktivne reže omogoča uporabnikom, da pred namestitvijo TWRP dobijo dobro, nespremenjeno varnostno kopijo svoje naprave.

Dodatne opombe:

Če želite dobiti TWRP uradno podprta za vašo napravo tako da ga je mogoče samodejno namestiti z aplikacijo TWRP, in resnično želite to storiti, da bodo lahko drugi lastniki iste naprave uživali uradno podporo TWRP in to je lepa stvar, morate poslati naslednje podatke na TeamWin:

  1. Konfiguracijske datoteke naprave za prevajanje TWRP iz vira za svojo napravo - ne prepakirajte recovery.img ročno , ga morajo sestaviti iz vira.
  2. Ko TeamWin izdela kopijo TWRP, vam jo pošlje v potrditev - ko jo preverite, bo TeamWin zgradil delujočo sliko za vašo napravo in jo dodal v uradno aplikacijo TWRP.
13 minut branja