Oto główny powód, dlaczego producenci telefonów mają kłopot z robieniem aktualizacji androida na nowszą wersję
27.03.2021 | aktual.: 28.03.2021 10:49
W tym wpisie odpowiem na pytanie, dlaczego różne telefony dostają czasem aż trzy aktualizacje do nowszej wersji androida, a inne czasem żadnej takiej aktualizacji nie dostaną.
Są dwa takie powody. Pierwszy - najbardziej oczywisty - to niechęć producenta. Niektóre telefony mają celowo być gorsze od innych, dlatego nie dostają pewnych funkcjonalności. Dodanie USB‑OTG do telefonu kosztuje bardzo mało, wystarczy odpowiedni MUIC (Micro-USB IC pełniący funkcję "switcha"), kontroler USB jest wewnątrz snapdragona. Dodanie czujnika jasności też nie kosztuje dużo biorąc pod uwagę, to że Samsung z pewnością składając zamówienia zamawia bardzo dużo tych podzespołów, dzięki czemu koszt jednego takiego układu jest dużo mniejszy. W przypadku androida możemy sprawdzić czy na linuksie, na którym działa telefon jest w stanie uruchomić się nowsza wersja na dwa sposoby. Możemy przeczytać jaka jest minimalna wersja wymagana do uruchomienia androida, albo spojrzeć na inne telefony z tą wersją. Na przykład Samsung Grand Prime działa na wersji 3.10.xx, wyszedł na rynek z androidem 4.4, dostał aktualizacje do lolipopa. Samsung A5 2016 też działa na 3.10.xx, jest o niebo lepszy pod względem wykonania i parametrów, wyszedł z androidem 5, dostał aktualizację do 6 i 7. Nie widzę powodu, aby Prime miałby nie dostać nowszej wersji. A5 dostał na dodatek nowszą nakładkę, zamiast TouchWiz ma Samsung Experience.
W tym momencie oskarżyłem samsunga, ale to nie zawsze musi być zła wola. Może ta nowsza nakładka nie działa na androidzie 5 ponieważ brakuje w nim jakiś ważnych API? Aby odpowiedzieć obiektywnie na to pytanie należy sprawdzić manifest CAF do tego snapdragona, i zobaczyć na którą wersję androida jest "przygotowany". Aby działał telefon nie wystaczą sam linux i android, potrzebne są "vendor blobs". Możliwe, że te programy mogą nie działać dobrze na nowszych wersjach. Domyślam się, że o to chodzi.
Dlaczego wersja linuksa jest tutaj ważna?
Ponieważ nowsze wersje mają dodatkowe syscalle, takie jak seccomp i getrandom, które są kluczowe. Teoretycznie producent, albo maintainers androidowego kernela, bądź tego z code aurora, mogliby go backportować, tak jak robią to hobbyści z xda forum.
Przykład Sony E1 pokazuje, że teoretycznie Sony mógłby użyć nowszej wersji niż kitkat. Problem tkwił, w tym że używali swojej (prywatnie utrzymywanej) kopii msm‑3.4.xx, chociaż mogli użyć do tego urządzenia msm‑3.10.xx (a w związku z tym swobodnie przejść nawet na androida nougat tak jak z a5 2016).
Screenshot ze strony https://wiki.codeaurora.org/xwiki/bin/QAEP/release.
W przypadku a5 2016 telefon nie ma snapdragona, jest tylko exynosa (SoC Samsunga). Może to nie było "obciążeniem" ani przeciwwskazaniem do wprowadzenia nowszej wersji.