Hirdetés

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

  • Mr Dini

    addikt

    Üdv!

    Kicsit off kérdés, de hátha valaki tud nekem segíteni. Van egy egyedi romot futtató telefonom, aminek az FM rádiója (mezei qualcom féle FM2.apk) csak bedugott fülessel megy, mint antenna. Viszont az eredeti romjában simán ment a dolog füles nélkül is a teló fém váza miatt.

    A cél tehát az lenne, hogy csináljak egy patchelt apk-t, ami nem nézi, hogy be van-e dugva a vezetékes fülhallgató. A telefon magisk rootolt, így simán kiszedtem a /system/system_ext/app/FM2 alól az eredeti FM2.apk-t, apktoollal kibontottam, kikerestem a smaliban a boolean függvényt és megírtam, hogy mindig igazt dobjon vissza. Ezután összecsomagoltam apk-nak, majd következett az aláírás rész... Itt ugye bajban voltam, mert a rom a többi apk aláírására nem az android aosp repóban található publikus platform key-t használja, hanem egy rom dev által generált privát kulcsot. Ezért megpróbáltam saját kulccsal aláírni, majd később az aosp platform kulccsal is.

    Ezután beraktam az eredeti felé bindmountolva magiskkel, figyeltem arra, hogy selinux context és jogok megfeleljenek az eredetivel. Reboot után meg is jelenik a patchelt rádió apk, viszont megnyitáskor bekér pár permissiont, egy pillanatra felvillan a main activityje, majd azonnal crashel az app. Crashlog sehol. De szerencsére logcatben kiböki, hogy a zygote lőtte ki az appot:

    AndroidRuntime: java.lang.RuntimeException: Unable to create service com.caf.fmradio.FMRadioService: java.lang.SecurityException: Must hold the MODIFY_PHONE_STATE permission

    Én ezt úgy értelmezem, hogy a moddolt app nem kapja meg ugyanazt a jogot, mint az eredeti. Most vagy a smalit szúrtam el (de nem hiszem, mert tényleg egy boolról volt szó és nem egyszer patcheltem már smalit, illetve akkor mással szállna el talán), vagy az apktool szúrta el az androidmanifest.xml-t, amit szintén kétlek, vagy az android nem adja meg a jogot más kulccsal aláírt appoknak.

    Próbáltam berakni a /system/priv-app mappába is az apk-t, akkor meg be se bootolt többé a telefon. Pedig selinux stb rendben volt.

    Egyelőre csak arra tudok gondolni, hogy marad az app az eredeti helyére csatolva és létrehozok egy /system/etc/permissions entryt a moddolt fm rádiónak, hogy a rendszer mindenképp megadja a jogokat.

    Létezik, hogy ennyire finnyás lenne az Android 11? Hogy csak úgy nem adja meg a privileged jogokat nem platform key-jel aláírt appoknak? Amit nem értek, hogy az eredeti fm rádió egyáltalán hogy kapta meg, ha nincs permissions xml-je és nem a priv-app mappában van. Gondolom a rendszer tényleg az aláírás miatt engedi.

    Illetve tucat ilyen /data/app to /system/app konverter van a playben. Azok hogy csinálják ezt?

    Köszi! :R

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