niedziela, 19 stycznia 2014

Rozbieramy Androida na czynniki pierwsze.

Może nie do końca będą to czynniki pierwsze ale na pewno przybliży to wam działanie Systemu. Osobiście uważam że jest to "niezbędne" kiedy chcemy się zabierać za modowanie czegokolwiek (z doświadczenia - zanim zacząłem bawić się w Androidzie modyfikowałem CS 1.6 i zrozumienie zasad gry  jak i działanie serwera w stopniu "mniej więcej" było konieczne aby zacząć go skryptować)

Przechodząc do sedna chciałem tylko podkreślić że to moje 'luźne obserwacje' - mało czytałem na ten temat. Chcę opisać te foldery które 'developer' mniej więcej musi kojarzyć. Najważniejsze to jak powiedziałem wcześniej - zrozumieć. ;)

Podobnie (podkreślam , nigdy nie stawiajmy znaku równości) jak w Linuxie , "centrum" telefonu to folder "/" . w nim mamy kilkanaście folderów które są potrzebne , mniej potrzebne , nie potrzebne oraz "nie rozumiem ich toku myślenia gdy na to wpadali".

/data
Przy instalacji nowego SOFT'a zalecany jest tzw 'full wipe'. w jego skład wchodzi format tego folderu więc na pewno musi być bardzo ważny. Folder ten kojarzmy z prywatnymi rzeczami użytkownika. Tam bowiem są zachowane informacje o ustawieniach aplikacji (/data/data/<nazwa_pakietu_aplikacji>/) czyli preferencje (folder /shared_pref) pliki potrzebne do działania (/files) biblioteki wymagane w aplikacji (jeśli takowe posiada - /lib) jak i bazy danych SQLite (folder /databases). Dodatkowo folder ten przetrzymuje same aplikacje które ściągamy ze Sklepu Play, instalujemy korzystając z polecenia ADB czy też przez zwykły instalator pakietów. Próżno szukać w tym folderze rozwiązania błędów spowodowanych w działaniu systemu aczkolwiek są i takie przykłady ;)

/sdcard 
No tego zbytnio tłumaczyć nie muszę. Folder który obsługuje nam kartę sd bądź pamięć wbudowaną. W Moim L5 folder ten to pamięć wewnętrzna , do zewnętrznej odwołamy się przez folder /external_sd bądź buszując w folderze /storage (jeśli takowy jest) gdzie są zapisane wszystkie informacje o Pamięci.

Co z pozostałymi folderami? Radziłbym nie tykać. Niektóe pliki odpowiadają za rozruch systemu i ich "edycja" może spowodować POWAŻNE problemy takie jak błąd przy bootowaniu systemu a nawet fastboot'a i recovery przez co możemy utracić "ostatnie możliwości naprawy systemu"

/system
Tak naprawdę podstawa modyfikowania Androida. Jak sama nazwa wskazuje to miejsce w którym cały system się znajduje  (nie bootloader , nie recovery , nie download i nie fastboot - one są "Gdzieś tam!") . Standardowo folder ten jest tylko do odczytu , wykonanie root'a powoduje odblokowanie możliwości zapisywania w tym folderze ( m.in dodanie nowych aplikacji systemowych , poleceń , zmiana bootanimacji, czcionek , dźwięków itp itd)

/system/app
Można się domyślić po samej nazwie że folder przechowuje aplikacje systemowe. Nie można ich usunąć za pomocą standardowego menedżera aplikacji , jedynie "odrobinie podrasowanego w zezwolenia SU" aczkolwiek nie zawsze jest to rozwiązanie "dobre" ponieważ czasem możemy usunąć "aplikację za dużo" przez co telefon złapie Bootloop'a bądź nie będzie działał jak należy. Warto też wspomnieć że aplikacje muszą mieć odpowiednie uprawnienia (rw-r--r-- na cyfry będzie to 644). W momencie kiedy o nich zapomnimy system potraktuje je tak jakby ich nie było.

/system/bin i /system/xbin
Dwa foldery w którym zapisane są polecenia Androida. Warto o nim wspomnieć bo w momencie instalacji BusyBox'a właśnie tam dodawane są nowe polecenia (tj md5 ,echo czy też najpotrzebniejsze "su" do obsługi root'a)

/system/framework
Folder wyglądu i jego "działanie". Brzmi to dziwnie ale już spieszę z wyjaśnieniem. W Tym folderze jest aplikacja framework-res.apk która zachowuje większość informacji o wyglądzie systemu , choć od wersji 2.3 dodatkowe informacje są w SystemUI.apk w folderze /system/app (te aplikacje są wymagane przy modyfikacji Aplikacji systemowych i themingu) pozostałe pliki w formacie jar to pliki obsługujące m.in takie rzeczy jak głosność telefonu (a konkretnie ilość stopni podgłaśniania - na xda-developers widziałem poradnik jak zmienić) więc jak ktoś ma chęci i czas na kombinowanie w tych plikach może baaaardzo oryginalnie zmodyfikować system ;)

/system/lib
Coś na wzór sterowników telefonu. Folder do którego trzeba podchodzić z wyjątkową uwagą. Osoby które mają zamiar portować romy często zakopują się w "libie" aby jak najwięcej rzeczy działało w nowych romie. Ani razu nie udało mi się przeportować rom na swoje telefony więc wiele nie wgłębiałem się w ten folder.

/system/media
Czcionki , melodyjki , bootanimacja , obrazeczki i inne pierdółki.

Miałem nadzieję że artykuł będzie "ciut dłuższy" ale na nadziejach skończyło się. :S Mam nadzieję ze teraz mniej więcej (tak jak ja) wiedzie Gdzie czego szukać przy zabawach z Androidem. ;)

4 komentarze:

  1. Witam Arturze.
    Serdecznie dziękuje za komemtarz. nie spodziewałem się że ktoś tu zagląda a co dopiero skomemtuje. Lubie dzielić się moją niezbyt wielką wiedzą na każdy temat , jaki potrafię. Komemtarze takie jak Twój uświadamiają mnie że "jest sens".
    dziękuje raz jeszcze.
    Pozdrawiam
    Adam.

    OdpowiedzUsuń
  2. Ja także gratuluje ci świetnego blogu. Prawda jest taka, że brakuje takich stron jak twoja gdzie można się czegoś nauczyć o androidzie i gdzie nie ma bałaganu. Liczę na to, że będziesz regularnie dzielił się z nami swoją wiedzą, a blog stanie się bardziej popularny. W google jesteś na trzeciej pozycji jeśli ktoś szuka "jak edytować rom".
    3maj się!!

    OdpowiedzUsuń
    Odpowiedzi
    1. W ciągu miesiąca dostałem już drugi taki komentarz. Nie spodziewałem się że ktoś tu przebywa. Jestem naprawdę "mile zaskoczony" i aż z ciekawości wpisałem w googlach "jak edytować rom" i na prawdę jest to 3cia pozycja.
      Dzięki za Miłe słowo!
      Pozdrawiam :)

      Usuń
  3. Bardzo rzetelnie napisane. Informacje przydatne dla każdego użytkownika systemu Android.

    OdpowiedzUsuń