/////////////////////////////////////////////////////////////////////////////////////// // Routine : AssignEnter() // Inputs : menu_state // Outputs : None // Process : Enter into assign menus mode /////////////////////////////////////////////////////////////////////////////////////// void AssignWaitControl(void) { // continue only if waiting control to assign if(assign_state != ASSIGN_WAIT_TWEAK_CTRL) return; // the control has been tweaked if(control_assign_index == CTRL_UNDEF) return; control_index = control_assign_index; current_i2c_exp = current_exp_assign; last_control_index = CTRL_UNDEF; // set the new assign mode assign_state = ASSIGN_ACTIVE; // FillParamCurrentStruct(); // V1.61 // BLOCK REMOVED IN V1.61 // Load full structure GetCtrlStructEEaddFromIndexGroup(); // Read struct full or status only from eeprom ReadMultiByteI2c((far uchar *)&Param[0].ctrl_status_0, MIDI_STRUCT_SIZE); // Show assign menus MenuEnter(); }
INT32 main ( IN INT32 Argc, IN CHAR8 **Argv ) { EFI_STATUS Status; MENU_ENTRY *Entry; // get LKAPi mLKApi = GetLKApi(); // init fastboot #if defined (MDE_CPU_ARM) FastbootCommandsAdd(); #endif // init libboot libboot_init(); Status = gBS->LocateProtocol ( &gEfiDevicePathToTextProtocolGuid, NULL, (VOID **)&gEfiDevicePathToTextProtocol ); if (EFI_ERROR (Status)) { return -1; } Status = gBS->LocateProtocol ( &gEfiDevicePathFromTextProtocolGuid, NULL, (VOID **)&gEfiDevicePathFromTextProtocol ); if (EFI_ERROR (Status)) { return -1; } // set default values if(!UtilVariableExists(L"multiboot-debuglevel", &gEFIDroidVariableGuid)) UtilSetEFIDroidVariable("multiboot-debuglevel", "4"); if(!UtilVariableExists(L"fastboot-enable-boot-patch", &gEFIDroidVariableGuid)) UtilSetEFIDroidVariable("fastboot-enable-boot-patch", "1"); if(!UtilVariableExists(L"ui-show-file-explorer", &gEFIDroidVariableGuid)) SettingBoolSet("ui-show-file-explorer", FALSE); if(!UtilVariableExists(L"ui-show-uefi-options", &gEFIDroidVariableGuid)) SettingBoolSet("ui-show-uefi-options", FALSE); if(!UtilVariableExists(L"ui-show-fastboot", &gEFIDroidVariableGuid)) SettingBoolSet("ui-show-fastboot", TRUE); if(!UtilVariableExists(L"boot-force-permissive", &gEFIDroidVariableGuid)) SettingBoolSet("boot-force-permissive", FALSE); // init UI Status = MenuInit(); if (EFI_ERROR (Status)) { #if defined (MDE_CPU_ARM) FastbootInit(); #endif return -1; } // create menus mBootMenuMain = MenuCreate(); mPowerMenu = MenuCreate(); mPowerMenu->BackCallback = PowerMenuBackCallback; mPowerMenu->HideBackIcon = TRUE; #if defined (MDE_CPU_ARM) mFastbootMenu = MenuCreate(); mFastbootMenu->Title = AsciiStrDup("Please Select OS"); mFastbootMenu->BackCallback = FastbootBackCallback; #endif mBootMenuMain->Title = AsciiStrDup("Please Select OS"); mBootMenuMain->ActionIcon = libaroma_stream_ramdisk("icons/ic_settings_black_24dp.png"); mBootMenuMain->ActionCallback = MainMenuActionCallback; mBootMenuMain->ItemFlags = MENU_ITEM_FLAG_SEPARATOR_ALIGN_TEXT; #if defined (MDE_CPU_ARM) // add android options AndroidLocatorInit(); AndroidLocatorAddItems(); #endif // add default EFI options AddEfiBootOptions(); // GROUP: Tools Entry = MenuCreateGroupEntry(); Entry->Name = AsciiStrDup("Tools"); MenuAddEntry(mBootMenuMain, Entry); // add file explorer option Entry = MenuCreateEntry(); Entry->Icon = libaroma_stream_ramdisk("icons/fileexplorer.png"); Entry->Name = AsciiStrDup("File Explorer"); Entry->Callback = FileExplorerCallback; Entry->HideBootMessage = TRUE; Entry->Update = FileExplorerUpdate; MenuAddEntry(mBootMenuMain, Entry); #if defined (MDE_CPU_ARM) // add fastboot option Entry = MenuCreateEntry(); Entry->Icon = libaroma_stream_ramdisk("icons/android.png"); Entry->Name = AsciiStrDup("Fastboot"); Entry->Callback = FastbootCallback; Entry->HideBootMessage = TRUE; Entry->Update = FastbootMenuEntryUpdate; MenuAddEntry(mBootMenuMain, Entry); #endif // add reboot option Entry = MenuCreateEntry(); Entry->Icon = libaroma_stream_ramdisk("icons/reboot.png"); Entry->Name = AsciiStrDup("Reboot"); Entry->Callback = RebootCallback; Entry->Private = NULL; Entry->LongPressCallback = RebootLongPressCallback; MenuAddEntry(mBootMenuMain, Entry); Entry = MenuCreateEntry(); Entry->Icon = libaroma_stream_ramdisk("icons/power_off.png"); Entry->Name = AsciiStrDup("Power Off"); Entry->Callback = PowerOffCallback; MenuAddEntry(mPowerMenu, Entry); Entry = MenuCreateEntry(); Entry->Icon = libaroma_stream_ramdisk("icons/reboot.png"); Entry->Name = AsciiStrDup("Reboot"); Entry->Callback = RebootCallback; Entry->Private = NULL; MenuAddEntry(mPowerMenu, Entry); Entry = MenuCreateEntry(); Entry->Icon = libaroma_stream_ramdisk("icons/reboot_recovery.png"); Entry->Name = AsciiStrDup("Reboot to Recovery"); Entry->Callback = RebootCallback; Entry->Private = UnicodeStrDup(L"recovery"); MenuAddEntry(mPowerMenu, Entry); Entry = MenuCreateEntry(); Entry->Icon = libaroma_stream_ramdisk("icons/reboot_bootloader.png"); Entry->Name = AsciiStrDup("Reboot to Bootloader"); Entry->Callback = RebootCallback; Entry->Private = UnicodeStrDup(L"bootloader"); MenuAddEntry(mPowerMenu, Entry); Entry = MenuCreateEntry(); Entry->Icon = libaroma_stream_ramdisk("icons/download_mode.png"); Entry->Name = AsciiStrDup("Enter Download Mode"); Entry->Callback = RebootCallback; Entry->Private = UnicodeStrDup(L"download"); MenuAddEntry(mPowerMenu, Entry); // show previous boot error CHAR8* EFIDroidErrorStr = UtilGetEFIDroidVariable("EFIDroidErrorStr"); if (EFIDroidErrorStr != NULL) { MenuShowMessage("Previous boot failed", EFIDroidErrorStr); // delete variable UtilSetEFIDroidVariable("EFIDroidErrorStr", NULL); // backup variable UtilSetEFIDroidVariable("EFIDroidErrorStrPrev", EFIDroidErrorStr); // free pool FreePool(EFIDroidErrorStr); } // get last boot entry LAST_BOOT_ENTRY* LastBootEntry = UtilGetEFIDroidDataVariable(L"LastBootEntry"); if(LastBootEntry) UtilSetEFIDroidDataVariable(L"LastBootEntry", NULL, 0); #if defined (MDE_CPU_ARM) // run recovery mode handler if (mLKApi) { if(!AsciiStrCmp(mLKApi->platform_get_uefi_bootpart(), "recovery") || mLKApi->platform_get_uefi_bootmode()==LKAPI_UEFI_BM_RECOVERY) { AndroidLocatorHandleRecoveryMode(LastBootEntry); } } #endif // free last boot entry if(LastBootEntry) FreePool(LastBootEntry); // clear the watchdog timer gBS->SetWatchdogTimer (0, 0, 0, NULL); // first boot? UINTN* LastBootVersion = UtilGetEFIDroidDataVariable(L"last-boot-version"); if(LastBootVersion==NULL) { UINTN NewValue = 1; UtilSetEFIDroidDataVariable(L"last-boot-version", &NewValue, sizeof(NewValue)); MenuShowTutorial(); } // show main menu MenuStackPush(mBootMenuMain); MenuEnter (0, TRUE); MenuDeInit(); return 0; }