میخواستم چند apk از منبع ناشناس رو بررسی کنم.به ذهنم رسید که روی یک ماشین مجازی امتحان کنم.بعد از بررسی تصمیم گرفتم BlueStacks نصب کنم.و ماجرا از اینجا شروع شد.چند روز درگیری و البته چند بار تعویض ویندوز (دقیقتر: Restore پارتیشن ویندوز).
من windows 10 version 1909 دارم.و البته برای کنجکاری Hyper-V رو روی اون فعال کردم (هر چند هیچ وقت استفاده نکردم).هنگام نصب BlueStacks با خطایی مواجه شدم و بعد از جستجو متوجه شدم باید HAXM رو نصب کنم.اما نصب HAXM با خطای زیر همراه بود.
This computer does not support Intel Virtualization Technology (VT-x) or it is being exclusively used by Hyper-V. HAXM cannot be installed. Please ensure Hyper-V is disabled in Windows Features, or refer to the Intel HAXM documentation for more information
که صریحا میخواست که Hyper-V رو غیر فعال کنم.بعد از جستجو و اجرای دستور عملها هم باز مشکل پابرجا بود.خلاصهی دستور عملها رو میتونید از اینجا مطالعه کنید.که عبارت بودند از:
۱. فعال سازی عناوینی شبیه VT-x, VT-d, Virtualization Technology توی BIOS
۲. حذف Hyper-V
۳. غیر فعال کردن Core Isolation
۴. دستور «bcdedit /set hypervisorlaunchtype off»
و البته هنوز مشکل وجود داشت.جالبه که با غیر فعال کردن Hyper-V و عدم نصب HAXM برنامهی VirtualBox هم دیگه اجرا نمیشد.
برای دیدن مشکل کافی بود دستور systeminfo رو توی cmd بزنید تا در خط آخر عبارت زیر رو ببینید:
Hyper-V Requirements: A hypervisor has been detected. Features required for Hyper-V will not be displayed.
بعد از بررسی فهمیدیم که چیزی به نام hypervisor وجود داره که در واقع یک لایه بالاتر از امثال Hyper-V و HAXM یا هر ماشین مجازیی است و کنترل کننده اصلی مجازی سازی است.در واقع یک مدیر برای مجازی سازی است.و برای غیر فعال کردنش همان دستور توی مرحله 4 در توضیحات بالا کافیست.البته اگر از UEFI استفاده نمیکنید! و چون من از بوت امن UEFI استفاده می کردم چند روز وقتم گرفته شد تا در اینجا راه حل رو پیدا کردم.
برای این راه حل ابتدا یک Drive Letter خالی ویندوز رو انتخاب کنید (در این مثال L) و بعد دستورات زیر رو بزنید:
D:\> set FREE_MOUNT_VOL_DRIVELETTER=L: D:\> mountvol %FREE_MOUNT_VOL_DRIVELETTER% /s D:\> copy C:\WINDOWS\System32\SecConfig.efi %FREE_MOUNT_VOL_DRIVELETTER%\EFI\Microsoft\Boot\SecConfig.efi /Y D:\> bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DG" /application osloader D:\> bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path "\EFI\Microsoft\Boot\SecConfig.efi" D:\> bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-d86a476d7215} D:\> bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO,DISABLE-VBS D:\> bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=%FREE_MOUNT_VOL_DRIVELETTER% D:\> mountvol %FREE_MOUNT_VOL_DRIVELETTER% /d D:\> shutdown /t 0 /r
که البته دستور آخر مربوط به Restart ویندوز میشه.بعد از بوت با پیغامی روبروی میشید که می خواهد Credentials Guard and virtualization based security رو غیر فعال کنه.
با زدن F3 آن را غیر فعال کنید.و بعد از بالا آمدن ویندوز به راحتی HAXM رو نصب کنید.