Page 1 of 1

[KaiOS] Instalowanie aplikacji spoza sklepu (WebIDE, Jailbreak, Patch).

PostPosted: 4 Oct 2019, o 23:00
by pawelooss
System KaiOS przewiduje różne poziomy uprawnień dla aplikacji, które określają, do jakich funkcji urządzenia (przez WebAPI) dana aplikacja ma dostęp. Zdefiniowane jest to w pliku z opisem szczegółów technicznych (manifest.webapp) każdej aplikacji. W polu odnoszącym się do tych uprawnień może znaleźć się jedna z trzech wartości:
  • web apps - podstawowy poziom uprawnień, bez dostępu do uprzywilejowanego lub wewnętrznego API,
  • privileged apps - rozszerzony poziom uprawnień plus z dostępem do uprzywilejowanego API (aplikacje hostowane on-line nie mogą mieć przyznanego tego poziomu; mają go jedynie aplikacje zainstalowane lokalnie),
  • certified apps - najwyższy poziom uprawnień z dostępem do wszystkich API (aplikacje firm trzecich nie mogą mieć przyznanego tego poziomu; mają go jedynie aplikacje zainstalowane przez producenta systemu lub urządzenia).
Same aplikacje mogą być natomiast instalowane lokalnie lub hostowane online i uruchamiane z poziomu odpowiednio przygotowanej strony internetowej. Aplikacje hostowane (hosted apps) pobierane są tylko za pierwszym razem (lub gdy zostanie opublikowana ich nowa wersja), a następnie mogą być cache'owane przez system w celu szybszego ich uruchamiania. Aplikacje instalowane lokalnie (packaged apps) standardowo dostarczane są wraz z urządzeniem lub są dostępne do pobrania z oficjalnego sklepu KaiStore. Aby móc instalować aplikacje firm trzecich z wolnego obiegu (np. przygotowane na system B2G lub Firefox OS i opublikowane w nieistniejącym już Firefox Marketplace należy zastosować jedną z poniższych metod.
Code: Select all
Please Login or Register, to see this Content



WebIDE Sideload

Środowisko deweloperskie oprócz możliwości projektowania i programowania nowych aplikacji umożliwia również wgrywanie już tych istniejących. Można się w nie wyposażyć na dwa sposoby.

Jeśli pracujesz na jakiejś dystrybucji Linuksa (np. Ubuntu), możesz zainstalować oficjalny emulator KaiOSRT.
Code: Select all
Please Login or Register, to see this Content

Image

W pozostałych przypadkach możesz wykorzystać środowisko do programowania aplikacji Boot To Gecko wbudowane w przeglądarkę Firefox w wersji 52.9 ESR lub wcześniejszej albo w jej forka Pale Moon w wersji 28.6.1 lub wcześniejszej.
Code: Select all
Please Login or Register, to see this Content
Code: Select all
Please Login or Register, to see this Content


Ponadto potrzebne będzie jeszcze narzędzie adb (Android Debug Bridge) znane z dewelopowania smartfonów z Androidem.
Code: Select all
Please Login or Register, to see this Content
Code: Select all
Please Login or Register, to see this Content
Code: Select all
Please Login or Register, to see this Content


W obu przypadkach należy wykonać następujące operacje:
  1. Na telefonie wprowadź sekretny kod *#*#33284#*#* (*#*#debug#*#*) i sprawdź, czy w systemowym pasku zadań powyżej pojawiła się ikonka robaka (bug icon) świadcząca o aktywnym trybie Debug Mode.
  2. Połącz telefon z komputerem poprzez adb. Jeśli WebIDE go nie widzi, wpisz komendę:
    adb forward tcp:6000 localfilesystem:/data/local/debugger-socket command
  3. Ustaw WebIDE, aby łączył się z Remote Runtime na adresie localhost:6000.
  4. Wybierz folder z rozpakowanym archiwum żądanej aplikacji używając opcji Open packaged app w WebIDE.
  5. Uruchom instalację, klikając zielony trójkąt powyżej.
  6. Aplikacja powinna zostać otwarta i pojawić się w menu.
Code: Select all
Please Login or Register, to see this Content







OmniSD Jailbreak

Ten sposób, czerpiący swoją nazwą (jailbreaking, czyli dosłownie wyjście z więzienia) z ekosystemu firmy Apple, umożliwia instalowanie każdej aplikacji z pamięci telefonu lub z karty pamięci za pomocą narzędzia OmniSD. Jest on dość bezpieczny, jednak podczas jego wykonywania wszystkie dane na telefonie zostaną wyczyszczone!

Na wstępie upewnij się, że telefon posiada najnowsze dostępne firmware, a jeśli nie, to je do niego zaktualizuj. Do przeprowadzenia tego jailbreak'a potrzebujesz również środowiska deweloperskiego WebIDE opisanego już w pierwszej metodzie.
  1. Tak jak tam wprowadź telefon w Debug Mode i połącz go z WebIDE poprzez adb. Jeśli połączenie nie działa, spróbuj ponownie uruchomić telefon, uruchomić polecenie adb forward i połączyć się ponownie.
  2. W momencie wskazania żądanej aplikacji do wgrania pobierz, rozpakuj i wybierz folder z OmniSD.
    Code: Select all
    Please Login or Register, to see this Content
  3. Uruchom instalację, klikając zielony trójkąt w WebIDE.
  4. Jeśli instalacja się powiedzie, narzędzie uruchomi się na telefonie. Naciśnij wówczas # i potwierdź monit o uruchomienie uprzywilejowanego przywracania ustawień fabrycznych.
  5. Po zakończeniu resetowania w zakładce Urządzenie w Ustawieniach powinno pojawić się menu Developer.
  6. Na koniec powtórz tę procedurę od początku raz jeszcze. Po jej dwukrotnym wykonaniu OmniSD zostanie zainstalowany w telefonie i będzie gotowy do przyjmowania paczek aplikacji spoza sklepu.



OmniSD akceptuje paczki aplikacji w formacie *.zip. Archiwum musi zawierać następujące pliki:
  • application.zip z rzeczywistą aplikacją KaiOS / FFOS / B2G zgodną z WebIDE,
  • update.webapp - może być pusty, ale musi być obecny,
  • metadata.json w następującym formacie:
    Code: Select all
    Please Login or Register, to see this Content

    przy czym [your_app_id] należy zastąpić faktycznym identyfikatorem aplikacji (origin) zarejestrowanym w manifeście, a nazwę manifest.webapp należy zmienić, jeśli w archiwum application.zip jest on nazywany inaczej.
Poza tym struktura aplikacji w application.zip musi pasować do ogólnej struktury aplikacji KaiOS, Firefox OS i Boot To Gecko.
Code: Select all
Please Login or Register, to see this Content
Code: Select all
Please Login or Register, to see this Content
Code: Select all
Please Login or Register, to see this Content





Patchowanie /data

Jeśli posiadasz urządzenie, które nie łączy się z WebIDE po adb i nie możesz przez to użyć żadnej z powyższych metod, możesz skorzystać z metody uniwersalnej polegającej na odblokowywaniu ukrytego menu deweloperskiego i dodawaniu możliwości takiej łączności. Jest ona bezpieczna i nie psuje mechanizmu oficjalnych aktualizacji, ale za to dość skomplikowana.

Cała idea polega na zmodyfikowaniu za pomocą komputera partycji /data z danymi użytkownika. Najpierw trzeba więc ją zgrać z telefonu pamiętając, że waży co najmniej 1 GB (w przypadku Nokii 8110 4G nawet 2 GB). Następnie należy użyć edytora heksadecymalnego, aby spatchować ustawienia, czyli przełączyć jeden bit z 0 na 1 odpowiedzialny za wyświetlanie menu deweloperskiego (developer.menu.enabled) i zapisać tak zmodyfikowaną kopię obrazu partycji. Później należy zamontować sobie ją w systemie (najlepiej linuksowym) z uprawnieniami roota, aby uzyskać dostęp do układu plików i folderów, dorzucić do folderu /data/misc/adb/ klucz publiczny adb znajdujący się w lokalizacji /home/.android/adbkey w naszym systemie, a po wszystkim ją odmontować. Na końcu nie pozostaje już nic innego, jak tylko przeflashować telefon tak zmodyfikowanym w dwójnasób obrazem partycji.



Po wykonaniu tych wszystkich operacji trzeba jeszcze przeprowadzić instalację OmniSD (lub Wallace) oraz uruchomić uprzywilejowane przywracanie ustawień fabrycznych – dokładnie w taki sam sposób, jak ten opisany w metodzie z jailbreakiem. Jeżeli wszystko się uda, w ustawieniach urządzenia pojawi się menu Developer oraz będzie można instalować wszystkie aplikacje firm trzecich z wolnego obiegu.

Szczegółowe instrukcje przedstawiające wszystkie operacje krok po kroku opisane są w poniższym artykule.
Code: Select all
Please Login or Register, to see this Content


Image


Extreme Jailbreak

Ostatnia z metod jest najbardziej ryzykowna, ponieważ ingeruje w partycję systemową instalując na niej OmniSD, przez co psuje mechanizm oficjalnych aktualizacji! Korzystaj z niej tylko w ostateczności i na własną odpowiedzialność!

Wszystko, czego potrzebujesz, to zainstalowany tryb Recovery, który jest zdolny do flashowania paczek *.zip oraz pobraną paczkę OmniJB-Final.zip:
Code: Select all
Please Login or Register, to see this Content

Wszystko, co musisz zrobić, to umieścić tę paczkę na karcie pamięci i z poziomu Recovery wybrać opcję aktualizacji systemu za pomocą niej. Do prawidłowego działania zalecane jest jeszcze wyczyszczenie wszystkich danych z telefonu (tzn. data wipe). Po tych operacjach w ustawieniach urządzenia pojawi się menu Developer.
Code: Select all
Please Login or Register, to see this Content