Kaip pasidaryti „Port TWRP for Android“

, galite pabandyti dirbti su mažesniu medžiu, pvz., šiuo Minimalus manifestas TWRP . Tačiau gali būti situacijų, kai jums reikės daugiau atpirkimų, nei leidžia šis manifestas.



Pagrindinė pastaba prieš kompiliuojant: jei pridėsite ar pakeisite žymas, prieš perkompiliuodami turėsite padaryti švarią (arba padaryti klobą), kitaip jūsų vėliavos pakeitimai nebus įtraukti!

Kai turėsite TWRP šaltinio kodą, turime pakeisti kai kurias jūsų konkretaus įrenginio sukūrimo vėliavas. Suraskite savo įrenginiui „BoardConfig.mk“ - paprastai tai rasite prietaisai / gamintojas / kodinis vardas (pvz., devices / lge / hammerhead / BoardConfig.mk)



Į plokštės konfigūraciją reikia įtraukti architektūrą ir platformos parametrus - jie paprastai jau yra įtraukti jei naudojate kažkieno įrenginio konfigūraciją. Bet jei sukūrėte savo, turėsite juos pridėti. Taip yra todėl, kad be jų atkūrimo įkrovimas gali sulaužyti ir tiesiog pakartotinai mirksės „TeamWin“ logotipu ekrane.



Vėliavos turėtų būti dedamos BoardConfig.mk apačioje, antraštėje #twrp



Dėl visi prietaisų, turite nurodyti TWRP, kurią temą naudoti. TW_THEME vėliava naudojama vietoj senesnės „DEVICE_RESOLUTION“ žymos, o tai reiškia, kad TWRP dabar naudoja mastelį, kad ištemptų bet kokią temą.

Jūsų parinktys yra šios: portretas_hdpi, portretas_mdpi, peizažas_hdpi, peizažas_mdpi ir laikrodžio_mdpi. Portreto režimui greičiausiai norėsite HDP tema 720 × 1280 ir daugiau, bet kraštovaizdžio įrenginiams - 1280 × 720 ir daugiau.

Taigi jūsų „build flag“ skyrius + temos vėliava turėtų atrodyti taip:



#twrp

TW_THEME: = portretas_hdpi

Keletas papildomų kūrimo žymių, kurias norėsite įtraukti į šį skyrių (kreditai XDA forumuose):

  • RECOVERY_SDCARD_ON_DATA: = true (tai leidžia tinkamai tvarkyti / duomenis / laikmenas įrenginiuose, kuriuose yra šis aplankas, saugojimui (dauguma „Honeycomb“ ir įrenginių, kurie iš pradžių buvo pristatyti su ICS, pvz., „Galaxy Nexus“). Vis dėlto ši žymė nėra reikalinga šių tipų įrenginiams. Jei neapibrėžkite šios žymos ir į savo „fstab“ taip pat neįtraukite nuorodų į / sdcard, / internal_sd, / internal_sdcard arba / emmc, tada mes automatiškai manysime, kad įrenginys naudoja imituojamą saugyklą.)
  • BOARD_HAS_NO_REAL_SDCARD: = true - išjungia tokius dalykus kaip SD kortelių skaidymas ir gali sutaupyti šiek tiek vietos, jei TWRP netelpa į jūsų atkūrimo patentą
  • TW_NO_BATT_PERCENT: = true - neleidžia rodyti akumuliatoriaus procentinės vertės prietaisams, kurie to tinkamai nepalaiko
  • TW_CUSTOM_POWER_BUTTON: = 107 - pasirinktinis žemėlapių užrakinimo ekrano maitinimo mygtukas
  • TW_NO_REBOOT_BOOTLOADER: = true - pašalina perkrovimo mygtuką iš naujo paleisti iš naujo.
  • TW_NO_REBOOT_RECOVERY: = true - iš naujo paleisties meniu pašalinamas atkūrimo atkūrimo mygtukas
  • RECOVERY_TOUCHSCREEN_SWAP_XY: = true - keičia X ir Y ašių prisilietimų žemėlapį
  • RECOVERY_TOUCHSCREEN_FLIP_Y: = true - apverčia y ašies jutiklinio ekrano vertes
  • RECOVERY_TOUCHSCREEN_FLIP_X: = true - apverčia x ašies jutiklinio ekrano vertes
  • TWRP_EVENT_LOGGING: = true - įgalina jutiklinių įvykių registravimą, kad būtų lengviau derinti jutiklinio ekrano problemas (nepalikite to paleidimo - tai labai greitai užpildys jūsų žurnalo failą)
  • BOARD_HAS_FLIPPED_SCREEN: = true - apverčia ekraną aukštyn kojomis, jei ekranai yra sumontuoti aukštyn kojomis

Papildomų kūrimo žymių galima rasti peršokant per „Android.mk“ failus atkūrimo šaltinyje, tačiau jie paprastai nenaudojami, todėl nėra jokios prasmės jų dokumentuoti.

Naudojant „Recovery.Fstab“

TWRP 2.5 ir naujesnės versijos palaiko naujas atkūrimo.fstab funkcijas, ypač galimybę išplėsti TWRP atsarginės kopijos / atkūrimo funkcijas. Jums nereikia pridėti „fstab“ vėliavėlių, nes dauguma skaidinių bus automatiškai tvarkomi.

TWRP palaiko tik 3.2.0 ir naujesnės versijos „v2“ „fstabs“ - senesnėse „TWRP“ versijose turėsite naudoti senąjį „fstab“ formatą. Štai „Galaxy S4“ TWRP fstab pavyzdys:

Norėdami padidinti suderinamumą su konkrečiu komponavimo medžiu, galite sukurti „twrp.fstab“ ir naudoti „PRODUCT_COPY_FILES“, kad įdėtumėte į katalogą> etc> twrp.fstab.

Kai TWRP paleidžia ir ramdiske randa „twrp.fstab“, jis jį pervadins į> etc> recovery.fstab.bak - iš esmės jis pakeis jūsų įrenginio fstab failą TWRP fstab, kuris išplečia suderinamumą.

Kodo pavyzdys:

PRODUCT_COPY_FILES + = device / lge / hammerhead / twrp.fstab: atkūrimas> root> etc> twrp.fstab

TWRP fstabe gali būti keletas „vėliavėlių“ kiekvienam fstabe nurodytam skaidiniui.

Šios vėliavos pridedamos iki galo skirsnių sąrašo fstab, atskirtas tarpais / tarpais / skirtukais. Vėliava paveiks tik tą skaidinį, bet ne kitus. Vėliavos yra atskirtos kabliataškiais. Štai keli kodo pavyzdžiai:

Taigi panagrinėkime tai po truputį. Vėliava čia suteiks rodomą pavadinimą „Micro SDcard“. „Wipeingui“ vėliava leis šį skaidinį valyti meniu Išplėstinis išvalymas. Nuimama vėliava rodo, kad šis skaidinys ne visada yra, todėl bus išvengta montavimo klaidų.

Pilnas vėliavų sąrašas (kreditai „TeamWin“) :

  • nuimamas - rodo, kad skaidinio gali nebūti, todėl įkrovos metu negalima rodyti montavimo klaidų
  • saugojimas - rodo, kad skaidinys gali būti naudojamas kaip saugykla, todėl skaidinį galima naudoti kaip atsarginę kopiją, atkūrimą, „ZIP“ diegimą ir kt.
  • settingsstorage - tik vienas skaidinys turėtų būti nustatytas kaip nustatymų saugykla, šis skaidinys naudojamas kaip TWRP nustatymų failo saugojimo vieta
  • nuvalytas - rodo, kad skaidinį gali išvalyti vidinė sistema, tačiau jis negali būti įtrauktas į vartotojo sąsają, kad vartotojas ištrintų
  • userrmrf - perrašo įprasto formato valymo tipą ir leidžia skaidymą išvalyti tik naudojant komandą rm -rf
  • atsarginė kopija = - turi būti pažymėta lygybės ženklu, taigi atsarginė = 1 arba atsarginė = 0, 1 rodo, kad skaidinį galima įtraukti į atsarginės kopijos / atkūrimo sąrašą, o 0 užtikrina, kad šis skaidinys nebus rodomas atsarginių kopijų sąraše.
  • wipeingui - leidžia skaidinį rodyti GUI, kad vartotojas galėtų pasirinkti jį valyti išplėstinio valymo meniu
  • nuvalykite gamyklos atstatymą - skaidinys bus ištrintas atstatant gamyklą
  • ignoruotiblkid - blkid naudojamas nustatyti, kokią failų sistemą naudoja TWRP, ši žyma paskatins TWRP praleisti / nepaisyti blkid rezultatų ir naudoti tik fstab nurodytą failų sistemą
  • retainlayoutversion - sukelia TWRP .layoutversion failo / duomenų išsaugojimą tokiuose įrenginiuose kaip „Sony Xperia S“, kurie naudoja / data / media, bet vis tiek turi atskirą / sdcard skaidinį
  • symlink = - sukelia TWRP vykdant papildomą komandą montuojant skaidinį, paprastai naudojamą su / data / media kuriant / sdcard
  • ekranas = - nustato rodomąjį skaidinio pavadinimą įtraukimui į GUI
  • storagename = - nustato skaidinio saugyklos pavadinimą įtraukimui į GUI saugyklos sąrašą
  • atsarginis vardas = - nustato disko atsarginį pavadinimą įtraukimui į GUI atsarginių kopijų / atkūrimo sąrašą
    ilgis = - paprastai naudojamas rezervuoti tuščią vietą / duomenų skaidinio gale iššifravimo raktui saugoti, kai yra visas „Android“ įrenginio šifravimas, to nenustačius, įrenginio negalėsite užšifruoti
  • atšifravimas = - 1 arba 0, kad įjungtumėte / išjungtumėte, leidžia TWRP užšifruoti šio skaidinio atsarginę kopiją, jei vartotojas pasirenka šifravimą (taikoma tik dervų atsarginėms kopijoms, o ne paveikslėliams)
  • „userdataencryptbackup“ = - 1 arba 0, kad įjungtumėte / išjungtumėte, priverčia TWRP užšifruoti tik šio skirsnio vartotojo duomenų dalį, tam tikri papildomi elementai, tokie kaip / duomenys / programa, nebūtų šifruojami, kad sutaupytumėte laiko
  • padalijimas = - turi būti pažymėtas lygybės ženklu ir skirsnio, kurio padalinys yra, keliu. Padalinys yra laikomas pagrindinio skaidinio „dalimi“, todėl, pavyzdžiui, TWRP automatiškai padaro / duomenų duomenis duomenų daliu. Tai reiškia, kad / datadata nebus rodoma GUI sąrašuose, tačiau / datadata būtų ištrinta, sukurta atsarginė jų kopija, atkurta, pritvirtinta ir atjungta bet kuriuo metu, kai atliekamos šios operacijos / data.

Geras pogrupių naudojimo pavyzdys yra „LG Optimus G“ 3x efs skaidiniai:

Tai sujungia visas 3 skaidinius į vieną „EFS“ įrašą TWRP GUI, leidžiantį sukurti visų trijų atsarginių kopijų kopijas ir atkurti kartu su vienu įrašu.

Su TWRP 3.2.0 ir naujesnėmis versijomis, kuriose naudojama „V2 Fstab“, jūs nereikia pridėti jokių sukūrimo vėliavų . „V2 Fstab“ palaikymas yra automatinis. „V2 Fstab“ taip pat palaiko pakaitos simbolius (* simbolį), kurie gali būti naudingi USB OTG ir „micro-SD“ kortelėms su keletu skaidinių. Taip pat galite toliau naudoti „V1 Fstab“ formatą, ir visiškai įmanoma naudoti ir „V1“, ir „V2“ tipus toje pačioje „Fstab“.

Pavyzdžiui, čia yra „V1 Fstab“ eilutė su pakaitos simboliu, skirtu USB OTG:

Čia yra to paties įrenginio V2 Fstab linija, kuri pasiekia tą patį rezultatą:

Be to, galite įtraukti ir tt „twrp.flag“, kurie naudoja „V1 Fstab“ formatą, ir juos galima naudoti papildant „V2 Fstab“ su TWRP vėliavomis, papildomomis pertvaromis, neįtrauktomis į „V2 Fstab“, arba svarbesniais „V2 Fstab“ nustatymais.

Pvz., „Huawei“ įrenginyje gali būti ši „V2 fstab“ atkūrimo faile ir kt.

Taip pat gali būti šios vėliavos:

Taigi čia pirmosios dvi TWRP eilutės. „Flags“ pridės „Boot“ ir „Recovery“ skaidinius, kurie nebuvo „V2 Fstab“. Tada TWRP.flags eilutė / cust nurodys TWRP leisti galutiniam vartotojui sukurti atsarginę (cust) skaidinį ir suteikti jam rodomą vardą.

/ Misc skaidinys yra twrp.flags, o / oeminfo skaidinys nurodo TWRP taip pat leisti kurti atsargines kopijas ir suteikti jai rodomą vardą.

Mums reikalinga „data“ linija, nes daugelis „Huawei“ įrenginių yra užšifruoti, tačiau naudojame specialius „Huawei“ dvejetainius failus - taigi, mes naudojame „Huawei“ dvejetainius failus, kad įrenginys automatiškai iššifruotas atkūrimo režimu. Taigi čia / duomenų eilutė nurodys TWRP naudoti / dev / block / dm -0, o ne / dev / block / bootdevice / by-name / userdata, kurie paprastai naudojami „tinkamam“ montavimui.

Galiausiai yra / system_image, kad TWRP įtrauktų parinktį sukurti sistemos vaizdą atsarginių kopijų kūrimo ir atkūrimo meniu.

Oficialiame „TeamWin“ „github“ taip pat turėtų būti naujausių įrenginių, turinčių oficialų TWRP prievadą, medžių pavyzdžiai. „TeamWin“ gitubą galite rasti ČIA .

Sinchronizavus „Omni“ arba CM ir nustačius savo TWRP vėliavas, turėtumėte sukurti šaltinį ./build/envsetup.sh

Ir jūs norėsite „papietauti“ įrenginį, kad galėtumėte padaryti kažką panašaus į „pietūs omni_hammerhead.eng“.

Po sėkmingų pietų dauguma įrenginių naudos šią komandą:

# In –j # turite pakeisti pagrindinių skaičiumi +1. Taigi, jei turite dvigubą branduolį, jis yra –j3, kvadratas bus –j5 ir kt. Pakeiskite # branduolių skaičiumi +1, taigi, jei turite dvigubą branduolį, jis bus –j3, o keturių branduolių skaičius taps –j5 ir kt.

Be to, tipiniams „Samsung“ įrenginiams to reikės:

Taip yra todėl, kad dauguma „Samsung“ įrenginių apima atkūrimą kaip papildomą įkrovos RAM diską, vietoj atskiro atkūrimo skaidinio (kurį naudoja dauguma kitų įrenginių).

Dabar jau turėtumėte susikurti TWRP savo įrenginiui ir tikiuosi, kad jis veiks emuliatoriaus aplinkoje. Pirmiausia pirmiausia turėtumėte išbandyti savo TWRP prievadą emuliatoriaus aplinkoje, kad nerizikuotumėte užrakinti savo įrenginio.
Atsisiųskite šį įrenginio konfigūracijos failų rinkinį.

Sudarykite atkūrimo vaizdą naudodami tuos įrenginio failus. „Android SDK“ spustelėkite Įrankiai -> Tvarkyti AVD. Spustelėkite Naujas. Nustatykite taip:

Tada spustelėkite Gerai.

Kai turėsite AVD ir atkūrimo vaizdą, galite paleisti TWRP emuliatoriuje, naršydami savo aplanką „android-sdk / tools“ ir vykdydami šią komandą:

Atkreipkite dėmesį, kad ADB neveikia iš karto. Maždaug po 10–15 sekundžių po TWRP paleidimo, ADB prisijungs prie interneto. Mes pradedame ADB per init.rc, todėl net jei TWRP nepavyksta paleisti dėl kažkokios kodo klaidos, kurią galbūt padarėte, ADB vis tiek turėtų veikti. Mėgautis!

TWRP ir A / B prietaisai (kreditai „TeamWin“):

Žiūrint iš TWRP požiūriu, A / B įrenginiai visiškai nesiskiria nuo įprastų įrenginių, tačiau kūrėjai, atrodo, drovisi dirbti su šiais įrenginiais. Pabandysiu šiek tiek apšviesti šią temą ir, tikiuosi, tai bus patarimas, kaip perkelti TWRP į A / B įrenginius.

Pirmiausia supraskime, kas yra A / B įrenginys ir kuo jis skiriasi. A / B įrenginiuose yra daugelio įrenginio skaidinių kopijos. A / B įrenginyje yra 2x sistemos skaidiniai, 2x įkrovos skaidiniai, 2x tiekėjo skirsniai, 2x modemo / programinės aparatinės įrangos skaidiniai ir kt. Vienu metu naudojamas tik vienas lizdas. Ankstyvo paleidimo metu pirmieji įkrovos etapai perskaito nedidelį kiekį duomenų, vadinamų BCB arba „Bootloader Control Block“, ir nusprendžia, ar paleisti A, ar B skaidinius. Kai yra OTA naujinimas, duomenys iš aktyviojo lizdo nukopijuojami iš neaktyvaus lizdo ir pataisomi / atnaujinami. Pvz., Jei šiuo metu esate A lizde, jūsų įrenginys atsisiųs naujinimą ir nukopijuos esamą sistemos skaidinį iš A lizdo ir pataisys / atnaujins jį naujais atnaujinimais į B lizdą. Baigę kopijuoti ir atnaujinti, BCB yra atnaujinamas ir įrenginys iš naujo paleidžiamas naudojant B lizdą. Kitą kartą, kai bus prieinamas atnaujinimas, sistemos lizdas B lizde nukopijuojamas į A lizdą ir atnaujinamas, BCB atnaujinamas, o mes perkrauname į A lizdą. pamatysite maždaug taip:

Pirmiau pateiktame sąraše atkreipkite dėmesį į dvigubus įkrovos, sistemos ir tiekėjo skirsnius, bet tik vieną vartotojo duomenų skaidinį.

Nors techniškai nėra jokio reikalavimo, apie kurį aš žinau, visuose iki šiol išsiųstuose A / B įrenginiuose nėra atskiro atkūrimo skaidinio. Vietoj to, įkrovos vaizdo atkūrimas yra jo RAM diske. Svarbu žinoti, kad įkrovos vaizde taip pat yra atkūrimas. Siekiant išsamumo, sistemos skaidinys yra visa šakninių failų sistema. Paleidimo metu, jei nurodoma, kad branduolys bus paleistas į atkūrimą, jis ištrauks įkrovos disko ramdiską. Jei įkrovos tvarkyklė nepraneša, kad branduolys būtų paleistas į atkūrimą, tada branduolys prijungs atitinkamą sistemos skaidinį (A arba B), nes sistemos skaidinys yra visa šakninių failų sistema. Tai reiškia, kad šių įrenginių sistemos skaidinys yra prijungtas prie / vietoje sistemos / ir sisteminiame skaidinyje yra visi failai, kurie paprastai būtų buvę įkrovos vaizdo ramdiske ir / sistemos pakatalogyje.

TWRP požiūriu, A / B įrenginiui reikia atlikti 3 dalykus. Pirma, turite nustatyti

Kodas:

Galiausiai, patekę į TWRP, tikriausiai norėsite įsitikinti, kad „bootctl hal-info“ teisingai atsako be klaidų. Paprastai norint, kad dvejetainis kompiuteris „bootctl“ veiktų teisingai, reikia nuosavos bibliotekos ar net kelių paslaugų. Jei „bootctl“ neveikia tinkamai, tada ir TWRP lizdų negalėsite teisingai perjungti.

Be nustatymo

Kodas:

AB_OTA_UPDATER: = tiesa

taip pat galite nustatyti:

Kodas:

BOARD_USES_RECOVERY_AS_BOOT: = tiesa

BOARD_BUILD_SYSTEM_ROOT_IMAGE: = tiesa

Jei nustatysite

Kodas:

BOARD_USES_RECOVERY_AS_BOOT: = tiesa

tada atkūrimo vaizdas nebeveiks, o jūs turėsite atlikti įkrovos vaizdą. Nerekomenduoju nė vienos iš šių vėliavų nustatyti tik TWRP statantiems medžiams. Šios žymos tikriausiai bus reikalingos kūrėjams, kuriantiems visas A / B įrenginių ROM.

TWRP diegimas / mirksėjimas A / B įrenginiuose:

Kadangi visi žinomi A / B įrenginiai neturi atskiro atkūrimo skaidinio, galų gale turėsite mirksėti TWRP prie įkrovos skaidinio. „Pixel 1“ ir „2“ įrenginiuose mes naudojame greitą įkrovą, kad laikinai paleistume TWRP, nemirksėdami TWRP. Tada mes tiekiame ZIP, kad vartotojai galėtų mirksėti TWRP abiejuose lizduose. Vieną iš šių užtrauktukų galite atsisiųsti iš mūsų svetainės ir prireikus atnaujinti ZIP, kad palaikytumėte savo įrenginius. Galų gale mes pridėsime įrankius prie TWRP, kad vartotojai galėtų atkurti atkūrimus šiuose įrenginiuose nenaudodami užtrauktukų.

Neseniai dirbau prie „Razer Phone“. Deja, „Razer Phone“ nepalaiko greito įkrovimo įkrovos. Vietoj to, vartotojai turi nustatyti savo šiuo metu aktyvų įkrovos lizdą naudodami

Kodas:

patekti į TWRP. Patekę į TWRP, jie gali pereiti į perkraukimo puslapį ir grįžti į savo iš pradžių aktyvų lizdą, padaryti atsarginę kopiją, tada įdiegti TWRP. Naudodami neaktyvų lizdą, vartotojai gali gauti gerą, nemodifikuotą savo įrenginio atsarginę kopiją prieš įdiegdami TWRP.

Papildomi užrašai:

Jei norite gauti TWRP oficialiai palaikomas jūsų įrenginyje kad jį būtų galima automatiškai įdiegti naudojant „TWRP“ programą, ir jūs tikrai norite tai padaryti, kad kiti to paties įrenginio savininkai galėtų mėgautis oficialia TWRP parama, ir tai yra malonu, turėsite nusiųsti šią informaciją „TeamWin“:

  1. Įrenginio konfigūracijos failai, skirti TWRP surinkti iš šaltinio jūsų prietaisui - neperkraukite atkūrimo.img ranka , jie turi jį sudaryti iš šaltinio.
  2. Kai „TeamWin“ sukurs TWRP kopiją, jie atsiųs ją jums patikrinti - kai ją patvirtinsite, „TeamWin“ sukurs darbinį jūsų įrenginio vaizdą ir pridės jį prie oficialios TWRP programos.
13 minučių perskaityta