Level 1: Foundations, Sura 1: Understanding Android
Boot process
Mchakato wa kuanza kwa android
Karibu katika ulimwengu wa matengenezo ya software za simu za Android. Kama fundi, inawezekana umezoea kusema, "Simu imekufa" au "Simu haijawaka." Kuanzia sasa, tunafuta kauli hiyo.
Kwenye ufundi wa software, simu haifi tu kwa ujumla. Mfumo wa Android umejengwa kwa ngazi (layers) na hatua (stages). Kazi yako kama fundi wa kisasa siyo kukisia na kufanya flashing bila mpangilio. Kazi yako ni kujiuliza: "Mchakato wa kuwaka (boot process) umekwama katika hatua gani?"
Sura hii itakupa msingi imara. Utajifunza simu inavyofanya kazi kwa ndani, kuanzia unavyobonyeza kitufe cha kuwasha, hadi pale menyu inapotokea. Hatutajadili masuala ya hardware kama kubadilisha IC au kadi ya mama (motherboard) hapa; hili ni darasa la software pekee.
Muundo wa android
Ili kutengeneza tatizo la software, lazima uelewe Android ni nini hasa. Android siyo programu moja kubwa; ni mfumo endeshi (Operating System) uliojengwa kwa ngazi tofauti zilizopangwa moja juu ya nyingine.
Fikiria jengo lenye ghorofa. Ghorofa ya chini ndiyo inayoshikilia jengo zima, na ghorofa ya juu ndiyo unayoiona na kuitumia kila siku. Kwenye Android, kila ngazi ina kazi yake, na ikiharibika, inaleta dalili tofauti.
Tazama mchoro huu unaoonyesha ngazi hizi, kuanzia juu (kwa mtumiaji) hadi chini kabisa (kwenye mashine):
┌────────────────────────────────────┐ │ USER (Mtumiaji) │ ├────────────────────────────────────┤ │ USER APPS (Programu za Mtumiaji) │ │ (WhatsApp, Facebook, n.k.) │ ├────────────────────────────────────┤ │ ANDROID FRAMEWORK │ │ (Camera, Location) │ ├────────────────────────────────────┤ │ SYSTEM SERVICES (Huduma za Mfumo) │ │ (Kazi za nyuma) │ ├────────────────────────────────────┤ │ HAL (Daraja la Vifaa) │ │ (Android kwenda vifaa) │ ├────────────────────────────────────┤ │ LINUX KERNEL (Moyo wa Mfumo) │ │ (Memory, CPU, drivers) │ ├────────────────────────────────────┤ │ BOOT / LOW-LEVEL │ │ (Inawasha simu) │ ├────────────────────────────────────┤ │ HARDWARE (Vifaa) │ │ (Bodi, betri, processor) │ └────────────────────────────────────┘
Mfumo huu unatofautiana kidogo kati ya simu na simu (k.m., Samsung inaweza kuwa na muundo wake wa ziada tofauti na Tecno), lakini dhana ya msingi inabaki palepale. Kitu muhimu kuelewa ni kwamba: Linux Kernel inaunganisha software na hardware, na Android Runtime (ART) (mfumo unaowezesha apps kusoma kodi) inakaa kwenye ngazi za juu kuhakikisha programu zinafanya kazi vizuri.
Nini kinaweza kuharibika
Kwa kila ngazi, kuna matatizo tofauti yanaweza kutokea:
App level (ngazi ya programu)
- Tatizo: App inajifunga yenyewe (App crash), au "Force close".
- Sababu: App haiendani na toleo la Android au ina makosa ya kiutendaji. Haizuii simu kuwaka.
System level (ngazi ya mfumo)
- Tatizo: System UI inasimama (System app crash), menu hazifunguki, au simu inakuwa nzito sana.
- Sababu: Faili muhimu za Android zimeharibika (system corruption).
Kernel / low-level level (ngazi ya kernel)
- Tatizo: Simu inashindwa kuwaka kabisa na inaonyesha kernel panic, au vifaa kama Wi-Fi vinakataa kufanya kazi.
- Sababu: Drivers za vifaa zimeharibika au kernel imepata hitilafu.
Boot level (ngazi ya boot)
- Tatizo: Simu inakwama kwenye logo ya kwanza kabisa, inajirudia kuwaka (Boot loop), au inaingia kwenye recovery moja kwa moja.
- Sababu: Bootloader (software ya mwanzo inayosaidia kuanzisha mfumo wa simu na kuamua hatua inayofuata ya boot) imeshindwa kupata mfumo salama wa kuendeleza.
Jifunze kutenganisha wapi tatizo limetokea, usikimbilie kusema tu "simu mbovu".
Mchakato wa kuanza kwa android
Hii ni sehemu muhimu sana. Kuanzia unapobonyeza kitufe cha Power mpaka unapoona menyu, simu inapitia hatua nyingi. Kama hatua moja ikishindwa, inayofuata haiwezi kuanza.
Mchoro huu unaonyesha mtiririko huo:
┌──────────────────────────────────┐
│ BOOT ROM / EARLY BOOT │
│ Ndani ya processor, haibadiliki │
└──────────────────────────────────┘
│
▼
┌──────────────────────────────────┐
│ BOOTLOADER │
│ Meneja: Android au Recovery │
└──────────────────────────────────┘
│
▼
┌──────────────────────────────────┐
│ BOOT / KERNEL │
│ Inaamsha kioo, touch, memory │
└──────────────────────────────────┘
│
▼
┌──────────────────────────────────┐
│ SYSTEM INITIALIZATION │
│ Android inajiandaa (Boot Anim.) │
└──────────────────────────────────┘
│
▼
┌──────────────────────────────────┐
│ ANDROID SERVICES │
│ Network, Sauti │
└──────────────────────────────────┘
│
▼
┌──────────────────────────────────┐
│ USER INTERFACE │
│ Home screen / Lock screen │
└──────────────────────────────────┘Boot ROM / hatua ya mwanzo
Boot ROM ni code ndogo sana iliyohifadhiwa moja kwa moja kwenye processor (chipset) kiwandani. Kazi yake ni moja tu: kuwasha umeme muhimu na kutafuta Bootloader. Huwezi kuifuta hata ukifanya makosa gani ya flashing. Bila hii, simu inakuwa kama tofali.
Hatua ya bootloader
Baada ya Boot ROM, inafuata Bootloader. Huyu ndiye msimamizi. Inaangalia je, umezikandamiza funguo zozote? (Kama Volume Up + Power kuingia Recovery). Kama hujabonyeza kitu, inatafuta faili kuu la Boot Image ili kuipeleka simu kwenye Android kawaida. Pia, tutaona baadaye dhana ya Locked Bootloader (Bootloader iliyofungwa) ambayo inazuia kuweka software isiyo rasmi kwenye simu.
Kernel / hatua ya boot
Ikiwa Bootloader inafanikiwa, inapakia Kernel (kupitia faili linaloitwa boot.img). Hapa ndipo simu inatambua vifaa vyake (hardware). Kama boot.img imeharibika, simu itakwama kwenye logo ya kwanza ya kampuni (k.m., logo ya Samsung isiyosogea).
Kuanza kwa android system
Hapa sasa mfumo mkuu unaanza kufanya kazi. Utaanza kuona Boot animation (ile logo inayocheza au kung'aa). Simu inasoma mafaili ya mfumo na kuandaa mazingira ya Apps. Kama simu inavuka Bootloader lakini inakwama hapa (Boot loop kwenye animation), ina maana tatizo lipo kwenye System software au User data, siyo kwenye Bootloader.
Boot kama dalili za diagnosis
Hatua inayoshindwa inakupa jibu la wapi pa kuanzia:
- Haina mwitikio kabisa (No visible response): Labda betri imeisha, hardware imeungua, au Boot ROM/Early boot imeshindwa (mara nyingi inaitwa 'dead boot').
- Logo inatokea na kuganda: Simu imefika hatua ya Bootloader, lakini inashindwa kupakia Kernel/Boot au System.
- Simu inaingia Fastboot mode: Bootloader iko salama, lakini imeshindwa kupata Android au imeamrishwa kusimama hapo.
- Boot animation inacheza bila mwisho: Bootloader na Kernel ziko salama, lakini mfumo (System) unashindwa kumalizia kujipanga.
Aina za boot failure
- No boot: Simu haiwaki kabisa. Shida inaweza kuwa Hardware au Early boot (k.m. kuharibika kwa preloader).
- Stuck at logo: Inaganda kwenye logo ya kwanza. Shida mara nyingi ni boot au hitilafu kubwa ya mfumo.
- Boot loop: Inajirudia kuwaka na kuzima. Shida inaweza kuwa System corruption au User data inagongana.
- Recovery boot: Simu inajipeleka yenyewe kwenye Recovery. Inaonyesha simu inatambua mfumo mkuu una shida, hivyo inakupa nafasi ya kujaribu kurekebisha.


Lesson marked as not complete
Umeona kosa kwenye somo hili? Tuambie