ကြော်ငြာပိတ်ပါ။

Memory error များသည် software development တွင် အဆိုးရွားဆုံးဖြစ်လေ့ရှိသောကြောင့် မကြာသေးမီက Google အတွက် Memory လုံခြုံရေးသည် ထိပ်တန်းဦးစားပေးဖြစ်သည်။ တကယ်တော့၊ ဤနယ်ပယ်ရှိ အားနည်းချက်များသည် အရေးကြီးသော အားနည်းချက်များ၏ အများစုအတွက် တာဝန်ရှိပါသည်။ AndroidGoogle သည် မူလကုဒ်အသစ်၏ သိသာထင်ရှားသောအပိုင်းတစ်ခုကို ဖန်တီးခဲ့သည့် မနှစ်ကအထိ AndroidC/C++ အစား Rust ပရိုဂရမ်းမင်းဘာသာစကားတွင်။ ဆော့ဖ်ဝဲကုမ္ပဏီကြီးသည် ၎င်း၏စနစ်ရှိ မှတ်ဉာဏ်ချို့ယွင်းချက်များကို လျော့ပါးသက်သာစေရန် အခြားနည်းလမ်းများကို ပံ့ပိုးကူညီရန် လုပ်ဆောင်နေပြီး ၎င်းထဲမှတစ်ခုမှာ memory marking ဟုခေါ်သည်။ စနစ်ဖြင့် ပံ့ပိုးထားသော စက်များပေါ်တွင် Android 14 ဤအင်္ဂါရပ်ကို ပြောင်းနိုင်သည့် အဆင့်မြင့်မှတ်ဉာဏ်ကာကွယ်မှုဟုခေါ်သော ဆက်တင်အသစ်တစ်ခု ရှိနိုင်ပါသည်။

Memory Tagging Extension (MTE) သည် အသေးစိတ်ဖော်ပြသော Arm v9 ဗိသုကာကိုအခြေခံ၍ ပရိုဆက်ဆာများ၏မဖြစ်မနေ hardware အင်္ဂါရပ်တစ်ခုဖြစ်သည်။ informace မှတ်ဉာဏ်ပျက်စီးခြင်းအကြောင်းနှင့် မှတ်ဉာဏ်ဘေးကင်းရေးဆိုင်ရာ အမှားအယွင်းများကို ကာကွယ်ပေးသည်။ Google က ရှင်းပြထားသည့်အတိုင်း- “မြင့်မားသောအဆင့်တွင်၊ MTE သည် မမ်မိုရီခွဲဝေမှု/ခွဲဝေချထားမှုတစ်ခုစီကို အပိုမက်တာဒေတာဖြင့် တဂ်ထားသည်။ အမှတ်အသားတစ်ခုကို မှတ်ဉာဏ်တည်နေရာတစ်ခုသို့ သတ်မှတ်ပေးသည်၊ ထို့နောက် ထိုမှတ်ဉာဏ်တည်နေရာကို ရည်ညွှန်းသော ညွှန်ပြချက်များနှင့် ဆက်စပ်နိုင်သည်။ runtime တွင်၊ ပရိုဆက်ဆာသည် pointer နှင့် metadata တဂ်များကိုဖတ်ပြီးသိမ်းဆည်းလိုက်တိုင်း ကိုက်ညီမှုရှိမရှိစစ်ဆေးပါသည်။"

Google သည် software suite တစ်ခုလုံးတွင် MTE ကို ပံ့ပိုးရန် လုပ်ဆောင်နေသည်။ Android အချိန်ကြာမြင့်စွာ။ ရန် Androidu 12 သည် Scudo Memory ခွဲဝေပေးသည့်ကိရိယာနှင့် တွဲဖက်အသုံးပြုနိုင်သော စက်များတွင် MTE လုပ်ဆောင်မှုမုဒ်သုံးမျိုးအတွက် ပံ့ပိုးပေးသည်- synchronous mode၊ asynchronous mode နှင့် asymmetric မုဒ်။ ကုမ္ပဏီသည် စနစ်ဆိုင်ရာ ဂုဏ်သတ္တိများနှင့်/သို့မဟုတ် ပတ်ဝန်းကျင်ပြောင်းလဲမှုများမှတစ်ဆင့် စနစ်လုပ်ငန်းစဉ်များအတွက် MTE ကို ဖွင့်နိုင်စေခဲ့သည်။ အပလီကေးရှင်းများသည် ရည်ညွှန်းချက်တစ်ခုမှတစ်ဆင့် MTE ပံ့ပိုးမှုကို ထည့်သွင်းနိုင်သည်။ android:memtagMode။ လုပ်ငန်းစဉ်များအတွက် MTE ကိုဖွင့်ထားသောအခါ Androidu၊ Use-After-Free နှင့် buffer overflows ကဲ့သို့သော memory safety error အတန်းများအားလုံးသည် အသံတိတ်မှတ်ဉာဏ်ပျက်စီးခြင်းအစား ပျက်စီးသွားမည်ဖြစ်ပါသည်။

Do Androidu 13 Google သည် လိုချင်သော MTE လည်ပတ်မှုမုဒ်ကို bootloader သို့ ဆက်သွယ်ရန်အတွက် Userspace Application Binary Interface (ABI) ကို ထည့်သွင်းခဲ့သည်။ ၎င်းကို မူရင်းအတိုင်း MTE ဖွင့်ထားသည့် လိုက်ဖက်ညီသော စက်များတွင် MTE ကိုဖွင့်ရန် ၎င်းကို သုံးနိုင်သည် သို့မဟုတ် ၎င်းကို မူရင်းအတိုင်း ဖွင့်ထားသည့် တွဲဖက်အသုံးပြုနိုင်သည့် စက်များတွင် ၎င်းကို ပိတ်ရန် ၎င်းကို အသုံးပြုနိုင်သည်။ ro.arm64.memtag.bootctl_supported system property ကို စနစ်တွင် "မှန်" အဖြစ် သတ်မှတ်ခြင်း Android 13 မှ bootloader သည် ABI ကို ပံ့ပိုးထားပြီး အသုံးပြုသူအား နောက်ပြန်လည်ဖွင့်သည့်အချိန်တွင် MTE ကိုဖွင့်ခွင့်ပေးသည့် developer options menu တွင် ခလုတ်တစ်ခုကိုလည်း ဖွင့်ထားကြောင်း စနစ်အား ပြောပြသည်။

V Androidဦး 14 သို့သော်လည်း၊ တွဲဖက်သုံးနိုင်သော စက်များတွင် MTE ကိုဖွင့်ခြင်းသည် developer ရွေးချယ်စရာများမီနူးသို့ ရေငုပ်ရန် လိုအပ်နေပြီဖြစ်သည်။ စက်ပစ္စည်းသည် MTE ပံ့ပိုးမှုဖြင့် Arm v8.5+ ပရိုဆက်ဆာကို အသုံးပြုပါက၊ စက်အကောင်အထည်ဖော်မှုသည် အလိုရှိသော MTE လည်ပတ်မှုမုဒ်ကို bootloader သို့ ဆက်သွယ်ရန်အတွက် ABI ကို ပံ့ပိုးပေးပြီး ro.arm64.memtag.bootctl_settings_toggle စနစ်ပိုင်ဆိုင်မှုအသစ်ကို "မှန်" ဟု သတ်မှတ်ထားပါသည်။ ထို့နောက် စာမျက်နှာအသစ် Advanced memory protection v ဆက်တင်များ → လုံခြုံရေးနှင့် ကိုယ်ရေးကိုယ်တာ → နောက်ထပ် လုံခြုံရေး ဆက်တင်များ. ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS လုပ်ဆောင်ချက်အသစ်ဖြင့်လည်း ဤစာမျက်နှာကို စတင်နိုင်ပါသည်။

စိတ်ဝင်စားစရာမှာ၊ Google Pixel 2 စီးရီးကို အားဖြည့်ပေးသည့် Tensor G7 ချစ်ပ်ဆက်သည် Arm v8.2 ပရိုဆက်ဆာ cores ကိုအသုံးပြုထားသောကြောင့် ၎င်းသည် MTE ကိုမပံ့ပိုးနိုင်ဟု ဆိုလိုသည်။ အကယ်၍ လာမည့် Google Pixel 8 စီးရီးသည် အခြားသော flagship စီးရီးများကဲ့သို့ Arm v9 cores အသစ်ကို အသုံးပြုမည်ဖြစ်သည်။ androidဖုန်းများဆိုလျှင် ၎င်းတို့၏ ဟာ့ဒ်ဝဲသည် MTE ကို ပံ့ပိုးပေးနိုင်မည်ဖြစ်သည်။ သို့သော်၊ "အဆင့်မြင့်မှတ်ဉာဏ်ကာကွယ်မှု" အင်္ဂါရပ်က၎င်းကိုတည်ငြိမ်သောဗားရှင်းသို့ဖြစ်စေမည်လားဟုမေးခွန်းထုတ်စရာရှိနေသည်။ Android14 ခုနှစ်တွင်

ဒီနေ့ အများဆုံးဖတ်တယ်။

.