Hogyan készítsünk barkácsportot TWRP for Android

, megpróbálhat egy kisebb fával dolgozni, mint ez Minimális megnyilvánulás TWRP . Vannak azonban helyzetek, amikor több repóra lesz szüksége, mint amennyit ez a jegyzék megenged.



Fontos megjegyzés fordítás előtt: Ha bármilyen zászlót hozzáad vagy megváltoztat, akkor az újrafordítás előtt tisztát kell tennie (vagy klobot kell készítenie), különben a zászlóváltozásai nem lesznek benne!

Miután megkapta a TWRP forráskódot, meg kell változtatnunk az Ön eszközének egyes buildjelzőit. Keresse meg a BoardConfig.mk fájlt az eszközéhez - ez általában megtalálható itt eszközök / gyártó / kódnév (például: devices / lge / hammerhead / BoardConfig.mk)



A tábla konfigurációjának tartalmaznia kell az architektúrát és a platform beállításait - ezeket általában már tartalmazzák ha valaki más eszköz konfigurációját használod. De ha létrehozta sajátját, akkor hozzá kell adnia őket. Ez azért van, mert nélkülük a helyreállítási rendszerindítás megszakadhat, és csak ismételten felvillantja a TeamWin logót a képernyőn.



A zászlókat a BoardConfig.mk aljára kell tenni, a #twrp címszó alatt



Mert összes eszközöket, meg kell adnia a TWRP-nek, hogy melyik témát használja. A TW_THEME zászlót használják a régebbi DEVICE_RESOLUTION zászló helyett, ami azt jelenti, hogy a TWRP mostantól skálázást használ bármely téma nyújtásához.

A következő lehetőségek állnak rendelkezésre: portré_hdpi, álló_mdpi, fekvő_hdpi, fekvő_mdpi és watch_mdpi. Portré módban nagy valószínűséggel a 720 × 1280 vagy annál nagyobb hdpi témát szeretné használni, a fekvő eszközök esetében azonban az 1280 × 720 vagy annál nagyobb méreteket.

Tehát a build flag szakasz + a téma zászlónak így kell kinéznie:



#twrp

TW_THEME: = portré_hdpi

Néhány további összeállítási jelző, amelyet fel kíván venni ebbe a szakaszba (jóváírások az XDA fórumai számára):

  • RECOVERY_SDCARD_ON_DATA: = igaz (ez lehetővé teszi az / adatok / adathordozók megfelelő kezelését azokon az eszközökön, amelyek tárolására ez a mappa tartozik (a legtöbb Honeycomb és olyan készülékek, amelyek eredetileg ICS-sel szállultak, például a Galaxy Nexus). Ez a jelző azonban nem szükséges ilyen típusú eszközökhöz. Ha ne definiálja ezt a zászlót, és ne tartalmazzon hivatkozásokat az / sdcard, / internal_sd, / internal_sdcard vagy / emmc fájlokra az fstab-ban, akkor automatikusan feltételezzük, hogy az eszköz emulált tárhelyet használ.)
  • BOARD_HAS_NO_REAL_SDCARD: = true - letiltja például az SD-kártya particionálását, és helyet takaríthat meg, ha a TWRP nem illeszkedik a helyreállítási feltételekhez
  • TW_NO_BATT_PERCENT: = true - letiltja az akkumulátor százalékos arányának megjelenítését azoknál az eszközöknél, amelyek nem támogatják megfelelően
  • TW_CUSTOM_POWER_BUTTON: = 107 - egyedi leképezi a zárképernyő bekapcsológombját
  • TW_NO_REBOOT_BOOTLOADER: = true - eltávolítja az újraindítás indítógombját az újraindítási menüből
  • TW_NO_REBOOT_RECOVERY: = true - eltávolítja az újraindítás helyreállítási gombját az újraindítás menüből
  • RECOVERY_TOUCHSCREEN_SWAP_XY: = true - felcseréli az érintések leképezését az X és Y tengely között
  • RECOVERY_TOUCHSCREEN_FLIP_Y: = igaz - megfordítja az y tengely érintőképernyőjének értékeit
  • RECOVERY_TOUCHSCREEN_FLIP_X: = igaz - megfordítja az x tengely érintőképernyőjének értékeit
  • TWRP_EVENT_LOGGING: = true - lehetővé teszi az érintéses eseménynaplózást, hogy segítsen az érintőképernyős problémák hibakeresésében (ne hagyja ezt egy kiadásnál - nagyon gyorsan kitölti a naplófájlt)
  • BOARD_HAS_FLIPPED_SCREEN: = true - fejjel lefelé fordítja a képernyőt a fejjel lefelé szerelt képernyőkhöz

További összeállítási jelzők találhatók a helyreállítási forrás Android.mk fájljainak átlapozásával, de ezeket általában nem használják, így nincs értelme dokumentálni őket.

A Recovery.Fstab használata

A TWRP 2.5 és újabb verziói támogatják az új helyreállítási.fstab funkciókat - nevezetesen a TWRP biztonsági mentési / visszaállítási funkcióinak kiterjesztését. Nem kell hozzáadni az fstab jelzőket, mert a legtöbb partíciót automatikusan kezeljük.

A TWRP csak a 3.2.0 vagy újabb verziójú v2 fstab fájlokat támogatja - a TWRP régebbi verzióiban a fstab régi formátumát kell használni. Íme egy példa a Galaxy S4 TWRP fstab-jára:

Az adott buildfával való kompatibilitás maximalizálása érdekében létrehozhat egy twrp.fstab fájlt, és a PRODUCT_COPY_FILES használatával elhelyezheti az> etc> twrp.fstab fájlban.

Amikor a TWRP elindítja és megtalálja az twrp.fstab fájlt a ramdiskben, át fogja nevezni> etc> recovery.fstab.bak névre - alapvetően az eszköz fstab-ját helyettesíti a TWRP fstab-al, amely kiterjeszti a kompatibilitást.

Példa kód:

PRODUCT_COPY_FILES + = device / lge / hammerhead / twrp.fstab: helyreállítás> gyökér> stb.> Twrp.fstab

A TWRP-ben található fstab tartalmazhat néhány „zászlót” az fstabban felsorolt ​​minden partícióhoz.

Ezek a zászlók hozzáadódnak a végéig az partíciók felsorolása az fstab-ban, szóközzel / szóközzel / tabulátorral elválasztva. A zászló csak ezt a partíciót fogja érinteni, de másokat nem. A zászlókat pontosvesszők választják el egymástól. Íme néhány példa kód:

Vizsgáljuk meg tehát apránként. Az itt látható zászló a „Micro SDcard” megjelenítési nevet adja meg. A wipeingui zászló lehetővé teszi, hogy ez a partíció törölhető legyen az Advanced Wipe menüben. A kivehető jelző azt jelzi, hogy ez a partíció nem mindig van jelen, ami megakadályozza a szerelési hibák megjelenítését.

A zászlók teljes listája (kreditek a TeamWin-nek) :

  • kivehető - jelzi, hogy a partíció lehet, hogy nincs jelen, ami megakadályozza, hogy a telepítési hibák megjelenjenek a rendszerindítás során
  • tárolás - azt jelzi, hogy a partíció tárolóként használható, amely elérhetővé teszi a partíciót biztonsági másolat készítéséhez, visszaállításhoz, zip telepítésekhez stb.
  • settingsstorage - csak egy partíciót kell beállítási tárolónak beállítani, ezt a partíciót használják a TWRP beállításfájljának tárolási helyeként
  • letörölhető - jelzi, hogy a partíciót a háttérrendszer törölheti, de előfordulhat, hogy nem szerepel a GUI-ban, hogy a felhasználó törölje
  • userrmrf - felülbírálja a törlés szokásos formátumát, és csak a partíciót engedélyezi az rm -rf paranccsal
  • A backup = - értéknek az egyenlőségjelnek kell lennie, így a backup = 1 vagy backup = 0, 1 azt jelzi, hogy a partíció felsorolható a biztonsági mentés / visszaállítás listában, míg a 0 biztosítja, hogy ez a partíció ne jelenjen meg a biztonsági mentési listában.
  • wipeingui - a partíció megjelenik a grafikus felületen, hogy a felhasználó kiválaszthassa törölhetővé a speciális törlés menüben
  • gyári törlés törlése - a partíció törlésre kerül a gyári visszaállítás során
  • ignoreblkid - A blkid segítségével meghatározható, hogy a TWRP milyen fájlrendszert használ, ez a jelzés arra készteti a TWRP-t, hogy kihagyja / figyelmen kívül hagyja az blkid eredményeit, és csak az fstab-ban megadott fájlrendszert használja
  • retainlayoutversion - hatására a TWRP megőrzi a .layoutversion fájlt az / adatokban olyan eszközökön, mint a Sony Xperia S, amelyek ugyan használnak / data / media, de mégis külön / sdcard partícióval rendelkeznek
  • symlink = - a TWRP-nek további csatolási parancsot futtat a partíció telepítésekor, amelyet általában a / data / media fájlhoz használnak az / sdcard létrehozásához.
  • kijelző = - beállítja a partíció megjelenítési nevét a GUI-ban való felsoroláshoz
  • storagename = - a tároló nevét állítja be a partíció számára a GUI tárolólistában való felsoroláshoz
  • biztonsági név = - a partíció biztonsági másolatát állítja be a GUI biztonsági mentési / visszaállítási listáján való felsoroláshoz
    length = - általában az / data partíció végén lévő üres hely lefoglalására szolgál a visszafejtési kulcs tárolásához, amikor az Android teljes eszköz-titkosítása rendelkezésre áll, ennek hiányában az eszköz titkosításának képtelenségéhez vezethet
  • canencryptbackup = - 1 vagy 0 engedélyezéséhez / letiltásához, a TWRP titkosítja a partíció biztonsági másolatát, ha a felhasználó titkosítást választ (csak a tar-mentésekre vonatkozik, képekre nem)
  • userdataencryptbackup = - 1 vagy 0 az engedélyezéshez / letiltáshoz, a TWRP-vel csak a partíció felhasználói adatainak titkosítását teszi lehetővé, bizonyos alrészeket, például a / data / app időt nem titkosítva
  • felosztása = - az egyenlőségjelnek és annak a partíciónak az útvonalának kell lennie, amelynek részpartíciója. Az alpartíciót a fő partíció „részeként” kezelik, így például a TWRP automatikusan az / dataadatát az / data részpartícióvá teszi. Ez azt jelenti, hogy a / datadata nem jelenik meg a grafikus felhasználói felület listáin, de a / datadata törölhető, biztonsági másolatot készít, visszaállítódik, felcsatolja és leválasztja bármikor, amikor ezeket a műveleteket végrehajtják az / data oldalon.

Az alpartíciók használatának jó példája az LG Optimus G 3x efs partíciója:

Ez mind a 3 partíciót egyetlen „EFS” bejegyzésbe foglalja a TWRP GUI-ban, amely lehetővé teszi mind a három biztonsági másolat készítését és visszaállítását egyetlen bejegyzés alatt.

A TWRP 3.2.0 vagy újabb verzióval, amely a V2 Fstab szoftvert használja, Ön nem kell hozzá építési zászlókat . A V2 Fstab támogatása automatikus. A V2 Fstab támogatja a helyettesítő karaktereket is (a * szimbólum), amelyek hasznosak lehetnek a több partícióval rendelkező USB OTG és micro-SD kártyákhoz. Folytathatja a V1 Fstab formátum használatát is, és teljesen lehetséges mind a V1, mind a V2 típusok használata ugyanabban az Fstab-ban.

Például itt van egy V1 Fstab sor, helyettesítővel, az USB OTG-hez:

Itt van egy V2 Fstab vonal ugyanarra az eszközre, amely ugyanazt az eredményt éri el:

Ezenkívül felveheti az etc twrp.flag-okat is, amelyek a V1 Fstab formátumot használják, és felhasználhatók a V2 Fstab kiegészítésére TWRP zászlókkal, további partíciókkal, amelyek nem szerepelnek a V2 Fstab-ban, vagy felülírható beállításokkal a V2 Fstab-ban.

Például egy Huawei eszközön megtalálható ez a V2 fstab az etc recovery.fstab fájlban:

Ezeket a zászlókat is tartalmazhatja:

Tehát itt a TWRP.Flags első két sora hozzáadja a Boot és a Recovery partíciókat, amelyek nem voltak jelen a V2 Fstab-ban. Ezután a / cust sor a TWRP.flags-ban utasítja a TWRP-t, hogy engedélyezze a végfelhasználó számára, hogy biztonsági másolatot készítsen a (cust) partícióról, és megjelenítési nevet adjon neki.

A / misc partíció a twrp.flags fájlban található, az / oeminfo partíció pedig utasítja a TWRP-t, hogy engedélyezze a biztonsági másolatok készítését és a megjelenítendő név megadását is.

Szükségünk van az / data sorra, mert sok Huawei eszköz titkosítva van, de speciális Huawei binárisokat használnak - így a Huawei binárisokat használjuk az eszköz automatikus visszafejtésére helyreállítási módban. Tehát itt az / data sor utasítja a TWRP-t a / dev / block / dm -0, és nem a / dev / block / bootdevice / by-name / userdata használatára, amelyet általában a „megfelelő” csatlakoztatáshoz használnak.

Végül ott van a / system_image, hogy a TWRP tartalmazzon egy lehetőséget a rendszerkép létrehozására a Biztonsági mentés és Visszaállítás menüben.

A hivatalos TeamWin github-nak tartalmaznia kell a legújabb TWRP porttal rendelkező eszközök legfrissebb példányait is. A TeamWin github megtalálható ITT .

Miután az Omni vagy a CM szinkronizálva lett, és beállította a TWRP jelzőit, fel kell építenie egy forrást ./build/envsetup.sh

És érdemes „ebédelni” a készüléket, így olyat tehet, mint az „ebéd omni_hammerhead.eng”.

Sikeres ebéd után a legtöbb eszköz ezt a parancsot fogja használni:

Ki kell cserélnie a # in –j # számot a magszámra +1. Tehát, ha kétmagos van –j3, akkor a quadcore –j5 lesz stb. Cserélje ki a # -ot +1 magszámra, tehát ha kettős magja van, akkor -j3, a négymagos -j5-jé lesz stb.

Ezenkívül a tipikus Samsung készülékek ezt megkövetelik:

Ennek oka, hogy a legtöbb Samsung eszköz tartalmazza a helyreállítást extra ramdisk-ként a csomagtartóban, külön helyreállítási partíció helyett (amelyet a legtöbb más eszköz használ).

Mostanra le kell fordítania a TWRP-t az eszközéhez, és remélhetőleg emulátor-környezetben működik. Először mindig tesztelje TWRP-portját emulátoros környezetben, így nem kockáztatja meg a készülék meghibásodását.
Töltse le ezt az eszközkonfigurációs fájlkészletet.

Az eszközfájlok segítségével állítson össze egy helyreállítási képet. Az Android SDK-ban kattintson az Eszközök -> AVD-k kezelése elemre. Kattintson az Új gombra. Állítsa be a következőképpen:

Ezután kattintson az OK gombra.

Miután megvan az AVD és a helyreállítási kép, elindíthatja a TWRP-t az emulátorban az android-sdk / tools mappába tallózva, és futtassa ezt a parancsot:

Vegye figyelembe, hogy az ADB nem működik azonnal. Körülbelül 10-15 másodperccel a TWRP indításának befejezése után az ADB online lesz. Az ADB-t az init.rc fájlon keresztül indítjuk, így akkor is, ha a TWRP nem indul el valamilyen kódhiba miatt, amelyet esetleg elkövettünk, az ADB-nek továbbra is működnie kell. Élvezd!

TWRP és A / B eszközök (kreditek a TeamWin-nek):

A TWRP szempontjából az A / B eszközök nem sokban különböznek a szokásos eszközöktől, de a fejlesztők úgy tűnik, hogy félénkek ezen az eszközön dolgozni. Megpróbálom megvilágítani ezt a témát, és remélhetőleg ez útmutatóként szolgál majd a TWRP A / B eszközökhöz történő hordozásához.

Először is, értsük meg, mi az A / B eszköz, és miben különbözik. Az A / B eszközök sok partíció másolatát tartalmazzák az eszközön. Egy A / B eszköz 2x rendszerpartícióval, 2x boot partícióval, 2x szállító partícióval, 2x modem / firmware partícióval stb. Rendelkezik. Egyszerre csak egy nyílás van használatban. A korai indítás során a rendszerbetöltő első szakaszai kis mennyiségű adatot olvasnak, az úgynevezett BCB vagy Bootloader vezérlőblokkot, és eldöntik, hogy az A vagy B partíciókat indítják-e. Amikor elérhető egy OTA frissítés, az aktív résből származó adatokat az inaktív résből átmásolják és javítják / frissítik. Például, ha éppen az A nyíláson van, a készülék letölti a frissítést, és a meglévő rendszerpartíciót átmásolja az A nyílásba, és az új frissítésekkel javítja / frissíti a B nyílásba. Miután a másolás és frissítés befejeződött, a BCB frissül, és az eszköz újraindul a B nyílással. Legközelebb, amikor elérhető egy frissítés, a B nyílásban lévő rendszerpartíciót átmásolja az A nyílásba és frissíti, a BCB frissül, mi pedig újraindulunk az A nyílásba. valami ilyesmit fog látni:

Vegye figyelembe a kettős rendszerindító, rendszer és szállító partíciókat a fenti listában, de csak egy userdata partíciót.

Noha technikailag nincs követelmény, amellyel tisztában lennék, az összes eddig szállított A / B eszköznek nincs külön helyreállítási partíciója. Ehelyett a rendszerindító lemezkép tartalmazza a helyreállítást a ramdisk-jében. A legfontosabb az, hogy tudjuk, hogy a rendszerindító lemezkép is tartalmazza a helyreállítást. A teljesség kedvéért a rendszerpartíció egy teljes gyökér fájlrendszer. A rendszerindítás során, ha a rendszermagnak azt mondják, hogy indítson helyreállításra, kibontja a ramdiskot a rendszerindítási partícióban. Ha a kernelt a rendszerbetöltő nem mondja meg, hogy indítson helyreállításra, akkor a kern beilleszti a megfelelő rendszerpartíciót (A vagy B), mert a rendszerpartíció egy teljes gyökér fájlrendszer. Ez azt jelenti, hogy ezeken az eszközökön a rendszerpartíció a / helyett a / system-be van csatolva, és a rendszerpartíció tartalmazza az összes olyan fájlt, amely általában a rendszerindító lemezkép ramdisk-jében és egy / system almappájában lett volna.

TWRP szempontból 3 dolgot kell elvégeznie egy A / B eszközhöz. Először be kell állítania

Kód:

Végül, ha belépsz a TWRP-be, valószínűleg meg akarsz győződni arról, hogy a bootctl hal-info hibamentesen reagál-e. A bootctl bináris fájlhoz általában egy saját könyvtárra vagy akár néhány szolgáltatásra van szükség a megfelelő működéshez. Ha a bootctl nem működik megfelelően, akkor a TWRP-n belül sem tudja helyesen váltani a réseket.

A beállítás mellett

Kód:

AB_OTA_UPDATER: = igaz

érdemes beállítani:

Kód:

BOARD_USES_RECOVERY_AS_BOOT: = igaz

BOARD_BUILD_SYSTEM_ROOT_IMAGE: = igaz

Ha beállítod

Kód:

BOARD_USES_RECOVERY_AS_BOOT: = igaz

akkor a helyreállítás kép már nem fog működni, és helyette indítóképet kell készítenie. Nem javaslom ezeknek a zászlóknak a beállítását csak a TWRP építésére szolgáló fákra. Ezekre a jelzőkre valószínűleg szükség lesz azoknak a fejlesztőknek, akik teljes ROM-okat építenek az A / B eszközökhöz.

TWRP telepítése / villogása A / B eszközökön:

Mivel az összes ismert A / B eszköznek nincs külön helyreállítási partíciója, végül TWRP-t kell villantania a rendszerindító partícióhoz. A Pixel 1-en és 2-n a fastboot boot segítségével ideiglenesen elindítjuk a TWRP-t, anélkül, hogy villogna a TWRP. Ezután szállítunk egy zip-et, amely lehetővé teszi a felhasználók számára, hogy a TWRP-t mindkét résszel villogtassák. Ezeknek a cipzáraknak az egyikét letöltheti weboldalunkról, és szükség szerint frissítheti a cipzárt az eszközök támogatásához. Végül hozzáadunk olyan eszközöket a TWRP-hez, amelyek lehetővé teszik a felhasználók számára, hogy a helyreállítást villámgyorsan felvillanják ezeken az eszközökön, zipek használata nélkül.

Nemrég a Razer Phone-n dolgoztam. A Razer Phone sajnos nem támogatja a gyorsboot indítást. Ehelyett a felhasználóknak meg kell határozniuk a jelenleg aktív indítóhelyüket

Kód:

hogy bekerüljön a TWRP-be. Miután beléptek a TWRP-be, az újraindítási oldalra léphetnek, és visszatérhetnek az eredetileg aktív nyílásukra, biztonsági másolatot készíthetnek, majd telepíthetik a TWRP-t. Az inaktív nyílás használata lehetővé teszi a felhasználók számára, hogy a TWRP telepítése előtt jó, módosítatlan biztonsági másolatot szerezzenek eszközükről.

További megjegyzések:

Ha TWRP-t szeretne kapni az eszközöd hivatalosan támogatott hogy a TWRP alkalmazással automatikusan telepíthető legyen, és ezt nagyon szeretné megtenni, hogy ugyanazon eszköz más tulajdonosai is élvezhessék a hivatalos TWRP támogatást, és ez a kedves dolog, el kell küldenie a következő információkat: TeamWin:

  1. Eszközkonfigurációs fájlok a TWRP fordításához forrásból a készülékéhez - ne csomagoljon vissza helyreállítást.img kézzel , forrásból kell összeállítaniuk.
  2. Miután a TeamWin elkészítette a TWRP másolatát, elküldi neked érvényesítésre - miután validáltad, a TeamWin elkészít egy működő képet az eszközödhöz, és hozzáadja a hivatalos TWRP alkalmazáshoz.
13 perc olvasás