Kā DIY Port TWRP Android

, varat mēģināt strādāt ar mazāku koku, piemēram, šo Minimālais manifestācijas TWRP . Tomēr var būt situācijas, kad jums būs nepieciešami vairāk repo, nekā atļauj šis manifests.



Galvenā piezīme pirms sastādīšanas: ja pievienojat vai maināt karodziņus, pirms pārkompilēšanas jums būs jāveic tīrs (vai jāizdara laupījums), pretējā gadījumā jūsu karoga izmaiņas netiks iekļautas!

Kad esat ieguvis TWRP avota kodu, mums ir jāmaina daži jūsu konkrētās ierīces būvēšanas karodziņi. Savai ierīcei atrodiet BoardConfig.mk - parasti tas būs atrodams vietnē ierīces / ražotājs / koda nosaukums (piemēram, ierīces / lge / hammerhead / BoardConfig.mk)



Dēļu konfigurācijā jāiekļauj arhitektūra un platformas iestatījumi - tie parasti jau ir iekļauti ja jūs izmantojat kāda cita ierīces konfigurāciju. Bet, ja esat izveidojis pats, jums tie būs jāpievieno. Tas ir tāpēc, ka bez tiem atkopšanas sāknēšana var atšķirties, un tas vienkārši atkārtoti mirgos TeamWin logotipu ekrānā.



Karodziņi jānovieto BoardConfig.mk apakšdaļā ar virsrakstu #twrp



Priekš visi ierīcēm, jums jāinformē TWRP, kuru motīvu izmantot. Karoga TW_THEME vietā tiek izmantots vecākais karogs DEVICE_RESOLUTION, kas nozīmē, ka TWRP tagad izmanto mērogošanu, lai izstieptu jebkuru motīvu.

Iespējas ir: portrait_hdpi, portrait_mdpi, landscape_hdpi, landscape_mdpi un watch_mdpi. Portreta režīmā, visticamāk, vēlaties izmantot HDP tēmu 720 × 1280 un vairāk, bet ainavas ierīcēm - 1280 × 720 un vairāk.

Tātad jūsu karodziņa sadaļai + motīva karodziņam vajadzētu izskatīties šādi:



#twrp

TW_THEME: = portrets_hdpi

Daži papildu veidošanas karodziņi, kurus vēlaties iekļaut šajā sadaļā (kredīti XDA forumos):

  • RECOVERY_SDCARD_ON_DATA: = true (tas ļauj pareizi apstrādāt / data / media ierīcēs, kurām ir šī mape glabāšanai (lielākā daļa Honeycomb un ierīču, kas sākotnēji tika piegādātas kopā ar ICS, piemēram, Galaxy Nexus). Tomēr šāda veida ierīcēm šis karodziņš nav nepieciešams. nedefinē šo karodziņu un savā fstab arī neiekļauj atsauces uz / sdcard, / internal_sd, / internal_sdcard vai / emmc, tad mēs automātiski pieņemsim, ka ierīce izmanto atdarinātu krātuvi.)
  • BOARD_HAS_NO_REAL_SDCARD: = true - atspējo tādas lietas kā SD kartes nodalīšana un var ietaupīt vietu, ja TWRP nav piemērots jūsu atkopšanas patentam
  • TW_NO_BATT_PERCENT: = true - atspējo akumulatora procentuālās vērtības rādīšanu ierīcēs, kuras to pienācīgi neatbalsta
  • TW_CUSTOM_POWER_BUTTON: = 107 - pielāgotas bloķēšanas ekrāna barošanas pogas
  • TW_NO_REBOOT_BOOTLOADER: = true - noņem reboot izvēlnes atsāknēšanas pogu
  • TW_NO_REBOOT_RECOVERY: = true - noņem atiestatīšanas pogu no atsāknēšanas izvēlnes
  • RECOVERY_TOUCHSCREEN_SWAP_XY: = true - apmaina pieskārienu kartēšanu starp X un Y asi
  • RECOVERY_TOUCHSCREEN_FLIP_Y: = true - apvērš skārienekrāna y ass vērtības
  • RECOVERY_TOUCHSCREEN_FLIP_X: = true - apvērš x ass skārienekrāna vērtības
  • TWRP_EVENT_LOGGING: = true - ļauj pieskarties notikumu reģistrēšanai, lai palīdzētu atkļūdot skārienekrāna problēmas (neatstājiet to ieslēgtai laidienam - tas ļoti ātri aizpildīs jūsu žurnāla failu)
  • BOARD_HAS_FLIPPED_SCREEN: = true - apgāž ekrānu otrādi ekrāniem, kas ir uzstādīti otrādi

Papildu veidošanas karodziņus var atrast, pārlūkojot atkopšanas avotā esošos failus Android.mk, taču tos parasti neizmanto, tāpēc nav jēgas tos dokumentēt.

Izmantojot atkopšanu.Fstab

TWRP 2.5 un jaunākām versijām ir atbalsts jaunām atkopšanas.fstab funkcijām - īpaši iespēja paplašināt TWRP dublēšanas / atjaunošanas funkcijas. Jums nav jāpievieno fstab karodziņi, jo lielākā daļa nodalījumu tiks automātiski apstrādāti.

TWRP atbalsta tikai v2 fstabs versijā 3.2.0 un jaunākās versijās - vecākās TWRP versijās jums būs jāizmanto vecais fstab formāts. Šeit ir Galaxy S4 TWRP fstab piemērs:

Lai maksimāli palielinātu savietojamību ar konkrēto būvniecības koku, varat izveidot twrp.fstab un izmantot PRODUCT_COPY_FILES, lai ievietotu> etc> twrp.fstab.

Kad TWRP palaiž un atrod diskā disku twrp.fstab, tas to pārdēvēs par> etc> recovery.fstab.bak - būtībā tas jūsu ierīces fstab aizstāj ar TWRP fstab, kas paplašina saderību.

Koda piemērs:

PRODUCT_COPY_FILES + = device / lge / hammerhead / twrp.fstab: atkopšana> sakne> utt.> Twrp.fstab

TWRP fstab var saturēt dažus “karodziņus” katram fstab uzskaitītajam nodalījumam.

Šie karodziņi ir pievienoti līdz beigām nodalījuma saraksta fstab, atdalīts ar atstarpi / atstarpēm / cilnēm. Karogs ietekmēs tikai šo nodalījumu, bet ne citus. Karodziņus atdala semikoli. Šeit ir daži koda piemēri:

Tāpēc apskatīsim to pa druskai. Karodziņš šeit piešķirs parādāmo vārdu “Micro SDcard”. Wipeingui karogs padarīs šo nodalījumu pieejamu tīrīšanai izvēlnē Advanced Wipe. Noņemamais karodziņš norāda, ka šis nodalījums ne vienmēr atrodas, kas novērsīs montāžas kļūdu parādīšanos.

Pilns karogu saraksts (kredīti TeamWin) :

  • noņemams - norāda, ka nodalījums, iespējams, nav klāt, novēršot instalēšanas kļūdu parādīšanos sāknēšanas laikā
  • uzglabāšana - norāda, ka nodalījumu var izmantot kā krātuvi, kas nodalījumu padara pieejamu kā krātuvi dublēšanai, atjaunošanai, zip instalēšanai utt.
  • settingsstorage - iestatījumu krātuvei jāiestata tikai viens nodalījums, šis nodalījums tiek izmantots kā TWRP iestatījumu faila glabāšanas vieta
  • canbewiped - norāda, ka nodalījumu var notīrīt ar aizmugures sistēmu, taču tas var nebūt norādīts GUI, lai lietotājs tos varētu noslaucīt
  • userrmrf - ignorē parasto noslaukšanas formāta veidu un ļauj nodalījumu noslaucīt tikai, izmantojot komandu rm -rf
  • backup = - jāpārvieto ar vienādības zīmi, tāpēc backup = 1 vai backup = 0, 1 norāda, ka nodalījumu var iekļaut dublējuma / atjaunošanas sarakstā, savukārt 0 nodrošina, ka šis nodalījums neparādīsies dublējuma sarakstā.
  • wipeingui - nodalījums tiek parādīts GUI, lai ļautu lietotājam izvēļņu izvēlnē to izvēlēties
  • noslaukot rūpnīcas atiestatīšanu - nodalījums tiks izdzēsts rūpnīcas atiestatīšanas laikā
  • ignorētblkid - blkid tiek izmantots, lai noteiktu, kāda failu sistēma tiek izmantota TWRP, šis karodziņš liks TWRP izlaist / ignorēt blkid rezultātus un izmantot tikai fstab norādīto failu sistēmu
  • retainlayoutversion - liek TWRP saglabāt .layoutversion failu / datos ierīcēs, piemēram, Sony Xperia S, kas izmanto / data / media, bet tomēr tai ir atsevišķs / sdcard nodalījums
  • simlink = - liek TWRP izpildīt papildu montāžas komandu, uzstādot nodalījumu, ko parasti izmanto kopā ar / data / media, lai izveidotu / sdcard
  • displejs = - iestata nodalījuma parādāmo vārdu iekļaušanai GUI
  • veikala nosaukums = - iestata nodalījuma krātuves nosaukumu iekļaušanai GUI krātuves sarakstā
  • rezerves nosaukums = - iestata nodalījuma dublējuma nosaukumu iekļaušanai GUI dublēšanas / atjaunošanas sarakstā
    length = - parasti tiek izmantots, lai rezervētu tukšu vietu datu pārraides atšifrēšanas atslēgas glabāšanai, kad ir pieejama Android pilnīga ierīces šifrēšana, tā nenosakīšana var izraisīt nespēja šifrēt ierīci
  • canencryptbackup = - 1 vai 0, lai iespējotu / atspējotu, liek TWRP šifrēt šī nodalījuma dublējumu, ja lietotājs izvēlas šifrēšanu (attiecas tikai uz darvas dublējumiem, nevis attēliem)
  • userdataencryptbackup = - 1 vai 0, lai iespējotu / atspējotu, liek TWRP šifrēt tikai šī nodalījuma lietotāja datu daļu, lai ietaupītu laiku, daži apakšdatu, piemēram, / data / app, netiktu šifrēti
  • apakšnodaļa = - jāpārvieto ar vienādības zīmi un tā nodalījuma ceļu, kura apakšnodaļa ir. Apakšsekcija tiek uzskatīta par galvenā nodalījuma “daļu”, tāpēc, piemēram, TWRP automātiski izveido / datadatus par / datu apakšnodalījumu. Tas nozīmē, ka / datadati neparādīsies GUI sarakstos, bet / datadati tiks izdzēsti, dublēti, atjaunoti, uzstādīti un atdalīti jebkurā laikā, kad šīs darbības tiek veiktas ar / data.

Labs apakšnodalījumu izmantošanas piemērs ir 3x efs nodalījumi LG Optimus G:

Tas apvieno visus 3 nodalījumus vienā “EFS” ierakstā TWRP GUI, ļaujot visus trīs kopēt un atjaunot kopā ar vienu ierakstu.

Ar TWRP 3.2.0 un jaunākām versijām, kas izmanto V2 Fstab, jūs nav jāpievieno nekādi būvēšanas karodziņi . V2 Fstab atbalsts ir automātisks. V2 Fstab atbalsta arī aizstājējzīmes (simbolu *), kas var būt noderīgas USB OTG un micro-SD kartēm ar vairākiem nodalījumiem. Varat arī turpināt izmantot V1 Fstab formātu, un tajā pašā Fstab ir pilnīgi iespējams izmantot gan V1, gan V2 veidus.

Piemēram, šeit ir V1 Fstab līnija ar aizstājējzīmi, kas paredzēta USB OTG:

Šeit ir V2 Fstab līnija tai pašai ierīcei, kas sasniedz to pašu rezultātu:

Turklāt jūs varat iekļaut utt. Twrp.flagus, kas izmanto V1 Fstab formātu, un tos var izmantot, lai papildinātu V2 Fstab ar TWRP karodziņiem, papildu nodalījumiem, kas nav iekļauti V2 Fstab, vai virsrakstiem V2 Fstab.

Piemēram, Huawei ierīcē utt. Recovery.fstab var būt šis V2 fstab:

Tajā var būt iekļauti arī šie karodziņi:

Tātad šeit pirmās divas TWRP rindas. Flags pievienos sāknēšanas un atkopšanas nodalījumus, kas nebija klāt V2 Fstab. Pēc tam TWRP.flags / cust līnija norādīs TWRP ļaut galalietotājam dublēt (cust) nodalījumu un piešķirt tam parādāmo vārdu.

Sadaļa / misc atrodas twrp.flags, un / oeminfo nodalījums uzdod TWRP atļaut dublēt un piešķirt tai parādāmo vārdu.

Mums ir nepieciešama / datu līnija, jo daudzas Huawei ierīces ir šifrētas, taču tiek izmantotas īpašas Huawei binārās ierīces - tādējādi mēs izmantojam Huawei bināros failus, lai atkopšanas režīmā automātiski atšifrētu ierīci. Tātad šeit / data līnija norādīs TWRP izmantot / dev / block / dm -0, nevis / dev / block / bootdevice / by-name / userdata, ko parasti izmanto “pareizai” montāžai.

Visbeidzot, ir / system_image, lai TWRP izvēlnē Dublēt un Atjaunot iekļautu iespēju izveidot sistēmas attēlu.

Oficiālajā TeamWin github satur arī jaunākos ierīču koku piemērus ierīcēm, kurām ir oficiāls TWRP ports. TeamWin github var atrast ŠEIT .

Kad Omni vai CM ir sinhronizēts un esat iestatījis savus TWRP karodziņus, jums vajadzētu izveidot avotu ./build/envsetup.sh

Un jūs vēlaties “pusdienot” ierīci, lai jūs varētu darīt kaut ko līdzīgu “pusdienas omni_hammerhead.eng”.

Pēc veiksmīgām pusdienām lielākā daļa ierīču izmantos šo komandu:

# In –j # jums jāaizstāj ar kodolu skaitu +1. Tātad, ja jums ir divkodols, tas ir –j3, četrstūris būs –j5 utt. Nomainiet # ar kodola skaitu +1, tāpēc, ja jums ir divkodols, tas ir -j3, bet četrkodolu - -j5 utt.

Tas būs nepieciešams arī tipiskām Samsung ierīcēm:

Tas ir tāpēc, ka lielākā daļa Samsung ierīču ietver atkopšanu kā papildu ramdisku bootā, nevis atsevišķā atkopšanas nodalījumā (kuru izmanto lielākā daļa citu ierīču).

Tagad jums ir jābūt kompilētam TWRP savai ierīcei, un, cerams, tas darbojas emulatora vidē. Vispirms vispirms pārbaudiet savu TWRP pieslēgvietu emulatora vidē, tāpēc neriskējat ierocīt.
Lejupielādējiet šo ierīces konfigurācijas failu kopu.

Apkopojiet atkopšanas attēlu, izmantojot šos ierīces failus. Android SDK noklikšķiniet uz Rīki -> Pārvaldīt AVD. Noklikšķiniet uz Jauns. Iestatiet to šādi:

Pēc tam noklikšķiniet uz Labi.

Kad esat ieguvis AVD un atkopšanas attēlu, varat palaist TWRP emulatorā, pārlūkojot mapi android-sdk / tools un palaidot šo komandu:

Ņemiet vērā, ka ADB nedarbojas uzreiz. Aptuveni 10 līdz 15 sekundes pēc TWRP sāknēšanas pabeigšanas ADB nonāks tiešsaistē. Mēs sākam ADB, izmantojot init.rc, tāpēc, pat ja TWRP neizdodas palaist kāda veida koda kļūdas dēļ, kuru, iespējams, esat pieļāvis, ADB joprojām vajadzētu darboties. Izbaudi!

TWRP un A / B ierīces (kredīti TeamWin):

No TWRP viedokļa A / B ierīces daudz neatšķiras no parastajām ierīcēm, taču šķiet, ka izstrādātāji kautrējas strādāt ar šīm ierīcēm. Es mēģināšu nedaudz uzzināt vairāk par šo tēmu, un, cerams, tas kalpos kā ceļvedis TWRP pārnešanai uz A / B ierīcēm.

Pirmkārt, sapratīsim, kas ir A / B ierīce un kā tā atšķiras. A / B ierīcēs ierīcē ir daudzu nodalījumu dublikāti. A / B ierīcē ir 2x sistēmas nodalījumi, 2x sāknēšanas nodalījumi, 2x piegādātāja nodalījumi, 2x modema / programmaparatūras nodalījumi utt. Vienlaikus tiek izmantota tikai viena slota. Agrīnās sāknēšanas laikā sāknēšanas ielādētāja pirmie posmi nolasa nelielu datu daudzumu, ko sauc par BCB vai Bootloader vadības bloku, un izlemj, vai palaist A nodalījumus vai B nodalījumus. Kad ir pieejams OTA atjauninājums, dati no aktīvā slota tiek nokopēti no neaktīvā slota un aizlāpīti / atjaunināti. Piemēram, ja jūs pašlaik izmantojat A slotu, jūsu ierīce lejupielādēs atjauninājumu un kopēs esošo sistēmas nodalījumu no A slota un ielāpīs / atjauninās to ar jaunajiem atjauninājumiem B slotā. Pēc kopēšanas un atjaunināšanas BCB tiek atjaunināta un ierīce tiek restartēta, izmantojot slotu B. Nākamreiz, kad būs pieejams atjauninājums, sistēmas B nodalījumā esošais sistēmas nodalījums tiek kopēts A slotā un atjaunināts, BCB tiek atjaunināts, un mēs atsāknējam to A slotā. jūs redzēsiet kaut ko līdzīgu šim:

Iepriekš norādītajā sarakstā ņemiet vērā dubultās sāknēšanas, sistēmas un pārdevēja nodalījumus, bet tikai vienu userdata nodalījumu.

Lai arī tehniski nav prasību, kas man būtu zināma, visām līdz šim nosūtītajām A / B ierīcēm nav atsevišķa atkopšanas nodalījuma. Tā vietā sāknēšanas attēls satur atkopšanu savā ramdisk. Svarīgi ir zināt, ka sāknēšanas attēlā tagad ir arī atkopšana. Lai nodrošinātu pilnīgumu, sistēmas nodalījums ir pilna sakņu failu sistēma. Sāknēšanas laikā, ja kodolam tiek dots sāknēšana uz atkopšanu, tas izvilks ramdisku sāknēšanas nodalījumā. Ja sāknēšanas ielādētājs nav licis kodolu palaist uz atkopšanu, tad kodols uzstādīs atbilstošo sistēmas nodalījumu (A vai B), jo sistēmas nodalījums ir pilna sakņu failu sistēma. Tas nozīmē, ka šo ierīču sistēmas nodalījums ir pievienots / sistēmai / vietā un sistēmas nodalījumā ir visi faili, kas parasti būtu bijuši sāknēšanas attēla ramdiskā un / sistēmas apakšmapē.

No TWRP viedokļa A / B ierīcei ir jādara 3 lietas. Pirmkārt, jums jāiestata

Kods:

Visbeidzot, tiklīdz esat nonācis TWRP, jūs, iespējams, vēlēsities pārliecināties, ka bootctl hal-info pareizi atbild bez kļūdām. Parasti binārā bootctl binārai darbībai ir nepieciešama patentēta bibliotēka vai pat daži pakalpojumi. Ja bootctl nedarbojas pareizi, tad arī jūs nevarēsiet pareizi pārslēgt slotus TWRP ietvaros.

Papildus iestatīšanai

Kods:

AB_OTA_UPDATER: = taisnība

jūs varat arī iestatīt:

Kods:

BOARD_USES_RECOVERY_AS_BOOT: = taisnība

BOARD_BUILD_SYSTEM_ROOT_IMAGE: = taisnība

Ja iestatāt

Kods:

BOARD_USES_RECOVERY_AS_BOOT: = taisnība

tad veikt atgūšanu attēls vairs nedarbosies, un jums būs jāveic bootimage. Es neiesaku nevienu no šiem karodziņiem iestatīt tikai TWRP kokiem. Šie karodziņi, iespējams, būs nepieciešami izstrādātājiem, kuri izveido pilnus ROM A / B ierīcēm.

TWRP instalēšana / mirgošana A / B ierīcēs:

Tā kā visām zināmajām A / B ierīcēm nav atsevišķa atkopšanas nodalījuma, galu galā jums būs jāapgaismo TWRP sāknēšanas nodalījumam. Pixel 1 un 2 ierīcēs mēs izmantojam ātrās sāknēšanas sāknēšanu, lai īslaicīgi sāktu TWRP, nemirgot TWRP. Pēc tam mēs piegādājam zip, lai lietotāji varētu mirgot TWRP abos slotos. Vienu no šiem rāvējslēdzējiem varat lejupielādēt no mūsu vietnes un pēc vajadzības atjaunināt rāvējslēdzēju, lai atbalstītu savas ierīces. Galu galā mēs pievienosim rīkus TWRP, lai ļautu lietotājiem atkopt atkopšanu šajās ierīcēs, neizmantojot rāvējslēdzējus.

Nesen es strādāju pie Razer Phone. Diemžēl Razer Phone neatbalsta ātrās sāknēšanas sāknēšanu. Tā vietā lietotājiem ir jānosaka pašreiz aktīvā sāknēšanas vieta, izmantojot

Kods:

iekļūt TWRP. Pēc TWRP viņi var doties uz reboot lapu un atgriezties sākotnēji aktīvajā slotā, izveidot dublējumu un pēc tam instalēt TWRP. Neaktīvā slota izmantošana ļauj lietotājiem iegūt labu, nemodificētu savas ierīces dublējumu pirms TWRP instalēšanas.

Papildu piezīmes:

Ja vēlaties saņemt TWRP oficiāli atbalstīta jūsu ierīcē lai to varētu automātiski instalēt kopā ar TWRP lietotni, un jūs patiešām vēlaties to izdarīt, lai citi vienas ierīces īpašnieki varētu baudīt oficiālu TWRP atbalstu, un tas ir jauki, ko darīt, jums būs jānosūta šāda informācija: TeamWin:

  1. Ierīces konfigurācijas faili TWRP apkopošanai no avota savai ierīcei - neiepakojiet atkopšanu.img ar rokām , viņiem tas jāsastāda no avota.
  2. Pēc tam, kad TeamWin būs izveidojis TWRP kopiju, viņi to nosūtīs jums pārbaudei - kad būsiet to apstiprinājis, TeamWin izveidos jūsu ierīces darba attēlu un pievienos to oficiālajai TWRP lietotnei.
Lasītas 13 minūtes