Czy Windows dla smartfonów podzieli los Androida?

Nie chodzi mi o popularność systemu czy jego udział w rynku. Android od początku swego istnienia charakteryzuje się otwartością i możliwością instalowania aplikacji spoza sklepu, bezpośrednio z paczek źródłowych .apk.

Jest to broń obosieczna. Z jednej strony pozwala użytkownikowi na łatwe testowanie swoich aplikacji, ładowanie appek spoza sklepu Play czy choćby zainstalowanie niewspieranego już natywnie Flasha. Z drugiej strony, ładowanie aplikacji z niesprawdzonych źródeł naraża użytkownika na malware, wirusy czy ograniczoną stabilność oprogramowania oraz problem z automatycznymi aktualizacjami. W nowszych wersjach Androida „side-loadowanie” aplikacji jest standardowo wyłączone, ale można to zmienić jednym dotknięciem w ustawieniach urządzenia.

Andek, pomimo tego, że sklepowe aplikacje są dość dokładnie sprawdzane i na ogół bezpieczne, ma często opinię systemu podatnego na wirusy i ataki, właśnie ze względu na to, że użytkownicy często „piracą” płatne aplikacje wgrywając je bezpośrednio z paczek .apk ściągniętych z niezweryfikowanych źródeł. Moim zdaniem ta otwartość zielonego robota przynosi więcej szkody niż pożytku – skala piracenia jest bardzo duża, na czym traci samo Google, ale najbardziej producenci aplikacji. Mówi się, że na rynku, gdzie Android ma 70% udziałów, a iOS około 25%, zyski z płatnych aplikacji i zakupów wewnątrz nich rozkładają się zupełnie odwrotnie – 85% przychodu pochodzi z urządzeń z iOS, a tylko 15% z tych opartych o Androida. Kto na tym zyskuje? Głównie piraci, którzy nie muszą płacić za odpłatne oprogramowanie.

Unknown-Source-ICS

W tym momencie dochodzimy do Projeku Astoria, który został przedstawiony światu podczas tegorocznej konferencji Build. Astoria to zestaw narzędzi i funkcji systemu, pozwalających programiście na przenoszenie aplikacji z Androida na Windows 10 Mobile, przy minimalnych zmianach w kodzie. Więcej szczegółów na ten temat znajdziecie w moim wcześniejszym wpisie, ale dzisiaj chciałbym skoncentrować się na innym aspekcie tego zagadnienia. W telegraficznym skrócie – Windows 10 Mobile, obok środowiska uruchomieniowego WinRT, będzie miał androidowy podsystem (między innymi biblioteki Linuksa dla natywnych binarek skompilowanych z C++ i API Javy) z maszyną wirtualną, dzięki czemu będą mogły być odpalane aplikacje androidowe pisane w Javie i C++.

W teorii wszystko wygląda pięknie. Aplikacje dostępne będą tylko przez Windows Store i wrzucane przez ich twórców, którzy odpowiednio zmodyfikowali i ewentualnie przekompilowali kod androidowej wersji. W teorii wygląda to identyczne jak w przypadku samego Androida, czyli: model aplikacji oparty o oficjalny sklep, do którego trafiają tylko sprawdzone appki. Jak jest w praktyce – opisałem w pierwszym i drugim akapicie. Podobnie może stać się z Windows 10 Mobile. Co prawda system nie umożliwia ładowania aplikacji z plików, ale „deweloperskie odblokowanie” telefonu to kwestia kilku minut i kilku kliknięć. Pozostaje jeszcze problem pozyskania paczki .AppX czyli windowsowej paczki, w której znajduje się… paczka androidowa. W teorii paczki takie dostępne będą tylko dla twórców aplikacji, a w praktyce…? Warto pamiętać, że w pliku .apk znajduje się kod banalny do dekompilacji napisany w Javie, który bez problemu można wyodrębnić. Trochę większy problem jest z binarkami wynikowymi C++ (.so), ale tu też wsteczna rekompilacja do kodu C/C++ nie jest wielkim problemem dla zaawansowanych programistów z XDA – możliwa jest nawet przy pomocy darmowych narzędzi od… Google. No właśnie – XDA. Jestem prawie pewny, że na forach XDA pojawi się cały dział, w któym użytkownicy będą przepakowywać paczki .apk do .AppX i udostępniać je pozostałym użytkownikom.

Microsoft-could-run-Android-Apps

Możliwy efekt? Wątpliwej jakości aplikacje z potencjalnymi zagrożeniami wstrzyknięcia złośliwego kodu czy kodu umożliwiającego śledzenie naszych poczynań czy choćby zapisywania naszych zdjęć ze Snapchata. Co prawda aplikacje portowane z .apk mają być uruchamiane w specjalnych sandboksach z wyższym poziomem zabezpieczeń i izolacji, ale w przypadku wykonywania natywnego kodu z binarek doskonałe zabezpieczenia po prostu nie istnieją. Czy Project Astoria jest odpowiedzią na problem z aplikacjami na smartfony z Windowsem? Przekonamy się, ale mnie ten pomysł zupełnie nie przekonuje i w mojej opinii, może zrobić więcej szkody niż pożytku.