هکینتاش و دانگل بلوتوث؟ مگه میشه ? ؟

سلامی گرم از طرف آگوست :) به شما خواننده عزیز!

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

امیدوارم کمک‌کننده باشه!


مقدمه

اگه عجله دارید میتونید با خیال راحت این قسمت رو رد کنید!

برمیگردیم به اوایل سال ۲۰۱۷، وقتی که برای اولین بار تصمیمم رو قطعی کردم و برای همیشه ویندوز و تمامی سرویس‌های مایکروسافت رو کنار گذاشتم₂

پس از ۳ ماه پچ و دستکاری بایوسِ مادربوردِ گرامی₃، روی مک لنگر انداختیم :)

همان زمان بود که یه دانگل بلوتوث خریدم و به سیستم وصل کردم. اما متاسفانه هیچ دسترسی به پنل تنظیمات بلوتوث نداشتم. یه سری سرچ کوچیک توی سایت‌هایی مثل تونی‌مک انجام دادم و متوجه شدم مک مثل ویندوز هر دانگلی رو شناسایی نمی‌کنه ( دقیقا مثل سایر درایورها ) و یه لیست از دانگل‌هایِ وای-فای و بلوتوثی که مک پشتیبانی می‌کرد، به کاربرها ارائه داده بود. و خب طبیعتا توی ایران نمیشد تهیه‌شون کرد. اگه هم می‌شد قیمت‌هاشون یکم اذیت‌کننده بود :)

با یه ناامیدی خاصی قیدش رو زدم. تا رسیدیم به اواخر دسامبر ۲۰۱۸ و macOS موهاوی₄ و خب همونطور که میدونید بعضی از سری-کارت‌های گرافیک nVidia توی این نسخه پشتیبانی نمیشن و اپل هم بخاطر بعضی از سیاست‌های همیشگی اجازه‌ی انتشار WebDriver های nVidia رو صادر نکرده.

من هم بعد از مهاجرت به موهاوی یکم درگیر این موضوع بودم. میون دستکاری کردن Kextهای₅ سیستم‌عامل مک؛ متوجه یه قضیه‌ی عجیبی شدم. و این شد که دانگل بلوتوث ما بعد ۲ سال شروع به کار کردن توی مک کرد :))

اما چطوری؟

این آموزش روی نسخه ۱۰.۱۴.۳ انجام شده. اما به احتمال ۹۲.۹۹ درصد روی نسخه‌هایِ مدرنِ دیگه‌ی مک هم جوابگو هست. توجه کنید خودتون مسئولیت این کار رو به عهده دارید و هر گونه خرابی و... به خودتون برمیگرده.
این آموزش فقط برای هکینتاش ساخته شده. پس به هیچ وجه، تأکید می‌کنم! به هیچ وجه روی دستگاه‌های اپل مثل مک‌بوک، آی‌مک، مک پرو‌، مک‌مینی و... امتحانش نکنید!!

خب، اول از همه دانگل بلوتوث‌تون رو به سیستم وصل کنید.

برید به: اپل‌منو > About This Mac

روی System Report کلیک کنید.

از زبانه‌ی Hardware، به بخش USB برید. زیر زبانه‌ی USB x.0 Bus باید چیزی مثل Bluetooth HCI ببینید. روی اون کلیک کنید و دو تا بخشی که قرمز کردم، یعنی Product ID و Vendor ID رو جایی یادداشت کنید چون بعدا بهش نیاز داریم :))

( بسته به پورت USB که بهش دانگل رو وصل کردید، x متغیره. )

روی ‌Finder کلیک راست کنید و ...Go to Folder رو انتخاب کنید.

به آدرس زیر برید:

/System/Library/Extensions/IOBluetoothFamily.kext

Don't forget to press Go :D ( Just kidding )
Don't forget to press Go :D ( Just kidding )


مستقیما به kextیی که قراره ویرایشش کنیم منتقل می‌شید.

توی این مرحله، kext هایلات شده رو کپی کنید و در جایی دلخواه مثل دسکتاپ اون رو پیست کنید.

( محض احتیاط یک بک آپ هم ازش تهیه کنید که اگه در ادامه جایی رو اشتباه ویرایش و ذخیره کردید به kext خام دسترسی داشته باشید )


حالا kext کپی شده روی دسکتاپ رو هایلات و گزینه Show Package Contents رو انتخاب کنید.

توی پنجره‌ی جدیدی که براتون باز میشه به ترتیب این پوشه‌ها رو باز کنید:

Contents > PlugIns

حالا با چند تا kext مجزایِ دیگه مواجه میشیم :) که البته فقط با یکیشون کار داریم!

خب kextیی که به اسم BroadcomBluetoothHostControllerUSBTransport هست رو هایلایت کنید، بعد هم کلیک راست و بعد هم Show Package Contents. دقیقا مثل کاری که کمی قبل تر انجام دادیم!

پوشه Contents رو باز کنید.

با فایلی به نام Info.plist مواجه میشیم. این فایل رو با یک ویرایشگر مثل Atom باز کنید. اگه ویرایشگر Atom رو نداشتید هیچ اشکالی نداره. میتونید با Text Editor خود مک هم ویرایشش کنید.

( بخاطر واضح بودن جزئیات کار، اینجا از Atom استفاده کردیم! )

کلیک راست روی Info.plist -> سپس Open With -> و بعد هم انتخاب یک ویرایشگر مثل Atom

با یه چیزی مثل تصویر زیر مواجه میشید،

با کلید‌های ترکیبی کامند + F ( یا همون کنترل + F خودمون ? ) کلمه‌ی Microsoft رو جست و جو کنید.

دو تا متغیر idProduct و idVendor رو توی کادر قرمز رنگ می‌بینید؟ اگه مقدار این دو تا متغیر رو به مقادیری که پیش‌تر از دانگل بلوتوثمون دریافت کردیم تغییر بدیم، مک بدون هیچ مشکلی دانگل ما رو به عنوان ماژول بلوتوث شناسایی می‌کنه و اونوقت میتونید ازش استفاده کنید. اما صبر کنید :)) !

اول باید مقادیری که پیش‌تر یادداشت کردیم رو از هگزادسیمال به دسیمال تبدیل کنیم!

اگه زیاد با این موضوع آشنایی ندارید اصلا مشکلی نیست، میتونید از این سایت استفاده کنید.

خب Product ID دانگل من برابر بود با : 0x0001

و همچنین Vendor ID هم برابر بود با : 0x0a12

این مقادیر رو توی کادر Enter Hex Number وارد می‌کنیم و Convert رو می‌زنیم.

یادتون نره ارقام تبدیل شده رو یادداشت کنید
یادتون نره ارقام تبدیل شده رو یادداشت کنید


به ویرایشگر برمی‌گردیم و ارقام دسیمال به دست اومده از دانگلمون رو جایگزین ارقام موجود می‌کنیم.

به این شکل که اعداد موجود در زیرِ Product ID و Vendor ID رو با ارقام خودمون جایگزین می‌کنیم.

( شکل زیر رو نگاه کنید )

بعد اینکه کار ویرایش تموم شد کلیدهای ترکیبی کامند + S ( همون کنترل + S خودمون ? ) رو بزنید تا تغییرات ذخیره بشن. در کل یادتون نره تغییرات رو ذخیره کنید!!!!

دوباره به آدرس زیر برید:

/System/Library/Extensions/IOBluetoothFamily.kext

و kext هایلایت شده رو به سطل زبانه منتقل کنید. بعدش هم سطل زباله رو خالی کنید.

کافیه کلیک راست کرده و Move to Trash رو انتخاب کنین. البته برای اینکار نیاز به وارد کردن پسورد خودتون دارید. چون همونطور که میدونید داریم فایل‌های سیستمی رو ویرایش می‌کنیم و برای اینکار نیاز به دسترسی root داریم.


حالا kext ویرایش شده رو از روی دسکتاپ به آدرس زیر انتقال بدید:

/System/Library/Extensions/

و باز هم پسورد خودتون رو برای اتمام انتقال وارد کنید.

فقط یک مرحله‌ی دیگه تا اتمام کار باقی مونده. و اون هم تعمیر کردن دسترسی‌ها و ری‌بیلد کردن Kext Cache هست. اگه با این مرحله آشنایی دارید که هیچ :) ! اگه آشنایی ندارید کارهای زیر رو انجام بدید:

برنامه Hackintool رو دانلود، از حالت فشرده خارج و بازش کنین.

مراحل موجود در تصویر زیر رو به ترتیب انجام بدید:

از شما درخواست وارد کردن پسورد میشه. بعد از وارد کردن پسورد اوکی کنید. این مرحله حدود ۱۰ دقیقه تا ۱۵ دقیقه زمان میبره. پس نگران طولانی شدنش نباشید که عادیست :)



وقتی فرایند کار تموم بشه با چنین نتایجی مواجه میشید. اون بخش‌های قرمز عادی هستن و جای نگرانی نیست.

هکینتاش خودتون رو ری‌استارت کنید و بعد از بوت شدن دوباره به تنظیمات برید.

و لحظه‌ی شیرین پیروزی :))
و لحظه‌ی شیرین پیروزی :))

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

اگه آموزش رو تا آخرش انجام دادید جا داره یه خدا قوت حسابی بهتون بگم :)

مرسی که آگوست رو تا اینجای کار همراهی کردید. اگه کم و کسری مشاهده کردید حتما در جریانم بزارید تا ویرایش‌های لازم رو انجام بدم.


دوست دارید باز هم درباره‌ی ریزه‌کاری‌هایِ هکینتاش مطلب و آموزش بزارم؟ منتظر نظرات دلگرم کنندتون هستم!

این آموزش رو با آهنگ Energy Drink از Virtual Riot به اتمام می‌رسونیم. اسپاتیفای | لینک مستقیم

توصیه می‌کنم موقع انجام آموزش پخشش کنید :D

¹ این روزها خیلی دچار است‌هراسی شدم، خواستم بالاخره برای اولین بار تو نوشته‌هام از است استفاده کنم ☺️
² تعصبی در کار نیست. و تصمیمم به این معنی نیست که مایکروسافت و محصولاتش بد هستن.
³ شاید روزی از خاطرات مهاجرتم به مک نوشتم :)
⁴ Mojave
⁵ Kernel Extension, Somehow like Drivers in Windows
پی نوشت : دوست‌داران دنیای سیستم‌عامل منتظر باشن. به زودی یه مطلب جذاب منتشر می‌کنم :) متاسفانه هنوز تو صف پیش نویس ها در حال بازرسی هست!