Logo pl.androidermagazine.com
Logo pl.androidermagazine.com

Z Google na telefon: życie aktualizacji zabezpieczeń Androida

Spisu treści:

Anonim

Na początku każdego miesiąca Google wydaje comiesięczny biuletyn zabezpieczeń Androida i zaczyna wysyłać aktualizacje na telefony Pixel. Wspaniale jest, że firma jest przejrzysta w kwestii tego, co się dzieje i jak to naprawia, nawet jeśli nie jesteś osobą, która lubi czytać kod źródłowy.

Przed opublikowaniem tych poprawek jest wiele pracy, a jeszcze zanim pojawi się na innych telefonach, wymaga jeszcze więcej pracy. Rzućmy okiem na to, jak powstaje kiełbasa i spróbuj lepiej zrozumieć, dlaczego oś czasu dla poprawek zabezpieczających jest nieco rozmyta.

Najpierw napraw Androida

Android to skomplikowana bestia. Istnieje ponad 5 milionów linii kodu, aby pomóc firmom produkującym produkty mobilne w uruchomieniu pełnej platformy aplikacji, w tym dostępu do Google Play i innych usług. To nie jest coś, co można używać takim, jakim jest; firmy te spędzają dużo czasu, próbując dostosować Androida do połączenia z innym oprogramowaniem, którego mogą używać do stworzenia ładnego, zhomogenizowanego systemu operacyjnego.

Google ma pewne zasady dotyczące tego, jak należy to zrobić, jeśli firma chce uwzględnić swoje usługi, ale producenci mają długą drogę do zbudowania produktu końcowego.

W tym kodzie pojawia się łatka bezpieczeństwa. Ktoś, czy to badacz bezpieczeństwa, czy po prostu przeciętny Joe, znajduje w telefonie wadę, która mogłaby zostać wykorzystana do zmniejszenia warstwy bezpieczeństwa urządzenia. Jeśli ta wada nie jest czymś stworzonym przez producenta OEM, zespół Androida ma za zadanie dowiedzieć się, co się dzieje, dlaczego tak się dzieje i jak to naprawić w jak najmniej zakłócający sposób.

Jeśli zostanie znaleziona luka w zabezpieczeniach, która stanowi część podstawowego kodu Androida, Google musi ją naprawić, a następnie wysłać do wszystkich innych.

Często wada nie jest czymś, co Google może naprawić. Podobnie jak my Google nie ma dostępu do oprogramowania układowego firm, które produkują sprzęt taki jak Qualcomm lub LG. Jeśli usterka wymaga naprawy na poziomie sprzętowym, istnieje duża szansa, że ​​firma, która dostarczy niektóre używane komponenty, będzie musiała najpierw wprowadzić zmiany. W takim przypadku zmiany są przekazywane do Google, aby mógł zobaczyć, co należy zrobić, aby uwzględnić je w kodzie Androida.

Zmiany te wymagają czasu, zwłaszcza jeśli zaangażowany jest dostawca sprzętu. Istnieje łatanie i testowanie oraz więcej łatek i więcej testów dla każdej usterki opisanej w łatce. Gdy Google upewni się, że ma poprawną lukę w zabezpieczeniach, każda firma produkująca telefony z Androidem uzyskuje wczesny dostęp (co najmniej 30 dni przed upublicznieniem poprawki przez Google), aby mogły zacząć pracę.

Faza druga

To tutaj wykonuje się większość pracy. Google może pisać i obsługiwać samego Androida, ale większość urządzeń, które z niego korzystają, nie jest produkowana przez Google. Te, które są - telefony Pixel - są również tutaj uwzględnione. Sprzęt Google jest klientem Androida w taki sam sposób, jak Samsung czy Motorola.

Samsung i LG z branży mobilnej, które wprowadzają wiele zmian w Androidzie, mają dużo pracy, gdy nadszedł czas, aby połączyć łatkę.

Wszystkie te firmy mogą zająć się kilkoma rzeczami, gdy tylko otrzymają nowy kod od Google. Pierwszą - i być może najważniejszą - częścią jest określenie, która część łatki nie jest potrzebna. I w każdej łatce jest wiele rzeczy, które jedna firma może swobodnie ignorować.

Na przykład, jeśli NVIDIA musiała wprowadzić zmiany, które zostały zepchnięte z powrotem na Androida, żaden telefon Samsung nie będzie potrzebował tej części poprawki. Bardziej ekstremalnym przykładem mogą być zmiany wprowadzone przez BlackBerry lub Samsunga, które już rozwiązały problem w inny sposób. Dowiedzenie się, co jest potrzebne, a co nie, może być czasochłonne, zwłaszcza gdy firma wprowadza duże zmiany w niektórych częściach systemu operacyjnego. Google zbadało zarzuty, że producenci OEM wysyłają łatki zabezpieczające, które nie dotyczą niektórych rzeczy, które powinni mieć, i właśnie to znalazł.

Nie każda część poprawki jest potrzebna w każdym telefonie.

Po wykonaniu tej czynności resztę poprawki należy scalić w niestandardowy kod systemu Android dostawcy, a następnie zbudować i przetestować. „Zbudowana i przetestowana” część może stać się dużym bólem głowy, jeśli poprawki nie można po prostu zastosować, ponieważ dotyka ona plików używanych przez niestandardowy kod lub od których zależy. Też często to widzimy. Ilekroć łata się Bluetooth lub Wi-Fi, niezależnie od tego, czy chodzi o sprzęt, czy oprogramowanie, będzie dotykać kodu, który został zmieniony przez dużego producenta OEM, który tworzy bardziej wyszukany system operacyjny niż „zapasowy” Android. Istnieje wiele części Androida, które może dotknąć producent OEM.

Gdy inżynierowie Samsunga lub innego dostawcy uzyskają system operacyjny, który uruchamia się i uruchamia, należy go przetestować. I przetestowałem jeszcze trochę. Testy mogą obejmować zaangażowanie inżynierów sieciowych od różnych operatorów, a także ponowne włączenie Google i / lub producenta dowolnego komponentu do miksu. To musi być prawda. Łata wysłana do tysięcy telefonów może potencjalnie zaszkodzić sieci operatora, zużyć ograniczenia danych każdego użytkownika, a nawet spowodować, że sam telefon przestanie działać. Cokolwiek tego rodzaju jest niedopuszczalne i musi zostać znalezione, zanim opuści budynek.

Wdrażanie

Firma, która sprawiła, że ​​Twój telefon, Google i być może Twój operator współpracują ze sobą, aby przygotować masową aktualizację bezprzewodową. Jeśli kiedykolwiek widziałeś adres URL użyty do pobrania poprawki, zauważysz, że ma on adres „Google”. To dlatego, że silnik w twoim telefonie, który może pobrać i przetworzyć aktualizację OTA, szuka w bardzo konkretnym miejscu łatki. Musi wiedzieć, że poprawka jest w 100% poprawna i podpisana odpowiednim podpisem cyfrowym. Sprawdzi to ponownie, gdy łatka zostanie w pełni pobrana.

Jeśli kupiłeś telefon od operatora, ma on duży wkład przez cały okres użytkowania łatki.

Twój przewoźnik może mieć pewne zasady dotyczące tego, kiedy i kto może pobrać łatkę, gdy jest ona dostępna, jeśli jej nazwa znajduje się w telefonie. Firmy takie jak Samsung czy LG produkują niestandardowe wersje swoich najpopularniejszych modeli dla każdego operatora, co ma duży wkład w to, jak się to robi. Powinien, ponieważ jego nazwa znajduje się na pudełku. Może to być frustrujące, ale ma sens. Jeśli wszyscy w Pittsburghu (na przykład), którzy mają telefon Samsung Galaxy S8, spróbują pobrać łatę 800 MB w tym samym czasie, sieć się rozpadnie. Twój operator zrobi wszystko, co konieczne, aby utrzymać sieć przy życiu.

Google również wstrzymuje wdrażanie OTA. Określona liczba użytkowników otrzyma łatkę, a po określonym czasie Google ustala, czy ci użytkownicy mieli dobre lub złe doświadczenia. Jeśli wszystko pójdzie dobrze, większa liczba użytkowników otrzyma łatkę w drugiej fali. To się powtarza kilka razy, zanim zostaną otwarte wały przeciwpowodziowe. Użytkownicy, którzy nie chcą czekać na ostatnie testy, mogą ręcznie pobrać poprawkę za pomocą ustawień urządzenia.

Kiedy nadejdzie Twoja kolej i dasz telefonowi zielone światło, aby pobrać ten plik, zostanie on pobrany, a następnie telefon przejmie kontrolę.

W Twoich rękach

Łata jest pobierana do telefonu i sprawdzana jako odpowiednia. Starsze wersje Androida mają dedykowaną pamięć podręczną, która jest częścią pamięci, która została wydzielona, ​​aby zapewnić np. Plik aktualizacji; rzeczy, które są tylko tymczasowo przez telefon. Telefony korzystające z funkcji bezproblemowej aktualizacji Androida (które powinny być sprzedawane na większości telefonów z Androidem Nougat) „wsuwają” pobrane pliki do tak zwanych automatów. W obu przypadkach musisz mieć wystarczająco dużo miejsca, aby plik OTA został wyodrębniony i pracował nad nim.

Telefony ze starszymi wersjami Androida mogą mieć dedykowaną partycję pamięci podręcznej używaną podczas aktualizacji. Rozmiar musi być 2, 5 razy większy niż pobrany plik OTA.

Oprogramowanie do aktualizacji OTA w twoim telefonie jest częścią Androida. Skrypt w pobranym pliku informuje go, jak przejść do wyszukiwania plików, które wymagają zmiany, i kopiuje te pliki do pamięci podręcznej urządzenia lub do wyznaczonego miejsca. Następnie porównuje oryginalne pliki w telefonie z plikami, które zostały pobrane. Niektóre mogą być prostą zamianą - pobierz plik X z telefonu i usuń go, a następnie zastąp go plikiem X z pobranego pliku OTA. Inne nie są pełnym plikiem i zawierają tylko niewielkie określone zmiany. Oprogramowanie do aktualizacji i instalatora w telefonie wie, co robić tutaj.

Wiele plików w Androidzie, zwłaszcza aplikacje i biblioteki oprogramowania, to naprawdę dużo plików skompresowanych do specjalnego archiwum. Możesz wziąć plik APK i zmienić go na plik.zip i otworzyć go w systemie Windows. Czasami archiwa te muszą zostać otwarte, a ich części należy zamienić na nowe wersje pobrane dla poprawki bezpieczeństwa. Dlatego potrzebujesz tej przestrzeni roboczej na partycji pamięci podręcznej - tam rozpakowywane są te pliki.

Wiele plików w telefonie to tak naprawdę archiwa zawierające wiele plików - w tym inne archiwa plików. To skomplikowane.

Po przetworzeniu każdego pliku w aktualizacji OTA i wprowadzeniu zmian w kopiach plików systemowych nadszedł czas, aby uruchomić system z nimi. Dzieje się tak, gdy telefon prosi o ponowne uruchomienie po przetworzeniu otrzymanego OTA, ponieważ często istnieją pliki, które należy załatać, ale są używane podczas działania telefonu. Możesz zobaczyć ekran pokazujący, że podczas restartu trwają prace lub możesz po prostu zobaczyć logo Androida. W obu przypadkach pliki są sprawdzane, przenoszone na miejsce i sprawdzane ponownie. Stare pliki są przechowywane w pamięci podręcznej na wypadek, gdyby wystąpił problem i nie można uruchomić z nowymi plikami.

Pozostało ci tylko upewnić się, że wszystko jest tak, jak lubisz, a w ustawieniach telefonu masz nowszą datę wersji poprawki bezpieczeństwa. Teraz jesteś gotowy na następną aktualizację!