poniedziałek, 11 listopada 2013

Jak zrootować Androida przy pomocy Fedory (oraz jak to cofnąć ;-) )

Ten post jest bardziej o Androidzie i usuwaniu pewnych "przeszkód" dających nad nim całkowitą władzę niz o Fedorze, ale pokazuje jak przy pomocy Fedory można łatwo "zrootować" dowolne urządzenie z Androidem.

UWAGA!!! Tzw. rootowanie urządzenia z Androidem zazwyczaj narusza warunki gwarancji. Należy rozważyć możliwe konsekwencje przed przystąpieniem do wykonania poniższej procedury.

Wszystkie podane poniżej polecenia sprawdziłem i wykonałem na posiadanym przeze mnie urzadzeniu. Są one bezpieczne dla tabletu jednak nie biorę żadnej odpowiedzialności za uszkodzenia systemu i/lub sprzętu, które wynikną z przeprowadzenia powyższej procedury.


W tym przypadku moja zasługa jest stosunkowo niewielka. Posłużyłem się świetnym i prostym opisem stworzonym przez PMS z polskiego forum tematycznego android.com.pl.
Dla osób chcących skorzystać z oryginału (lub wykonać rootowanie z systemu Kubuntu/Ubuntu/Xubuntu) podaję → bezpośredni link do postu.

Czynności wykonałem na tablecie Mistral traveler II (MI-T72A) z wgranym Androidem 4.0.3. Podawane przeze mnie nazwy opcji pochodzą z tego tabletu, ale w zależności od urządzenia i wersji systemu mogą się nieco różnić.
Do dzieła...

  1. Przede wszystkim należy przejść do ustawień (na tablecie lub telefonie) do "Opcji programistycznych" i włączyć "Debugowanie USB" oraz w części "Zabezpieczenia" włączyć "Nieznane źródła"
  2. W Fedorze włączamy terminal i instalujemy niezbędne narzędzia
    yum install android-tools
  3. Podłączamy tablet przez USB (nie montujemy) i sprawdzamy poleceniem lsusb czy urządzenie jest widoczne w systemie. W moim przypadku wygladało to tak:
    $ lsusb
    Bus 001 Device 003: ID 18d1:deed Google Inc.
    ID urządzenia w przypadku wszystkich tabletów MI-T72A powinien byc ten sam: 18d1:deed
  4. Następne polecenia będziemy wykonywać jako root na Fedorze:
    su -
    Hasło: podajemy hasło roota
  5. Z konsoli uruchamiamy edytor tekstu
    [root@localhost ~]# nano /etc/udev/rules.d/51-android.rules
    wpisujemy w jednej linii:
    SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", SYSFS{idProduct}=="deed", MODE="0666"
    i wychodzimy z zapisem.
  6. restartujemy udev oraz - na wszelki wypadek, bo na razie nie powinien działać - serwer ADB
    [root@localhost ~]# systemctl restart systemd-udevd.service
    [root@localhost ~]# adb kill-server
    [root@localhost ~]# adb start-server
    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
  7. Sprawdzamy czy ADB widzi nasze urządzenie
    [root@localhost ~]# adb devices
    List of devices attached
    13010710000000000022 device
    numer urządzenia może się różnić od widocznego powyżej.
  8. Przygotowania po stronie Fedory skończone - teraz będziemy z Fedory działać na Androidzie.
    Najpierw zachowamy ustawienia naszego tabletu, żeby móc je pod koniec procesu odtworzyć.
    Dla ustalenia uwagi zakładam, że pliki zapisujemy i rozpakowujemy do katalogu /katalog. Oczywiście można zapisać pliki w dowolnym innym katalogu i odpowiednio zmodyfikować dalsze polecenia.
    [root@localhost ~]# adb backup -f /katalog/settings.ab com.android.settings
    Now unlock your device and confirm the backup operation.
    W tym miejscu Fedora czeka na zezwolenie wykonania backupu. Pozwolenie takie dajemy odblokowując urządzenie z Androidem i wciskając widoczny na ekranie Andka przycisk "Utwórz kopię zapasową danych".
    Upewniamy się, że plik został utworzony:
    [root@localhost ~]# ls -l /katalog/settings.ab
    -rw-r----- 1 root root 796971 11-11 10:37 settings.ab
  9. Instalujemy plik special_ab.bin, który utworzy w tablecie plik /data/local.prop. Ściągamy go ze strony Android ICS "adb restore" directory traversal vulnerability. Plik jest załącznikiem do zamieszczonego pod tym adresem posta.
    [root@localhost ~]# adb restore /katalog/special_ab.bin
  10. Restartujemy tablet.


  11. W czasie restartu tabletu ze strony AndroidSU.com ściągamy plik Superuser-3.1.3-arm-signed.zip i rozpakowujemy.


  12. Wciąż jako root wykonujemy polecenia:
    [root@localhost ~]# adb remount
    [root@localhost ~]# adb push /katalog/system/bin/su /system/bin
    [root@localhost ~]# adb shell chmod 4755 /system/bin/su
    [root@localhost ~]# adb push /katalog/system/bin/su /system/xbin
    [root@localhost ~]# adb shell chmod 4755 /system/xbin/su
    [root@localhost ~]# adb install /katalog/system/app/Superuser.apk
    i pliki su i Superuser.apk znalazły się na tablecie


  13. Usuwamy z tabletu /data/local.prop (zmodyfikowany wcześniej przez special_ab.bin) oraz odtwarzamy nasze ustawienia zapisane wcześniej do settings.ab
    [root@localhost ~]# adb shell rm /data/local.prop
    [root@localhost ~]# adb restore /katalog/settings.ab


  14. Restartujemy ponownie tablet i możemy cieszyc się zrootowanym systemem Android :)


BARDZO WAŻNE - unroot urządzenia Niestety niektóre aplikacje wymagają, żeby nasz Android nie był zrootowany. W takim przypadku należy z naszego Androida zajrzeć na stronę sklepu Google i pobrać darmowy program "OTA rootkeeper". Umożliwia ot zarówno tymczasowe ukrycie plików "su" na naszym tablecie jak i ich całkowite wykasowanie (czyli usunięcie roota) na Androidzie. To ostatnie może być przydatne, gdy np. trzeba odnieść sprzęt do serwisu.


















niedziela, 9 czerwca 2013

[Fedora 19] Wyłączenie drpm (presto) w yum.

W 19 wersji Fedory sporym dla mnie zaskoczeniem był fakt, że wszystkie aktualizacje ściągały pliki różnicowe drpm mimo, że nie miałem włączonej wtyczki presto. Okazało się, że yum ma ją teraz włączona domyślnie.
Cóż, niezbyt mi to pasuje, bo o ile sieć internet mam szybki, bez ograniczeń ilościowych to komputer stary i przegenrowanie paczek z drpm do pełnych, instalacyjnych rpm trwa na nim wieczność.
Na szczęście jak to zwykle w Linuksie pozostawiona została prosta metoda wyłączenia tej właściwości. Wystarczy dopisać w pliku konfiguracyjnym /etc/yum.conf opcję deltarpm=0.
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=3
deltarpm=0

Po zapisaniu pliku wszystkie kolejne aktualizacje będą ściągały pełne rpm-y zamiast plików z deltą (drpm).


wtorek, 26 lutego 2013

Podniesienie wersji systemu (upgrade) Fedora z wersji 17 do 18 za pomocą FedUp


Najprostszym sposobem przejścia na Fedorę 18 jest z pewnością aktualizacja istniejącego systemu Fedora 17. Zachowujemy dzięki temu ustawienia zarówno użytkowników jak i ustawienia systemowe. W najgorszym wypadku wymaga to niewielkiej kosmetyki zamiast odtwarzania wszystkich ustawień w nowo zainstalowanym systemie.

Do wykonania upgrade'u Fedory służy narzędzie FedUp. Narzędzie to jest stale rozwijane dlatego należy wykorzystać jego najnowsza wersję, nawet jeśli trzeba ją zaktualizować do wersji z repozytorium testowego.

Dla "wzrokowców" i tych, którym nie chce się czytać całego posta umieściłem poniżej tego wpisu film, będący przyspieszony i nieco skróconym zapisem upgrade'u z wykorzystaniem sieci. Pominąłem nudne zapisy ściągania i instalacji pakietów, zaznaczając tylko i początek i koniec. Dzięki temu długotrwały proces skróciłem do kilku minut.


Zaczynamy od uruchomienia systemu Fedora 17, uruchomienia terminala i uzyskania uprawnień roota. Następnie przed podniesieniem wersji upewniamy się, że dokonaliśmy pełnej aktualizacji Fedory 17. Jeśli w trakcie aktualizacji okaże się, że instalowane było nowe jądro systemu (kernel) wówczas należy ponownie uruchomić system na najnowszym jądrze. Jeśli kernel nie był instalowany, wówczas możemy od razu po aktualizacji przejść do instalacji narzędzia.
su - Password: [podajemy hasło roota] yum update yum install fedup --enablerepo=updates-testing
Po takim przygotowaniu możemy przystąpić do właściwego podniesienia wersji systemu Fedora 17 do wersji Fedora 18. Upgrade możemy wykonać na trzy sposoby
  • z wykorzystaniem połączenia sieciowego - pakiety będą pobierane bezpośrednio z repozytoriów

  • z wykorzystaniem obrazu ISO płyty instalacyjnej DVD

  • z wykorzystaniem płyty DVD lub pendrive'a z nagranym pełnym obrazem instalacyjnym DVD

  • Nie można wykonać upgrade'u systemu z obrazów/płyt liveCD.


    Podniesienie wersji za pomocą sieci:
    fedup-cli --network 18 --debuglog fedup.log
    Jak widać jako parametry podajemy sposób pobrania pakietów, wersję, do której aktualizujemy system oraz plik, do którego zapisywany będzie przebieg aktualizacji. Plik ten może być pomocny w przypadku wystąpienia błędów podczas upgrade'u.

    Pozostałe dwa sposoby wywołujemy podobnie wskazując miejsce przechowywania pliku ISO z obrazem instalacyjnym
    fedup-cli --iso /katalog/Fedora-18-x86_64-DVD.iso --debuglog fedup.log

    albo wskazując miejsce, w którym zamontowana jest płyta DVD, np.:

    mount /dev/sr0 /mnt fedup-cli --device /mnt --debuglog fedup.log

    Proces aktualizacji systemu może trwać dość długo. Zazwyczaj kilkadziesiąt minut. Jest to zależne od źródła z jakiego podnosimy wersję systemu (sieć, iso, DVD), ilości zainstalowanych pakietów oraz parametrów technicznych komputera.

    Po pomyślnym zakończeniu wykonywania polecenia, należy wykonać restart systemu. W menu GRUB-a widoczna będzie nowa pozycja "System Upgrade (fedup)". Po uruchomieniu z tej opcji nastąpi proces aktualizacji systemu - zainstalowane zostaną pakiety Fedora 18 i usunięte pakiety Fedora 17. Jest to najdłużej trwający etap upgrade'u. Po zakonczeniu i kolejnym restarcie nasza nowa Fedora 18 jest niemal gotowa do użytku. Pozostaje wykonać jeszcze kilka czynności porządkowych:
    # usunięcie pozostałości pakietów F17 oraz zastąpienie ich pakietami
    F18 yum distribution-synchronization --disablepresto
    # usunięcie niepotrzebnych już jąder z wersji 17.
    yum remove kernel\*fc17\*
    Ostatnią czynnością jest sprawdzenie i ew aktualizacja parametrów jądra w pliku /etc/default/grub oraz wygenerowanie nowego menu GRUB. Z Fedory 17 w parametrach jądra w linii GRUB_CMDLINE_LINUX wyszukujemy (jeśli są) przestarzałe parametry takie jak LANG, KEYMAP, SYSFONT i zastępujemy je poleceniami vconsole: vconsole.lang, vconsole.keymap, vconsole.font. Pozostałe parametry można pozostawić bez zmian. W celu zapewnienia obsługi języka polskiego dokonałem w moim pliku następujących wpisów:
    GRUB_CMDLINE_LINUX="rd.md=0 rd.lvm=0 rd.dm=0 rd.luks=0 $([ -x /usr/sbin/rhcrashkernel-param ] && /usr/sbin/rhcrashkernel-param || :) vconsole.keymap=pl2 vconsole.font=latarcyrheb-sun16 vconsole.lang=pl_PL.UTF-8 quiet nouveau.modeset=0 rd.driver.blacklist=nouveau ipv6.disable=1 "
    Zapisujemy zmiany i tworzymy nowe menu
    grub2-mkconfig -o /boot/grub2/grub.cfg
    Teraz restart i już gotowe!

    Dla leniwych film :) Proszę oglądać w jakości 720p.



    poniedziałek, 18 lutego 2013

    Instalacja Fedory - zmniejszenie partycji Windows

    Większość kupowanych obecnie laptopów ma preinstalowany system Windows gotowy do użycia. Kiedy chcemy zainstalować dowolnego Linuksa okazuje się, że nie ma dla niego miejsca na dysku. Dobrze jeśli dysk fizyczny jest podzielony na dwa lub więcej dysków logicznych (partycji). Można wówczas przenieść dane i usunąć jeden z windowsowych dysków. A jeśli partycja jest tylko jedna? Albo jeśli nie chcemy przenosić dużej ilości danych na inne dyski? Co zrobić, żeby nie utracić posiadanego Windowsa i zrobić na dysku miejsce na instalację Linuksa? Zamieszczony poniżej film pokazuje jak w łatwy sposób można to wykonać.
    W tym celu należy udać się pod adres http://gparted.sourceforge.net/livecd.php i pobrać obraz LiveCD lub LiveUSB zawierający program Gparted. Pobrany plik należy nagrać na płytę lub pendrive zgodnie z instrukcjami na stronie i uruchomić komputer wskazując CD lub USB jako urządzenie, z którego ma wystartować system. Jeśli wszystko wykonaliśmy poprawnie, wówczas bez trudu możemy wykonać dalsze czynności tak jak pokazałem na filmie.

    Całą operacja uruchomienia systemu z LiveCD/LiveUSB oraz zmniejszenie partycji nawet mało wprawnym osobom zajmuje nie więcej niż kilka minut.

    UWAGA! Metoda jest sprawdzona i bezpieczna jednak na wszelki wypadek zawsze lepiej przed wykonaniem czynności zrobić kopię najważniejszych danych.

    Film najlepiej oglądać w jakości 720p.

    niedziela, 17 lutego 2013

    Instalacja Fedory 18 obok systemu Windows 7

    Zauważyłem, że sporo osób ma problemy z instalacją Fedory na tym samym dysku, na którym znajduje się Windows 7. Żeby się nie rozpisywać przygotowałem krótki, trwający nieco ponad 2 minuty film ukazujący instalację Fedory 18 na dysku, na którym wcześniej został zainstalowany Windows 7. Do instalacji wykorzystałem płytę liveCD Fedora 18 XFCE, ale instalacja przebiega tak samo z LiveCD z desktopami Gnome, KDE czy LXDE jak również podczas instalacji z płyty "netinst" lub kompletnej płyty DVD. Należy zwrócić uwagę, że Windows 7 tworzy oprócz partycji zadeklarowanych przez użytkownika własną, niewielką, 100MB partycję boot. W żadnym wypadku nie wolno jej kasować!


    piątek, 15 lutego 2013

    Brak polskich liter w konsoli tekstowej? Można temu zaradzić.

    No właśnie! Fedora 18 :) W terminalu pod X-windows wszystko jest OK a po przełączeniu się na konsolę tekstową (np. kombinacją Alt+Ctrl+F2) i zalogowaniu, zamiast "zażółć gęślą jaźń" taki oto obrazek:


    Możemy poprawić to krótkim poleceniem
    setfont latarcyrheb-sun16


    Lepiej, ale to będzie skuteczne tylko w danej sesji. Po wylogowaniu i restarcie systemu znowu będziemy mieć kwadraciki lub "krzaczki".Na stałe załatwimy sprawę wpisem w parametrach jądra w /boot/grub2/grub.cfg.Jako root edytujemy plik /etc/default/grub (nie należy edytować bezpośrednio /boot/grub2/grub.cfg). W linii GRUB_CMD_LINUX dopisujemy:
    GRUB_CMD_LINUX="... vconsole.lang=pl_PL.UTF-8 vconsole.font=latarcyrheb-sun16 vconsole.keymap=pl2 ..."
    Reszta parametrów bez zmian chyba, że w tej linii mieliście parametry KEYTABLE, SYSFONT - należy je usunąć jako, że są przestarzałe.Jeszcze tylko wprowadzenie zmian do /etc/grub2/grub.cfg
    grub2-mkconfig -o /etc/grub2/grub.cfg
    i po restarcie możemy pisać po polsku w konsoli oraz przeglądać manuale z polskimi znakami diakrytycznymi.

    niedziela, 27 stycznia 2013

    Zmiana domyślnych skrótów systemowych w XFCE

    Chciałem wykorzystać kombinację klawiszy Alt+F7 do włączania jednego z poleceń dostępnych w systemie. Okazało się jednak, że w XFCE ta kombinacja przypisana jest do polecenia przesuwania okien (move_window_key).
    Sprawa okazała się prosta. Skróŧ można łatwo usunąć z poziomu konsoli tekstowej wpisując polecenie
    xfconf-query --channel xfce4-keyboard-shortcuts --property "/xfwm4/custom/<Alt>F7" --reset --recursive
    #Polecenie równoważne
    xfconf-query -c xfce4-keyboard-shortcuts -p "/xfwm4/custom/<Alt>F7" -r -R

    Alternatywnie można skorzystać z aplikacji xfce4-settings-editor.

    sobota, 19 stycznia 2013

    Wyłączenie firewalld, włączenie iptables

    W Fedorze 18 domyślnie obsługę firewalla przejął firewalld. Nie jest on jeszcze ukończony, wiele funkcji nie działa (np. ustawienie domyślnej polityki łańcucha) a do tego wiele osób ma dopieszczone skrypty dla iptables i przeniesienie ich na firewalld wymaga sporo czasu i pracy.
    Nic dziwnego, ze w tej sytuacji wiele osób zechce wyłączyć firewalld i aktywować dawna obsługę firewalla poprzez serwis iptables. W tym celu należy wykonać polecenia
    systemctl stop firewalld.service
    systemctl disable firewalld.service

    Następnie po podstawieniu reguł do /etc/sysconfig/iptables
    systemctl enable iptables.service
    systemctl start iptables.service

    Wyłączenie IPv6 w Fedorze 18

    W celu wyłączenia IPv6 w Fedorze 18 (sposób działa również we wcześniejszej F17) należy wykonać poniższe polecenia
    echo net.ipv6.conf.all.disable_ipv6=1 >> /etc/sysctl.conf

    Następnie w pliku /etc/default/grub w parametrze GRUB_CMDLINE_LINUX dopisać na końcu ipv6.disable=1
    ...
    GRUB_CMDLINE_LINUX="<istniejące parametry - bez zmian> ipv6.disable=1"
    ...

    Jak sprawdzić? Po restarcie systemu po pierwsze polecenie ifconfig nie pokazuje już adresu inet6 (widoczny tylko inet dla IPv4), po drugie w poleceniu netstat -tupan w kolumnie 1. (Proto) nie będzie widać protokołów tcp6 i udp6.