امنیت حافظه اخیراً یکی از اولویت های اصلی گوگل بوده است، زیرا خطاهای حافظه از جدی ترین موارد در توسعه نرم افزار هستند. در واقع، آسیبپذیریها در این منطقه مسئول اکثر آسیبپذیریهای بحرانی بودند Androidu تا سال گذشته که گوگل بخش قابل توجهی از کدهای بومی جدید را ایجاد کرد Androidدر زبان برنامه نویسی Rust به جای C/C++. این غول نرم افزاری در حال تلاش برای پشتیبانی از ابزارهای دیگری برای کاهش آسیب پذیری های حافظه در سیستم خود است که یکی از آنها علامت گذاری حافظه نام دارد. در دستگاه های پشتیبانی شده با سیستم Android 14 ممکن است تنظیم جدیدی به نام حفاظت از حافظه پیشرفته وجود داشته باشد که می تواند این ویژگی را تغییر دهد.
Memory Tagging Extension (MTE) یک ویژگی سخت افزاری اجباری پردازنده های مبتنی بر معماری Arm v9 است که جزئیات را ارائه می دهد. informace در مورد خرابی حافظه و محافظت در برابر خطاهای ایمنی حافظه. همانطور که گوگل توضیح می دهد: «در سطح بالایی، MTE هر تخصیص/تخصیص حافظه را با ابرداده اضافی برچسب گذاری می کند. یک نشانگر به یک مکان حافظه اختصاص می دهد، که سپس می تواند با اشاره گرهایی که به آن مکان حافظه اشاره می کنند مرتبط شود. در زمان اجرا، پردازنده بررسی میکند که نشانگر و تگهای فراداده با هر بار خواندن و ذخیره مطابقت دارند."
Google در حال کار برای پشتیبانی از MTE در کل مجموعه نرم افزاری است Android برای مدت طولانی به Androidu 12 تخصیص دهنده حافظه Scudo و پشتیبانی از سه حالت عملکرد MTE در دستگاه های سازگار را اضافه کرد: حالت همزمان، حالت ناهمزمان و حالت نامتقارن. این شرکت همچنین امکان فعال کردن MTE را برای فرآیندهای سیستم از طریق ویژگیهای سیستم و/یا متغیرهای محیطی فراهم کرد. برنامه ها می توانند پشتیبانی MTE را از طریق یک ویژگی اضافه کنند android:memtagMode. هنگامی که MTE برای فرآیندهای موجود در آن فعال است Androidu، کل کلاسهای خطاهای ایمنی حافظه مانند Use-After-Free و سرریز بافر به جای تخریب حافظه بیصدا باعث خرابی میشوند.
Do Androidu 13 Google یک رابط کاربری باینری (ABI) برای برقراری ارتباط حالت عملیاتی MTE مورد نظر به بوت لودر اضافه کرد. این میتواند برای فعال کردن MTE در دستگاههای سازگاری که بهطور پیشفرض با MTE فعال نیستند، استفاده شود، یا میتوان از آن برای غیرفعال کردن آن در دستگاههای سازگاری که بهطور پیشفرض آن را فعال کردهاند استفاده کرد. تنظیم ویژگی ro.arm64.memtag.bootctl_supported سیستم روی "true" در سیستم Android 13 به سیستم گفت که بوت لودر از ABI پشتیبانی می کند و همچنین دکمه ای را در منوی گزینه های توسعه دهنده فعال می کند که به کاربر اجازه می دهد MTE را در راه اندازی مجدد بعدی فعال کند.
V Androidتو 14 با این حال، فعال کردن MTE در دستگاههای سازگار ممکن است نیاز به فرو رفتن در منوی گزینههای توسعهدهنده داشته باشد. اگر دستگاه از پردازنده معماری Arm v8.5+ با پشتیبانی MTE استفاده می کند، پیاده سازی دستگاه از ABI برای برقراری ارتباط حالت عملیاتی MTE مورد نظر با بوت لودر پشتیبانی می کند و ویژگی سیستم جدید ro.arm64.memtag.bootctl_settings_toggle روی "true" تنظیم می شود. "، سپس یک صفحه جدید Advanced memory protect v تنظیمات → امنیت و حریم خصوصی → تنظیمات امنیتی اضافی. این صفحه همچنین میتواند از طریق اقدام جدید ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS راهاندازی شود.
جالب اینجاست که چیپست Tensor G2 که به سری Google Pixel 7 قدرت میدهد، از هستههای پردازنده Arm v8.2 استفاده میکند، به این معنی که از MTE پشتیبانی نمیکند. اگر سری بعدی گوگل پیکسل 8 از هسته های جدید Arm v9 مانند سایر سری های پرچمدار استفاده خواهد کرد androidگوشی ها، پس سخت افزار آنها باید قادر به پشتیبانی از MTE باشد. با این حال، این سوال باقی می ماند که آیا ویژگی "حفاظت پیشرفته از حافظه" به نسخه پایدار می رسد یا خیر Androidدر سال 14