Xposed dla Lollipopa już oficjalnie dostępny

click fraud protection

Xposed Framework nie wymaga przedstawiania czytelnikom XDA. Zapytany o sprawy naszej społeczności najbardziej nienawidzi Lollipopa, komentarzem w dyskusji, który uzyskał najwięcej głosów, było to, że złamał on wsparcie dla Xposed. W rzeczywistości wielu członków forum nawet z tego powodu odmówiło aktualizacji do Lollipopa. Ale to wszystko się teraz zmienia, gdy długo oczekiwany Xposed Framework wreszcie pojawił się dla Androida Lollipop.

Jeśli nie znasz jeszcze Xposed, mówiąc najprościej, jest to dar niebios dla społeczności modderskiej. Xposed nie wymaga flashowania żadnych ROM-ów, ale zapewnia mnóstwo dostosowań i ulepszeń, które użytkownicy mogą instalować jak aplikacje na zrootowanych urządzeniach. Jest niezwykle prosty w użyciu i wiąże się z ograniczonym ryzykiem. A teraz wszyscy entuzjaści Androida na Lollipop mogą cieszyć się korzyściami płynącymi z tego fantastycznego projektu na swoich urządzeniach. Pobierz pobrany plik i zabierz się za modowanie!

rovo89 był również na tyle miły, że udzielił nam pytań i odpowiedzi na temat najnowszego projektu. Odpowiedzi na wszystkie pytania dotyczące projektu znajdziesz poniżej.

Dlaczego to trwało tak długo? ART ukazał się ponad rok temu!

Po pierwsze - wiele osób wciąż prosi o wsparcie ART. Lollipop zawiera znacznie więcej zmian, takich jak jeszcze bardziej rygorystyczne zasady SELinux, 64-bitowe ROMy i zmiany w architekturze, których można się spodziewać po głównej wersji. I oczywiście sama ART jest stale udoskonalana; istnieją duże różnice między ART dla KitKat i ART dla Lollipop.

Zatem jednym z powodów jest duża złożoność, która wymagała wielu, wielu godzin pracy w zakresie badań, rozwoju i testowania.

Innym powodem jest to, że w moim życiu są inne rzeczy niż Xposed, więc zdarzały się tygodnie, a nawet miesiące, podczas których prawie w ogóle nie zaglądałem do kodu.

Czy musimy przepisać wszystkie moduły?

Nie, interfejs API Xposed pozostał praktycznie niezmieniony. Xposed streszcza wszystkie szczegóły, więc moduły nie muszą się martwić, czy działają na Dalvik, czy ART. Wiele modułów będzie faktycznie działać bez żadnych zmian, zwłaszcza te, które modyfikują zachowanie aplikacji użytkownika. Moduły ukierunkowane na zachowanie systemu mogą wymagać dostosowania do nowego kodu frameworku Android, który nie jest spowodowane przez ART, ale po prostu przez zmiany w architekturze i kodzie, które zachodzą pomiędzy dowolnymi dwoma Androidami wydania. Najważniejszym z nich jest to, że kod usług systemowych został przeniesiony do osobnego pliku. W przypadku większości modułów, których dotyczy problem, można to rozwiązać poprzez niewielką refaktoryzację (przeniesienie kodu w inne miejsce).

Czy to faktycznie działa?

Tak! Przynajmniej dla mnie działa dobrze na moim codziennym urządzeniu (Nexus 5 na CM12), a także na moim Nexusie 9 (płatnym przez XDA – dzięki!). Telefon jak zwykle działa stabilnie, aplikacje działają prawidłowo. I oczywiście moduły i ich haki/zamienniki zasobów również działają dobrze, w przeciwnym razie nie byłoby sensu wypuszczać czegoś.

Ale dlaczego jest to wersja alfa?

Ponieważ od ostatniej stabilnej wersji zaszły ogromne zmiany, które muszą zostać przetestowane przez osoby, które wiedzą, jak korzystać z odzyskiwania, uciekać z pętli rozruchowych i prawidłowo zgłaszać błędy. Zdecydowanie radzę początkującym poczekać, aż Xposed zostanie przetestowany przez wystarczającą liczbę doświadczonych osób.

Istnieją również przypadki brzegowe, które nie zostały jeszcze przetestowane, takie jak przechwytywanie metod JNI (natywnych) i metod, które są wykonywane w momencie ich podpinania.

Chcę to zainstalować. Teraz! Co mam do zrobienia?

Upewnij się, że przeczytałeś moje słowa powyżej i znasz elementy wewnętrzne swojego telefonu. Oczywiście musisz mieć pamięć ROM Lollipop i mieć dobrą kopię zapasową swoich danych. Na razie opublikuję tylko wersję ARMv7. Wersja 64-bitowa jest bardziej złożona, więc wypróbujmy najpierw „łatwy” wariant.

Na razie instalację należy przeprowadzić ręcznie w ramach odzyskiwania niestandardowego. Flashowanie pliku zip spowoduje zainstalowanie:

  • app_process32_xposed i niektóre dowiązania symboliczne
  • libexposed_art.so
  • libart.so i kilka powiązanych plików binarnych + biblioteki (oparte na wersji 5.0.2, wzbogacone o obsługę przechwytywania itp.)
  • XposedBridge.jar (teraz przechowywany w /system/framework)

Kopie zapasowe istniejących plików zostaną utworzone automatycznie i będzie można je później przywrócić.

To nie działa/nie podoba mi się to! Jak mogę to odinstalować?

Najprostszym sposobem jest przywrócenie kopii zapasowej lub flashowanie partycji systemowej. Nie utworzono jeszcze pliku ZIP do dezinstalacji.

Dlaczego zamieniacie pliki ART na moim urządzeniu? Jest to bardziej inwazyjne niż w przypadku Dalvik, spowoduje znaczne problemy z wydajnością i będzie niestabilne!

Zapisałem kilka powodów GitHub. Tak, jest bardziej inwazyjny, więc przez długi czas starałem się go unikać, ale z technicznego i zorientowanego na wsparcie punktu widzenia myślę, że jest to lepsza opcja.

Mniejsza wydajność niż oryginalna ART? Prawdopodobnie dlatego, że musiałem wyłączyć niektóre optymalizacje, aby umożliwić korzystanie z niektórych rodzajów haków. Jednak dotyczy to tylko ułamka wszystkich metod i nawet w przypadku tych utrata wydajności z pewnością nie jest znacząca ani zauważalna, jeśli w ogóle jest mierzalna. Nadal istnieją tysiące innych optymalizacji wykonanych przez ART, a ja starałem się wyłączyć jak najmniejszą ich liczbę, zapewniając jednocześnie jak największą elastyczność.

Stabilność jest w porządku, jak wspomniano powyżej. W porównaniu do podejścia, które zastosowałem w przypadku Dalvik (modyfikowanie wewnętrznych struktur danych środowiska wykonawczego z app_process), jestem nawet całkiem pewien, że całkowita wymiana bibliotek jest znacznie bardziej niezawodna sposób. Mógłbym w czysty sposób zintegrować moje zmiany z istniejącym kodem i ponownie wykorzystać powiązane funkcje, podczas gdy w innych przypadkach potrzebnych byłoby wiele hacków i założeń.

Czy w końcu upublicznisz kod źródłowy?

Jasne, znajdziesz go na GitHubie zaraz po wydaniu wersji alfa, na razie w osobnej gałęzi.

Czy to oznacza, że ​​starsze wersje Androida nie są już obsługiwane?

NIE! Nowy kod kompiluje się na wszystkich wersjach Androida 4.x i wymaga jedynie przetestowania przed ujednoliconą wersją. Ale najpierw muszę się upewnić, że działa dobrze w przypadku Lollipopa. Być może obsługa ART mogłaby zostać przeniesiona do KitKat, ale ma to mniejszy priorytet.

Jak mogę podziękować za Twoją pracę?

Wiele osób pytało o sposoby przekazania kilku dolarów, więc założyłem a darowizna stronę teraz.

Ile muszę przekazać, abyście mogli dodać funkcję X lub moduł obsługujący Y?

To nie jest darowizna, to płacenie komuś w oczekiwaniu na przyszłą pracę. Nie jestem zainteresowany pracą freelancera.