Új hozzászólás Aktív témák

  • Keeperv85

    nagyúr

    válasz Keeperv85 #1510 üzenetére

    Nos akkor lássuk. Pár apróság, minek néz elébe, aki 5.0-val játszik.

    -root nincs jelenleg, csak a Samsungokra, abból sem mindre
    -insecured kernel többé nem létezik
    .az EGÉSZ fájlrendszer SELinux védett
    -az apk fájlokhoz egyedi apktool kell, csak a legfrissebb verzió támogatott

    Hogy példával bemutassam, ami eddig volt, az így néz ki, mint megoldás, ha pl. a Settings.apk szövegeit cserélnénk.

    Adott:

    system.img - ext4 lemezkép
    apktool RC4
    ext2simg bináris
    make_ext4fs bináris
    simg2img bináris
    signapk fájlok

    Régi módszer:

    simg2img system.img sys.raw //szétcsomagoljuk a system.img-t
    mkdir mnt //mnt könyvtár a csatolási pontnak
    sudo mount -t ext4 sys.raw mnt //csatoljuk a lemezképet
    mk workdir //munkakönyvtár az apktool-nak
    cp mnt/priv-app/Settings.apk workdir //a kiválasztott csomag másolása szerkesztésre
    apktool if mnt/framework/framework-res.apk //az apktool felkészítése a kicsomagolásra, szimbólumtáblák kibontása
    cd workdir //belépés a munkakönyvtárba
    apktool d -s Settings.apk //apk kibontása
    gedit Settings/res/values-hu/strings.xml //szöveg átírása
    apktool b Settings //apk felépítése
    sigsystem.sh /Settings/dist/Settings.apk /Settings/dist/Settings.apk //apk aláírása
    sudo cp /Settings/dist/Settings.apk ../mnt/priv-app //apk helyére másolása
    cd .. //visszalépés a főkönyvtárba
    sudo make_ext4fs -s -l 900M -a system system_new2.img mnt/ //a mount point tartalmának visszacsomagolása egy új lemezképbe

    Ez jó volt a 4.4-ig...Nézzétek meg, majd felejtsétek el!

    Az új játékszerek ugyanis csak így fognak menni:

    simg2img system.img sys.raw //szétcsomagoljuk a system.img-t
    mkdir mnt //mnt könyvtár a csatolási pontnak
    sudo mount -t -o loop ext4 sys.raw mnt //csatoljuk a lemezképet
    mk workdir //munkakönyvtár az apktool-nak
    cp mnt/priv-app/Settings/Settings.apk workdir //a kiválasztott csomag másolása szerkesztésre
    apktool if mnt/framework/framework-res.apk //az apktool felkészítése a kicsomagolásra, szimbólumtáblák kibontása, a mediatek-res.apk átkerül a mediatek-res almappába
    cd workdir //belépés a munkakönyvtárba
    apktool d -s Settings.apk //apk kibontása
    gedit Settings/res/values-hu/strings.xml //szöveg átírása
    apktool b Settings //apk felépítése
    sigsystem.sh /Settings/dist/Settings.apk /Settings/dist/Settings.apk //apk aláírása
    sudo cp /Settings/dist/Settings.apk ../mnt/priv-app/Settings/ //apk helyére másolása
    cd .. //visszalépés a főkönyvtárba
    cd mnt/priv-app/Settings/

    Itt most álljunk meg! Minek léptünk ide? Nézzük meg a fájlunk jogait!

    ls -l

    -rw-r--r-- 1 root root 15076502 márc 9 02:34 Settings.apk

    Jó ez nekünk? Hát persze. Miért ne lenne jó?! Hát persze, hogy nem jó!

    Helyesen:

    -rw-r--r--. 1 root root 15076502 márc 9 02:34 Settings.apk

    Mi az a pont ott ugye... SELinux jogok vannak a fájlokon... Mindegyiken...

    Elméletileg make_ext4fs ezeket is vissza tudja tenni, így:

    sudo make_ext4fs -S ./file_context -l 900M -a system system_new2.img mnt/

    Elméletileg... Gyakorlatilag ehhez kell a file_context fájl a ramdisk alól, amihez ki kell bontani a boot.img-t is. Gyakorlatilag pedig a folyamat nem szokott sikerülni... Hagyjuk ezt békén!

    Visszatérve a Settings.apk-ra... Hogyan lesz ott pont is?

    Nézzünk egy ilyet:

    ls -Z
    u:object_r:system_file:s0 Settings.apk

    Így kéne kinézzen... helyette nekünk...

    ls -Z
    ? Settings.apk

    Következmény: az SELinux észre fogja venni, hogy a fájlt megpiszkáltuk! Első dolga lesz levenni az ÖSSZES jogot a fájlunkról... és ha ez pont a Settings, akkor felejthetjük a SetupWizardnál el a rendszerünk, mert azon sem megyünk túl...

    Jójó... hogyan legyen ismét pont? Hát van nekünk egy aranyos kis SELinux Kit települve, ha frissült a Linux az utóbbi 1 évben.

    Van benne egy bizonyos "chcon" bináris.

    Mondjuk neki (még mindig a Settings könyvtár alatt állva):

    chcon u:object_r:system_file:s0 Settings.apk

    ...és:

    ls -Z
    u:object_r:system_file:s0 Settings.apk

    Megszültük. Az összes jogosultság rendben, a pont is ott lesz az ls -l parancsot kiadva... Már csak be kéne csomagolni...

    NE így:
    sudo make_ext4fs -S ./file_context -l 900M -a system system_new2.img mnt/

    Hanem így:

    ./ext2simg sys.raw system2.img

    Ezzel a már meglévő flag-ek nem sérülnek... és...

    Most már szabadon gyalázkodhatunk javíthatunk bármit! ;]

    [ Szerkesztve ]

Új hozzászólás Aktív témák