„Must have” aplikacje na telefon z Androidem

Android robot - logo

Źródło: https://en.wikipedia.org/wiki/Android_(operating_system)

Okazuje się, że trochę z Androida jednak na telefonie korzystam. Do tej pory znalazłem dwie sprytne aplikacje, które bardzo ułatwiają mi życie.

Pierwsza z nich to Screebl Lite.

Zadaniem aplikacji jest blokowania funkcji wygaszania ekranu, jeśli wygląda na to, że korzystamy z urządzenia, czyli trzymamy je w ręku. Używanie wykrywane jest po nachyleniu – jeśli odłożymy telefon na płask, to się wygasi normalnie, ale jeśli będzie pod kątem, to się nie wygasi. W połączeniu z agresywnym ustawieniem wygaszania (zawsze takie miałem), pozwala oszczędzać baterię, ale z drugiej strony nie przeszkadza w pracy.

Przyznaję, że na początku po poleceniu przez D. (thx!) i instalacji Screebl Lite nie zauważyłem różnicy i stwierdziłem, że w sumie nieprzydatny bajer, ale po namyśle i dłuższym korzystaniu – wręcz przeciwnie, znacznie wygodniej jest z tą appką. Doceniłem różnicę, gdy wyłączyłem aplikację… A wyłączyłem, bo niezupełnie dobrze współgra z Yanosikiem – podczas jazdy przy aktywnym Screebl, ekran cały czas pozostał niewygaszony.

Druga sprytna aplikacja to Wi-Fi Matic.

Zasada działania jest prosta: aplikacja zapamiętuje lokalizacje, w których włączamy Wi-Fi, a następnie wyłącza Wi-Fi po ich opuszczeniu, a włącza po powrocie do tych lokalizacji. Proste i skuteczne, zwalnia z konieczności ręcznej aktywacji Wi-Fi w telefonie i pozwala oszczędzać pakiet danych u operatora GSM. Okres, co ile ma być sprawdzana lokalizacja można zdefiniować w aplikacji, a określanie lokalizacji nie korzysta z GPS, tylko jest zrobione sprytnie, w oparciu o stacje bazowe GSM.

Z Wi-Fi Matic korzystam raptem od paru dni, ale jestem bardzo zadowolony. Przy okazji, aplikacja posiada wolny kod źródłowy dostępny na Githubie i jest dostępna w repozytoriach F-Droid.

Bonusowo: F-Droid.

F-droid, czyli manager wolnoźródłowych i wolnych (także dodatki i dane) appek dla Androida. Pozwala na łatwe wyszukiwanie i instalowanie aplikacji z opisywanego kiedyś repozytorium f-droid.org. Spodoba się pewnie głównie miłośnikom Linuksa, ale i tak warto się zainteresować – trochę ciekawych aplikacji, wszystkie appli dostępne bez reklam i opłat, z wyszczególnionymi zagrożeniami prywatności.

Powtarzalne budowanie pakietów w Debianie

Dyskusji nt. zgodności pakietów binarnych z dostarczanymi źródłami teraz nie znajdę (podrzucenie mile widziane), ale Półtora roku temu pisałem o braku weryfikacji, czy kod źródłowy jest zgodny z wersją binarną. Pamiętam, że w różnych dystrybucjach wyglądało to różnie, a chyba w żadnej dobrze. IIRC na testowanym pakiecie różnice w Debianie były minimalne, bo dotyczyły tylko timestampu ale… były. W praktyce dla użytkownika końcowego oznacza to brak możliwości łatwego zweryfikowania, czy dostarczony (bardziej: deklarowany) kod źródłowy odpowiada dostarczonej wersji binarnej pakietu[1].

Implikacje są oczywiste: możemy uruchamiać co innego, niż sądzimy, że uruchamiamy. Z jednej strony może dojść do naruszenia licencji (zwł. GPL) i użytkownik może mieć problemy z modyfikacją oprogramowania, z drugiej, bardziej praktycznej: mogą pojawić się problemy z bezpieczeństwem. Nie tylko developer może dołożyć coś od siebie (developerom ufamy),. Także atakujący może w wyniku włamania przejąć klucze jakiegoś developera i wprowadzić zmodyfikowaną wersję binarną pakietu do repozytorium.

Wiadomo, że dokładna i systematyczna kontrola podstawą zaufania, w związku z tym w Debianie ogłoszono projekt Reproducible Builds. Ma on na celu dostarczenie narzędzi i środowisk do kontroli. Oraz poprawę pakietów tak, aby można było w prosty sposób sprawdzić zgodność pakietu binarnego ze źródłem. Czyli każdy będzie mógł łatwo odpowiedzieć na pytanie: czy dany pakiet powstał z deklarowanego źródła?

Projekt dotyczy raczej przyszłych wersji Debiana, ale na pewno jest krokiem w kierunku zwiększenia wolności użytkowników i bezpieczeństwa.

Wg danych projektu Reproducible Builds w chwili obecnej udało się potwierdzić powtarzalność budowy ponad 83% pakietów z repozytorium main dla Debiana unstable.

[1] Nie miejsce na dyskusję nad wyższością dystrybucji pakietów w źródłach nad wersją binarną i odwrotnie.

Czy to naprawdę kod źródłowy tego programu?

Polecam cały artykuł Is that really the source code for this software? a dla niecierpliwych lub niespikających krótkie streszczenie. Wiele wolnego oprogramowania przychodzi w postaci binarnej. Dołączony jest do niej kod źródłowy w teorii odpowiadający dokładnie temu, z którego zostały zbudowane wersje binarne. Zagadnienie jest ważne zarówno z punktu widzenia wolności oprogramowania, jak i bezpieczeństwa.

Autor ww. artykułu postanowił sprawdzić, jak to wygląda w praktyce dla popularnych dystrybucji Linuksa (Debian, Fedora, OpenSUSE). Na przykładzie tak prostego oprogramowania jak tar. Wykorzystał do tego celu minimalne instalacje systemu, korzystał ze źródeł dostarczonych w dystrybucjach i metod budowania zalecanych przez dystrybucje.

Wyniki są dość zaskakujące: ani razu nie udało mu się uzyskać dokładnej (bit w bit) kopii tego prostego przecież pakietu wykorzystując kod źródłowy.

W przypadku Debiana różnice były minimalne (data i id buildu w plikach wykonywalnych), w przypadku OpenSUSE było gorzej. Powstałe pliki binarne były 5 razy większe od oryginału. Po wykonaniu strip na wersjach binarnych sytuacja wyglądała już podobnie jak w przypadku Debiana. Najgorzej wypadła Fedora – nie tylko różnic było najwięcej, ale autorowi artykułu nie udało się ustalić przyczyn wszystkich rozbieżności . Jak pisze „niełatwo stwierdzić, czy samodzielny build ze źródeł będzie funkcjonował identycznie, jak opublikowana wersja binarna z dystrybucji”.

W przypadku skomplikowanych pakietów i projektów luźniej podchodzących do kwestii wolności oprogramowania, niż dystrybucje Linuksowe (np. firmware routerów z wykorzystaniem wolnego oprogramowania – często zamieszczają kernel, ale zwykle jest to wersja waniliowa wzięta na żywca z kernel.org…) różnice będą jeszcze większe. Gdyby ktoś znalazł komentarz RMS do sprawy, proszę o linka – bardzo jestem ciekaw, co ma do powiedzenia w tej sprawie.

UPDATE: Problem czy to naprawdę kod źródłowy danej binarki został dostrzeżony i doceniony, idea reproducible builds stała się popularna.