پارتیشن vendor

تولید کنندگان محصولات برپایه‌ی سیستم‌عامل اندروید مانند samsung تا قبل از اندروید ۸ به دلیل باهم بودن قسمت‌هایی که گوگل توسعه میداد و قسمت Hardware abstraction layer یعنی قسمتی که ارتباطات سخت‌افزاری بین سیستم‌عامل و نرم‌افزار های آن‌ها مانند دوربین برقرار می‌کرد باید به ازای هر آپدیت حجم زیادی از سیستم‌عامل را تغییر میدادند.

هم‌چنین به دلیل اینکه این‌قسمت از کد به راحتی قابل تغییر و اجرای مجدد نیست، لذا کدها به شدت باید سازگار و متناسب باشند و به همین دلیل آپدیت کردن این‌قسمت نیازمند صرف هزینه‌ی زیاد از وقت و بودجه بود.لذا این‌قسمت را معمولا برخی شرکت‌های دیگری انجام میدادند که دادن آپدیت جدید به معنی منتظر ماندن برای این‌شرکت‌ها بود.

به همین دلیل گوشی‌های اندروید تا مدتی کم و به تعداد کمی آپدیت برای آن‌ها داده می‌شد و برای گوشی‌های قدیمی‌تر معمولا آپدیتی داده نمی‌شد و این خود باعث نگرانی برای امنیت آن‌ها بود که به راحتی نمی‌شد آپدیت های امنیتی را برای آن‌ها منتشر کرد.

به دلیل اعتراضات انجام شده به گوگل، در اندروید ۸ یک‌پروژه به نام treble project آغاز شد و نتیجه‌ی آن جداکردن زیرسیستم‌هایی سخت‌افزاری مانند دوربین از نرم‌افزارهای کلاینت آن‌ها در لایه‌ی appliaction بود که در واقع باعث به وجود آمدن یک interface بین این قسمت‌ها شد.

از این پس تولیدکنندگان کدهای سخت‌افزاری کد های خود را کامپایل می‌کنند و در پارتیشن vendor قرار می‌دهند.

هم‌چنین کسانی که روی framework اندروید نیز کار می‌کنند می‌توانند بدون دغدغه محصولات خود را جداگانه کامپایل کنند و در مکان مربوط به خود قرار دهند.

این پارتیشن شامل hidl یا زبان تعریف اینترفیس مربوط به hal ها است.

عبارت hal(hardware abstraction layer) یک اینترفیس را برای توسعه‌دهندگان قسمت سخت‌افزار ارائه می‌کند.با این اینترفیس می‌توان بدون داشتن دغدغه از تغییرات در حوزه‌ی کد سیستم‌عامل، تمام کارکردهای مورد نیاز در سطح بالا که از قطعات سخت‌افزاری استفاده ‌می‌کنند را پیاده‌سازی کرد.

تا قبل از اندروید هشت توسعه‌دهندگان سیستم‌عامل باید hal های موردنیاز خود برای دستگاه سخت‌افزاری خود کامپایل می‌کردند و در سیستم‌عامل خود ارائه می‌دادند.

از اندروید هشت به بعد توسعه‌دهندگان سخت‌افزاری ، hal ها را تولید کرده و در پارتیشن vendor قرار می‌دهند. و لذا سیستم‌عامل به راحتی می‌تواند آپدیت‌های موردنیاز خود را ارائه‌کند.

hidl در واقع رابط بین کاربران hal ها و آن‌ها است. و به عبارت دیگر سیستمی است که ارتباط بین دو کد مجزا که به صورت جدا از یکدیگر کامپایل شده اند را برقرار می‌سازد.

در این پارتیشن hidl های مربوط به سخت‌افزار های دوربین - صداها - گرافیک - نورها - (قطعات ارتباطی مانند nfc - bluetooth - wifi) - usb - vibrator و ... قرار دارند.

همچنین برای اطلاعات بیشتر از این پروژه می‌توانید به لینک های زیر مراجعه کنید

android source official page

androidauthority site

computerworld site