Aktualizacja Androida

Na wstępie uprzedzam – to nie poradnik, to marudnik. Z uwagi na drastyczne sceny nie polecam lektury ludziom o słabych nerwach.

Zaczęło się od tego, że zaczęło ginąć miejsce w telefonie. Wyglądało to nieco podobnie jak w przypadku opisanym kiedyś – zajęta niby połowa miejsca, a niczego zainstalować nie sposób. Poza tym, niedawno ukazała się aktualizacja Androida, którą spróbowałem zainstalować. Dotychczas przebiegało to bezproblemowo z poziomu telefonu, tym razem jednak aktualizację pobrał, zaczął rozpakowywać i… zdechł w trakcie. Prawdopodobnie na skutek skończenia się miejsca w trakcie aktualizacji, bo przecież sprawdzenie ilości wolnego miejsca, ze stosownym zapasem przed rozpoczęciem aktualizacji to trudna sprawa jest.

Byłem pewien, że zdechł całkiem, ale nie – uruchomił się w zgrabnym trybie wyglądającym miło i przyjaźnie – zupełnie jak konsola Linuksa. Z miejsca mi się spodobało. Sprawdziłem integralność instalacji (failed), mimo ostrzeżeń uruchomiłem normalnie i… wszystko działało, tylko w starej wersji. Zwolniłem znacznie więcej miejsca i spróbowałem jeszcze parę razy. Z tym samym skutkiem, więc może jednak nie o miejsce chodziło? Zapomniałem o sprawie na parę tygodni.

System pozwala na aktualizację na kilka sposobów. Pierwszy, z którego korzystałem, to pobranie aktualizacji z sieci. Drugi, to umieszczenie aktualizacji na karcie SD i wybranie odpowiedniej opcji. Tyle, że tryby działania karty są dwa, mocno rozłączne i związane z formatowaniem karty. Pierwszy, to zwykła karta do przenoszenia zdjęć, drugi, to pamięć wewnętrzna. Oczywiście, żeby zrobić aktualizację Andoroida w tym trybie, karta musi być w trybie zwykłej karty SD, a ja miałem w trybie pamięci wewnętrznej. Zresztą, gwoździem do trumny dla tej opcji okazał się problem ze znalezieniem na stronie producenta aktualizacji do umieszczenia jej na karcie.

Z uwagi na problemy z integralnością instalacji i podejrzeniem uszkodzenia systemu plików, zacząłem rozważać pełen reinstall systemu, zamiast aktualizacji, która w ww. przypadku niekoniecznie musiała się udać. Co prawda na stronie producenta nie widziałem pełnych wersji do instalacji, ale stwierdziłem, że w sumie goły Android to nawet lepsza opcja może być. Zacząłem szukać wersji waniliowej albo jakiegoś CyanogenMod.

I tu zaczyna się horror show. Jakieś pliki wrzucone w jakieś miejsca, przez jakieś skracacze linków. Autor nieznany, treść niepodpisana cyfrowo. GPG jest przecież takie trudne, a malware’u dołożyć nie sposób. Do tego dziwne rozczłonkowanie i po modelach telefonów (pół biedy, jeśli oznaczenie jest dokładnie to samo), i po plikach. Totalne puzzle.

Dla pewności sprawdziłem jeszcze raz stronę producenta, czy aby nie przegapiłem gdzieś obrazu czy czegoś w ten deseń. No jednak nie. Postanowiłem zatem uznać wyższość Windows i skorzystać z aplikacji do aktualizacji dostarczanej przez producenta. Instalacja bez problemu, ale po podłączeniu telefonu system… zapragnął sterownika. W trakcie instalacji „się przerwało” i musiałem odczynić jakiś cyrk, żeby ponownie go wykrył. Oczywiście logów czy sensownych komunikatów brak.

Po wykryciu telefonu i instalacji sterowników pozostało już tylko wybranie modelu (nie żeby przed chwilą nie był wykryty, prawda?) i zaczął się pobierać system. A potem zaczął się wgrywać na telefon. Radosny komunikat na ekranie głosił, że gdyby rozłączył się w trakcie, to należy wyjąć z niego baterię i podłączyć ponownie. Chyba nie do końca umiem korzystać z Windows, bo za nic nie potrafiłem stwierdzić czy jest podłączony, czy nie. Możliwe, że nie dość uważnie wpatrywałem się w diodę dysku czy wsłuchiwałem w szum wentylatora. W każdym razie po kilkunastu minutach bez postępu stwierdziłem, że chyba nastąpiło rozłączenie. Oczywiście logów czy jasnego komunikatu na ekranie nie ma, bo po co?

Słusznie stwierdziłem! Wyjąłem baterię podłączyłem ponownie i… cały proces zaczął się od początku. No dobrze chociaż, że wykrył pobrany już plik. Tym razem flashowanie dotarło do szczęśliwego finału. Restart telefonu i… Zamiast wersji najnowszej, jest ta, którą miałem wcześniej. Ale system czysty, więc połączyłem się z siecią WiFi i tym razem aktualizacja Androida do naprawdę najnowszej dostępnej wersji przebiegła już bez problemu.

Cel został osiągnięty. W jedyne dwie godziny. Czy tam dwie i pół.

Jesienne tło na telefon

Wczoraj byłem na Cytadeli na spacerze z rodziną. Taka jesienna wycieczka. Nawet ładna jesień i trochę słońca. Stwierdziłem, że zrobię sobie tapetę na telefon. Coś prostego, jesiennego. Oczywiście telefonem.  Pierwotnie myślałem o drzewie na tle nieba, ale… fota/ujęcie może ładna, ale na tapetę się zdecydowanie nie nadaje – za jasne, napisy i ikony giną.

Postanowiłem zrobić coś, co zawsze wychodzi – jednolita mozaika, w tym przypadku liście. Oryginał wyglądał tak (wyświetla się pomniejszony, rozmiar jest oryginalny):

Liście jesień tapeta

Źródło: fot. własna

Tapeta całkiem przyjemna, ale… nadal za jasno i białych napisów nie widać. Ale efekt na zablokowanym ekranie był naprawdę fajny, więc postanowiłem pobawić się chwilę w Gimpie. Balans bieli plus lekka zabawa z kolorami (nie znalazłem prostego ściemnij) plus zabawa z kompresją (zupełnie nie oszczędzałem) i ostateczny efekt wygląda tak:

Jesień tapeta wersja ostateczna

Źródło: fot. własna

Daje się używać jako tapeta na telefonie, napisy widać, ale nadal mogło by być ciut ciemniejsze. Póki co zostaje w tej wersji.

Porządki z telefonem

Nie przepadam za smartfonami do dzwonienia. Zdecydowanie lepiej w tej roli sprawdza się wg mnie dumbphone typu Nokia 3110c (z dostępem do netu od biedy, zresztą). No ale koniec końców trzeba było po parunastu latach zmigrować – tu operatorzy powinni się zastanowić nad tworzeniem grafów powiązań userów i co oznacza naprawdę przeniesienie danego numeru do innej sieci. W każdym razie wylądowałem w Virgin Mobile. Przy tej okazji ściągawka wybranych krótkich kodów w Virgin Mobile. Z fajnych rzeczy – mają pakiety Freemium, które nieźle nadają się do nawigacji samochodowej (300MB internetu) i pozwalają bez stresu sprawdzić w praktyce zasięg, jakość rozmów itp. Znaczy przynajmniej kiedyś, nie wiem jak to wygląda teraz, jak jest obowiązek rejestracji kart SIM…

W każdym razie największym wyzwaniem okazała się synchronizacja kontaktów. Coś miałem w starej Nokii na telefonie, większość na karcie SIM, poza tym nowy telefon też zdążył dorobić się osobnej bazy kontaktów. Wpadłem na pomysł sczytania wszystkiego na komputer (od razu backup by się zrobił…), przejrzenia, posortowania i wczytania na telefon. Na szczęście nie bawiłem się w sczytywanie z Nokii 3110c, choć kiedyś to opisywałem, tylko stwierdziłem, że zrobię eksport do pliku, następnie przełożę kartę SIM i zrobię kolejny eksport. Trochę z dmuchaniem na zimne, bo jeszcze musiałem skopiować kontakty z telefonu na kartę, a pewności nie miałem, czy telefon realizuje to przez złączenie, czy nadpisanie.

Przy okazji – nie wiem kto projektował eksport kontaktów na kartę w Androidzie, ale… skopał. Znacznie prościej wysłać mailem, niż zapisywać na kartę, bo eksport następuje – jak informuje telefon – do uroczo intuicyjnej lokalizacji /mnt/sdcard/System/PIM/PIM00001.vcf. Nielinuksiarzy pewnie wystraszy już pewnie /mnt, a po przełożeniu karty do komputera można się lekko naszukać. No bo po co zrobić ten eksport w głównym katalogu karty SD… U mnie skończyło się kolejnym eksportem, żeby doczytać komunikat o lokalizacji.

Okazało się, że kontakty zarówno na Nokii, jak i Androidzie są łączone, ale… powtarzające się kontakty tworzą duplikaty. Nawet jeśli są identyczne. Bardzo user friendly. W każdym razie zerknąłem na strukturę pliku z eksportem z Androida (vCard) i stwierdziłem, że szybciej będzie mi zrobić skrypt, który usunie duplikaty, niż szukać czegoś, co się tym zajmie. I tak powstał vCardUniq.

Skrypt robi tylko jedną rzecz – czyta ze STDIN vcardy, eliminuje identyczne (muszą być obecne i zgadzać się wszystkie dane, by były identyczne) i wypluwa na STDOUT wynik, który można wczytać do telefonu. Może się komuś przyda…