Dawniej gdy chcieliśmy coś modyfikować w systemie musieliśmy zdekompilować plik APK, modyfikować co chcieliśmy i tworzyliśmy plik APK na nowo. Potem trzeba było wrzucić plik na partycję systemową i cieszyć się zmianami (pod warunkiem że ta modyfikacja chciała działać). Od kiedy mamy Xposed takich zmian nie musimy robić, bo wszystko odbywa się w pamięci RAM.
Xposed Framework to projekt open sourcowy który pozwala na modyfikowanie różnych aspektów systemu bez modyfikowania plików systemowych (po za jednym), dzięki temu nie ma obawy że coś zepsujemy. Jak to działa? Podmieniamy jeden plik na partycji systemowej /system/bin/app_process na ten z Xposed Framework. Dzięki temu będziemy mogli za pomocą specjalnych modułów wstrzykiwać kod do innych aplikacji.
Oczywiście nie musimy sami grzebać w systemie aby podmienić ten plik. Wystarczy zainstalować instalator Xposed z oficjalnej strony. Zalecam instalację wersji stabilnej, na stronie ukazuje się po kliknięciu "Show older versions". Gdy już zainstalujemy instalator uruchamiamy go, wybieramy Framework i Classical aby zainstalować na partycji /system plik app_process. Oczywiście musimy mieć zrootowany system.
Gdy zainstalujemy dokonujemy restartu systemu co z resztą sugeruje instalator. Gdy system wstanie uruchamiamy jeszcze raz instalator. Jeżeli wersja frameworka w pamięci RAM odpowiada tej na dysku flash to znaczy że Xposed działa. Ale sam framework nic nie daje. Xposed otwiera drzwi dla modułów. Owe moduły zawierają kod który można wstrzykiwać do systemu i innych aplikacji.
Aby zainstalować jakiś moduł wchodzimy do instalatora Xposed, wybieramy Pobierz i przeglądamy repozytorium modułów. Tu możemy pobierać, instalować, aktualizować i uzyskiwać informacje na temat modułów. Tak więc nie musimy przekopywać internetów w poszukiwaniu modułów. Niczym jak w menedżerze pakietów w Linuksie.
Gdy wybierzemy jakiś moduł, instalator go pobierze i będzie próbował zainstalować. Po instalacji trzeba moduł aktywować. W głównym menu instalatora Xposed wchodzimy do Moduły i zaznaczamy moduł, który chcemy aktywować. Teraz restartujemy samą maszynę wirtualną Androida, bez restartu całego systemu. W menu głównym wybieramy Framework i Miękki restart.
Nie tylko moduły z repo Xposed korzystają z frameworka. Niektóre aplikacje z Google Play również z niego korzystają, np. Greenify.
Teraz przedstawię zbiór modułów z których korzystam:
- Activity Force New Task - aplikacje potrafią uruchamiać aktywności innych aplikacji, np. przeglądamy Google Plusa, napotykamy na film, klikamy go i film uruchamia się nam w aplikacji Youtube. Ale gdy wyświetlimy ostatnie aplikacje (przez przytrzymanie przycisku Home) nie będzie tam Youtube. Youtube został uruchomiony jako aktywność Google Plusa. Aby w podglądzie ostatnich aplikacji wyświetlać wszystkie aktywności warto zainstalować ten moduł.
- Advanced Power Menu - standardowe menu które pojawia się po przytrzymaniu przycisku Power moim zdaniem jest mało przydatne. Nie pozwalana ponowne uruchomienie i przejście do Recovery bądź zrestartowanie samego Androida. Dzięki temu modułowi do Power Menu możemy dodać nowe elementy, np. Soft Reboot, Screenshot.
- App Settings - moduł pozwala na zmianę zachowania poszczególnych aplikacji. Możemy zmienić tylko dla wybranej aplikacji wartość DPI naszego ekranu aby ta wyświetliła interfejs przeznaczony dla tabletów; zmienić rozmiar użytych czcionek; utrzymywać włączony ekran gdy aktywna jest aplikacja; uczynić aplikację niezniszczalną (to znaczy że Android nie będzie mógł zakończyć jej aktywności). Szczególnie ta ostatnia opcja jest przydatna. Android w wersjach 4.x ma bug który pozwala na zabijanie przez system procesu klawiatury, gdy brakuje mu RAMu (choć w pamięci są inne aplikacje, które można zabić). Dzięki temu możemy chronić aplikację klawiatury przed zabiciem i zniknięciem klawiatury w trakcie pisania.
- AppOpsXposed - twórcy Androida usunęli bardzo fajną funkcjonalność systemu z wersji 4.3 wzwyż. AppOps pozwalała na modyfikację uprawnień poszczególnych aplikacji. Ten moduł przywraca tą możliwość w nowszych Androidach. AppOps możemy wywołać z menu ustawień, bądź okna informacji poszczególnych aplikacji.
- Boot Manager - najlepsza aplikacja do zarządzania aplikacjami uruchamianymi na starcie systemu. Jedną z ciekawych opcji to pojawiające się powiadomienie po instalacji nowej aplikacji informujące, że ta chce się uruchamiać wraz z systemem. Dzięki temu na bieżąco możemy wyłączać takie aplikacje.
- Cool Tool - nie jest to moduł, ale aplikacja która może wykorzystywać framework Xposed do umieszczenia swoich elementów na pasku powiadomień. Ja wykorzystuje ją do wyświetlania na tym pasku ilości wolnej pamięci RAM i zajętości CPU.
- Greenify - kolejna aplikacja, która ma możliwość korzystania z Xposed. Dzięki temu zwiększają się możliwości użycia Greenify, np. szybsze usypanie aplikacji, zachowywania powiadomień z zamkniętych apek, śledzenie i odcinanie ścieżek wybudzeń, pozwalać na wybudzanie aplikacji za pomocą GCM (Google Could Messaging).
- Intelli3G - aplikacja, która automatyzuje przełączanie pomiędzy 2G/3G/LTE. Możemy skonfigurować apkę tak aby przełączała tryb sieci na 2G gdy korzystamy z WiFi bądź wyłączamy ekran. Możemy również ustalić wyjątki, np. gdy korzystamy z WiFi Tetheringu sieć LTE ma być cały czas włączona.
- Minminguard - blokowanie sieci reklamowych przez plik /system/etc/hosts pozostawia pusty prostokąt w miejscu gdzie była reklama w aplikacji. Ten moduł umożliwia usunięcie reklam z aplikacji, wraz z uwolnieniem miejsca przez nie zajmowane. Działa tylko z określonymi sieciami reklamowymi np. AdMob, DoubleClick.
- Secure Settings - wtyczka do Taskera roszerzająca jego możliwości automatyzacyjne. Do części ustawień wymagany jest Xposed.
- Youtube AdAway - moduł usuwający reklamy z mobilnej wersji Youtube'a
- Kitkat Toast Backport - moduł zmieniający chmurki które pokazują się gdy system powiadamia nas o jakimś zdarzeniu. Jak nazwa wskazuje zmienia ich wygląd na takie jakie są w AOSP w wersji Kitkat.
- Play Store link in App info - w systemowej informacji o aplikacji dodaje przycisk dzięki któremu można od razu się wyświetlić aplikację w sklepie Play.
- Smooth System Progress Bars - animacja standardowego paska oczekiwania nie jest płynna. Ten moduł poprawia jego wygląd dzięki czemu animacja jest płynna.
- Xposed Recent Task RAM - dodaje do ekranu ostatnich aplikacji pasek pokazujący zajętość RAMu i przycisk umożliwiający usunięcie wszystkich aplikacji z tego ekranu.
To są przykładowe moduły z których ja korzystam. Sporą ilość fanów ma moduł GravityBox, ale nie korzystam z niego bo jest nieco przeładowany usprawnieniami. Wolałem rozbić to na kilka mniejszych modułów, które nie mają rezydujących usług w tle. Ilość modułów stale rośnie i każdy na pewno znajdzie coś dla siebie. Dla mnie framework Xposed to absolutne must have jeżeli chodzi o rootowanie Androida. Polecam każdemu użytkownikowi zrootowanego urządzenia.