Czym dokładnie jest framework-res.apk

9

O ile rozumiem, jest to duży plik systemowy, który najwyraźniej kontroluje dużą część telefonu. Interesuje mnie to, bo chciałem zrobić trochę tematów i do tej pory edytowałem SystemUI.apk, ale jeśli kiedykolwiek napotkam jakieś problemy (i będąc początkującym, który musi się wydarzyć) nic nie wydarzy się inaczej niż fakt, że straciłem mój pasek powiadomień.

Problem polega na tym, że słyszałem o ludziach, którzy dotknęli framework-res.apk i nie mogli nawet uruchomić telefonu. Postanowiłem, zanim niedbale pogrzebałem w czymś, co mogłoby potencjalnie zmiękczyć cegłę mojego telefonu, chciałbym dowiedzieć się nieco więcej na ten temat.

Czym dokładnie jest framework-res.apk? Do czego jest to używane? Co to kontroluje? Gdzie widzimy jego wykorzystanie? Co może się stać z moim telefonem, jeśli coś pójdzie nie tak z ramkami? Coś jeszcze powinienem wiedzieć przed szturchaniem nosa tam, gdzie nie powinno być?

Sean
źródło

Odpowiedzi:

8

Framework-res.apkw zasadzie zawiera elementy graficznego interfejsu użytkownika telefonu. Ten plik jest dostępny pod adresem /system/framework/framework-res.apk.

Wbicie tego pliku oznaczałoby zmianę pełnego wyglądu urządzenia. Ponieważ jest to główny element ekranu, zastąpienie go bezpośrednio przez przepchnięcie go przez ADB doprowadziłoby do powstania miękkiej cegły. Dlatego ten apk powinien być ostrożnie zmodyfikowany i wymieniony za pomocą modułu odzyskiwania telefonu.

Sprawdź ten link, aby uzyskać szczegółowe informacje na temat tego samego: Modyfikacja pliku framework-res.apk (Theming the UI)

SamSPICA
źródło
3

Z mojego doświadczenia w kodowaniu mogę powiedzieć, co rozumiem:

Jeśli znasz terminologię programowania aplikacji, ten framework-res.apk jest tylko biblioteką zasobów. Kontynuując to założenie, inne moduły, biblioteki zależą od tego pliku, aby uzyskać obrazy, dźwięk itp. Na przykład dźwięk animacji rozruchowej jest osadzony w tym pliku. Każdy zasób generalnie otrzymuje identyfikator wraz z ładowaniem innych modułów i po prostu zakładają lub przyjmują za pewnik, że taki zasób będzie dostępny w tym pliku.

Zasadniczo będzie plik manifestu, który będzie indeksował wszystkie zasoby (obrazy, dźwięki itp.) Względem jego identyfikatora. Segmenty kodu, które odwzorowują zasoby względem jego identyfikatora i pobierają żądany zasób, zostaną skompilowane z jedną platformą / wersją / biblioteką, a zatem poprawienie i ponowna kompilacja, jeśli nie zostaną wykonane ostrożnie, sprawi, że framework-res.apk będzie niezgodny z jego modułami używającymi. W zależności od tego, jak rzeczy zostaną zaimplementowane, możesz uniknąć błędu, ale programiści nie mogą oczekiwać, że wszystko zweryfikują, i muszą wziąć pewne rzeczy za pewnik (np. Obecność zasobu, ponieważ to on go zasadził). Dlatego zwykle moduł konsumujący zawiesza się, a zatem cały telefon wydaje się być zamrożony, ponieważ moduły systemowe również zależą od tego apka.

Narayanan
źródło
0

Jeśli chcesz zmienić plik AndroidManifest.xml pliku framework-res.apk, myślę, że musisz podpisać wszystkie apki systemowe własnym kluczem, aby uniknąć bootloopa. Jeśli chcesz zmienić inne rzeczy w framework-res.apk: „niż przeciągnij folder meta-inf i androidmanifest.xml z oryginalnej apki do modowanej apki za pomocą 7zip lub winrar”

W framework-res.apk możesz zmienić niektóre myśli, takie jak poziom ochrony itp. Jest to interesujące: https://www.reddit.com/r/LineageOS/comments/9z728h/how_to_change_frameworkresapk_without_bootloop/

Moje błędy, gdy podpisuję wszystkie aplikacje systemowe za pomocą mojego klucza: Nie mogę ponownie podpisać aplikacji systemu Android bez awarii aplikacji (przy użyciu LineageOS)

Nie można ponownie podpisać aplikacji systemu Android bez awarii aplikacji (przy użyciu LineageOS)

Ma podobne problemy i stworzył aktualizację. Zip: /programming/9475576/resigning-system-img-on-a-device

andromade7
źródło