Introduction
ဒီတခါပြောပြမယ့် အကြောင်းအရာကတော့ "Nexus နဲ့ Pixel Device တွေအတွက် Google ကလစဉ်ပေးတဲ့ Android Security Patch တွေကို ဘယ်လို Update လုပ်မလဲ?" ဆိုတဲ့ အကြောင်းအရာပါ။ Kernel အပိုင်းအတွက် ဖြစ်ပါတယ်။ ဒီလိုမျိုး လစဉ်ပေးနေတဲ့ Security Patch တွေထဲမှာ အဓိကအားဖြင့် Bugs Fix & Security Update တွေ အဓိက ပါဝင်ပါတယ်။
ဒီတစ်ခေါက် Tutorial ကတော့ အသေးလေးပါပဲ။ အရင်တခါတုန်းက ရေးခဲ့တဲ့ Upstream Linux Kernel Update လုပ်တာ နဲ့ သဘောတရားချင်း တူတူပါပဲ။
Requirements
- Git
- Basic git commands
- Linux Computer
How To Update
သဘောတရားကို အရင်ရှင်းပြပေးပါမယ်။ ဥပမာ ကိုယ့်မှာ Nexus 5X အတွက် Build မယ့် Kernel source တခုရှိတယ်ပဲ ထားပါတော့။ ကိုယ့်ရဲ့ Kernel Repo ထဲကို အခုနောက်ဆုံးထွက်ထားတဲ့ November Android Security Patch Code တွေကို Merge ပြီးရင် ပုံမှန်အတိုင်း ပြန်ပြီး Kernel Compile လုပ်မှာ ဖြစ်ပါတယ်။
ကြိုပြောထားပါမယ် အခု Code တွေက Kernel ပိုင်းအတွက် ဖြစ်ပါတယ်။
- ပထမဦးဆုံး ကိုယ့်ဖုန်းအတွက် အဆင်သင့် Kernel source တခုရှိဖို့လိုပါတယ်။ အဲဒီအထဲကို Security Update Code တွေ Merge မှာဖြစ်ပါတယ်။ ထုံးစံအတိုင်း Nexus 5X နဲ့ပဲ ဥပမာပေး ပြောပြမှာ ဖြစ်ပါတယ်။
- ပြီးတဲ့နောက် Google Nexus နဲ့ Pixel Device တွေအတွက် Kernel Repo တွေ ရှိတဲ့နေရာ ကို သိရပါမယ်။ (Qualcomm Chipset သုံးထားတဲ့ Device တွေ ဖြစ်ရပါမယ်)
- အရင် ကိုယ့်ရဲ့ Local Kernel Source Repo ထဲ ဝင်ပြီး Terminal ကို ဖွင့်လိုက်ပါ။
- အောက်က Command လေးရိုက်ပေးပါ။ (git fetch လုပ်ပြီး tag အလိုက် merge မှာ ဖြစ်ပါတယ်)
Format:
git fetch --tags <repo_url> <branch_name>
Example: Branch Name ကို Google ကနောက်ဆုံး Release ထားတဲ့ Branch ကိုပဲ ရွေးပေးပါ။ ခုလောလောဆယ်ကတော့ bullhead-3.10-oreo-r6 ဖြစ်ပါတယ်။
git fetch --tags https://android.googlesource.com/kernel/msm/ android-msm-bullhead-3.10-oreo-r6
ပြီးရင် ဒီ Link ကိုဝင်ပါ။ "log" ဆိုတာကို တွေ့ရမှာ ဖြစ်ပါတယ်။ အဲဒီ "log" လေးကို နှိပ်လိုက်ပါ။ အပေါ်ဆုံး commit ကို ကြည့်လိုက်ရင် အစိမ်းရောင် tag လေးတခု တွေ့ရပါလိမ့်မယ်။ အခု နိုဝင်ဘာလအတွက် android-8.0.0_r25 ဆိုတာရှိပါတယ်။
အဲဒီ tag name လေးမှတ်ထားပါ။ git merge တဲ့နေရာမှာ ပြန်သုံးမှာပါ။
fetch ပြီးသွားရင် Terminal မှာ အောက်က command လေး ရိုက်ပေးပါ။
Format:
git merge <tag_name>
Example:
git merge android-8.0.0_r0.25
- ဥပမာ အနေနဲ့ ကျွန်တော် Merge ထားတဲ့ Commit တခုကို ပြထားပေးပါမယ်။ ဒီမှာ ကြည့်ကြည့်ပါ။
အဲဒီနောက်မှာတော့ Code တွေကို Auto Merging လုပ်သွားပါလိမ့်မယ်။
တကယ်လို့ Conflict ဖြစ်သွားခဲ့ရင်လည်း Terminal မှာ File Location နဲ့အတူ Message ပြပေးပါလိမ့်မယ်။
- နောက်ဆုံးအဆင့်ကတော့ Code တွေ Merge ပြီးရင် ပုံမှန်အတိုင်း Kernel Compilation လုပ်လို့ရပါပြီ။
- DONE
Join Us On