├── .gitignore ├── .gitmodules ├── .tx └── config ├── Android_GUI ├── CMakeLists.txt ├── build.gradle.in ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── ic_launcher-web.png ├── illo_tutorial_settings.png ├── material.license.txt ├── material.xcf ├── proguard-project.txt ├── proguard-rules.pro ├── settings.gradle └── src │ ├── ci │ └── AndroidManifest.xml │ ├── debug │ └── AndroidManifest.xml │ └── main │ ├── AndroidManifest.xml │ ├── java │ ├── com │ │ └── github │ │ │ └── chenxiaolong │ │ │ └── dualbootpatcher │ │ │ ├── AboutFragment.kt │ │ │ ├── AnsiStuff.kt │ │ │ ├── CommandUtils.kt │ │ │ ├── Constants.kt │ │ │ ├── FileUtils.kt │ │ │ ├── LogUtils.kt │ │ │ ├── MainActivity.kt │ │ │ ├── MainApplication.kt │ │ │ ├── MenuUtils.kt │ │ │ ├── NullOutputStream.kt │ │ │ ├── OneTimeLiveEvent.kt │ │ │ ├── PermissionUtils.kt │ │ │ ├── RomConfig.kt │ │ │ ├── RomUtils.kt │ │ │ ├── SnackbarUtils.kt │ │ │ ├── SystemPropertiesProxy.kt │ │ │ ├── ThreadPoolService.kt │ │ │ ├── ThreadUtils.kt │ │ │ ├── Version.kt │ │ │ ├── appsharing │ │ │ ├── AppCardAdapter.kt │ │ │ ├── AppListActivity.kt │ │ │ ├── AppListFragment.kt │ │ │ ├── AppSharingChangeSharedDialog.kt │ │ │ ├── AppSharingEventReceiver.kt │ │ │ ├── AppSharingService.kt │ │ │ ├── AppSharingSettingsActivity.kt │ │ │ └── AppSharingSettingsFragment.kt │ │ │ ├── dialogs │ │ │ ├── DialogListenerTarget.kt │ │ │ ├── FirstUseDialog.kt │ │ │ ├── GenericConfirmDialog.kt │ │ │ ├── GenericInputDialog.kt │ │ │ ├── GenericProgressDialog.kt │ │ │ ├── GenericSingleChoiceDialog.kt │ │ │ └── GenericYesNoDialog.kt │ │ │ ├── freespace │ │ │ ├── FreeSpaceFragment.kt │ │ │ ├── FreeSpaceViewModel.kt │ │ │ ├── MountInfo.kt │ │ │ ├── MountInfoAdapter.kt │ │ │ └── MountInfoViewHolder.kt │ │ │ ├── nativelib │ │ │ ├── LibC.kt │ │ │ ├── LibMbCommon.kt │ │ │ ├── LibMbDevice.kt │ │ │ ├── LibMbPatcher.kt │ │ │ ├── LibMiniZip.kt │ │ │ └── libmiscstuff │ │ │ │ ├── Constants.java │ │ │ │ └── LibMiscStuff.kt │ │ │ ├── patcher │ │ │ ├── AutomatedPatcherActivity.kt │ │ │ ├── InstallLocation.kt │ │ │ ├── PatchFileFragment.kt │ │ │ ├── PatchFileItem.kt │ │ │ ├── PatchFileItemAdapter.kt │ │ │ ├── PatchFileItemViewHolder.kt │ │ │ ├── PatchFileState.kt │ │ │ ├── PatcherOptionsData.kt │ │ │ ├── PatcherOptionsDialog.kt │ │ │ ├── PatcherOptionsLiveData.kt │ │ │ ├── PatcherOptionsValidationState.kt │ │ │ ├── PatcherOptionsViewModel.kt │ │ │ ├── PatcherService.kt │ │ │ └── PatcherUtils.kt │ │ │ ├── pathchooser │ │ │ ├── PathChooserActivity.kt │ │ │ ├── PathChooserDialog.kt │ │ │ ├── PathChooserItemAdapter.kt │ │ │ └── PathChooserItemViewHolder.kt │ │ │ ├── picasso │ │ │ ├── PaletteGeneratorCallback.kt │ │ │ └── PaletteGeneratorTransformation.kt │ │ │ ├── settings │ │ │ ├── RomSettingsActivity.kt │ │ │ └── RomSettingsFragment.kt │ │ │ ├── socket │ │ │ ├── MbtoolConnection.kt │ │ │ ├── MbtoolErrorActivity.kt │ │ │ ├── MbtoolUtils.kt │ │ │ ├── SocketUtils.kt │ │ │ ├── exceptions │ │ │ │ ├── MbtoolCommandException.kt │ │ │ │ └── MbtoolException.kt │ │ │ └── interfaces │ │ │ │ ├── MbtoolInterface.kt │ │ │ │ ├── MbtoolInterfaceV3.kt │ │ │ │ ├── PackageCounts.kt │ │ │ │ ├── SetKernelResult.kt │ │ │ │ ├── SignedExecCompletion.kt │ │ │ │ ├── SignedExecOutputListener.kt │ │ │ │ ├── StatBuf.kt │ │ │ │ ├── SwitchRomResult.kt │ │ │ │ └── WipeResult.kt │ │ │ ├── switcher │ │ │ ├── AddToHomeScreenOptionsDialog.kt │ │ │ ├── AutomatedSwitcherActivity.kt │ │ │ ├── BackupNameInputDialog.kt │ │ │ ├── BackupRestoreTargetsSelectionDialog.kt │ │ │ ├── CacheRomThumbnailTask.kt │ │ │ ├── ChangeInstallLocationDialog.kt │ │ │ ├── ConfirmAutomatedSwitchRomDialog.kt │ │ │ ├── ConfirmChecksumIssueDialog.kt │ │ │ ├── ConfirmMismatchedSetKernelDialog.kt │ │ │ ├── InAppFlashingActivity.kt │ │ │ ├── InAppFlashingFragment.kt │ │ │ ├── InstallLocationSelectionDialog.kt │ │ │ ├── MbtoolTaskOutputActivity.kt │ │ │ ├── MbtoolTaskOutputFragment.kt │ │ │ ├── NamedSlotIdInputDialog.kt │ │ │ ├── RomCardAdapter.kt │ │ │ ├── RomDetailActivity.kt │ │ │ ├── RomDetailAdapter.kt │ │ │ ├── RomNameInputDialog.kt │ │ │ ├── SetKernelConfirmDialog.kt │ │ │ ├── SetKernelNeededDialog.kt │ │ │ ├── SwitcherListFragment.kt │ │ │ ├── SwitcherService.kt │ │ │ ├── SwitcherUtils.kt │ │ │ ├── UpdateRamdiskResultDialog.kt │ │ │ ├── WipeTargetsSelectionDialog.kt │ │ │ ├── actions │ │ │ │ ├── BackupRestoreParams.kt │ │ │ │ ├── MbtoolAction.kt │ │ │ │ └── RomInstallerParams.kt │ │ │ └── service │ │ │ │ ├── BaseServiceTask.kt │ │ │ │ ├── BootUIActionTask.kt │ │ │ │ ├── CacheWallpaperTask.kt │ │ │ │ ├── CreateLauncherTask.kt │ │ │ │ ├── CreateRamdiskUpdaterTask.kt │ │ │ │ ├── GetRomDetailsTask.kt │ │ │ │ ├── GetRomsStateTask.kt │ │ │ │ ├── MbtoolErrorListener.kt │ │ │ │ ├── MbtoolTask.kt │ │ │ │ ├── SetKernelTask.kt │ │ │ │ ├── SwitchRomTask.kt │ │ │ │ ├── UpdateMbtoolWithRootTask.kt │ │ │ │ ├── VerifyZipTask.kt │ │ │ │ └── WipeRomTask.kt │ │ │ └── views │ │ │ ├── CircularProgressBar.kt │ │ │ ├── DragSwipeItemTouchCallback.kt │ │ │ ├── FloatingActionButtonBehavior.kt │ │ │ └── SwipeRefreshLayoutWorkaround.kt │ └── mbtool │ │ └── daemon │ │ └── v3 │ │ ├── CryptoDecryptRequest.java │ │ ├── CryptoDecryptResponse.java │ │ ├── CryptoGetPwTypeRequest.java │ │ ├── CryptoGetPwTypeResponse.java │ │ ├── CryptoPwType.java │ │ ├── FileChmodError.java │ │ ├── FileChmodRequest.java │ │ ├── FileChmodResponse.java │ │ ├── FileCloseError.java │ │ ├── FileCloseRequest.java │ │ ├── FileCloseResponse.java │ │ ├── FileOpenError.java │ │ ├── FileOpenFlag.java │ │ ├── FileOpenRequest.java │ │ ├── FileOpenResponse.java │ │ ├── FileReadError.java │ │ ├── FileReadRequest.java │ │ ├── FileReadResponse.java │ │ ├── FileSELinuxGetLabelError.java │ │ ├── FileSELinuxGetLabelRequest.java │ │ ├── FileSELinuxGetLabelResponse.java │ │ ├── FileSELinuxSetLabelError.java │ │ ├── FileSELinuxSetLabelRequest.java │ │ ├── FileSELinuxSetLabelResponse.java │ │ ├── FileSeekError.java │ │ ├── FileSeekRequest.java │ │ ├── FileSeekResponse.java │ │ ├── FileSeekWhence.java │ │ ├── FileStatError.java │ │ ├── FileStatRequest.java │ │ ├── FileStatResponse.java │ │ ├── FileWriteError.java │ │ ├── FileWriteRequest.java │ │ ├── FileWriteResponse.java │ │ ├── Invalid.java │ │ ├── MbGetBootedRomIdRequest.java │ │ ├── MbGetBootedRomIdResponse.java │ │ ├── MbGetInstalledRomsRequest.java │ │ ├── MbGetInstalledRomsResponse.java │ │ ├── MbGetPackagesCountError.java │ │ ├── MbGetPackagesCountRequest.java │ │ ├── MbGetPackagesCountResponse.java │ │ ├── MbGetVersionRequest.java │ │ ├── MbGetVersionResponse.java │ │ ├── MbRom.java │ │ ├── MbSetKernelError.java │ │ ├── MbSetKernelRequest.java │ │ ├── MbSetKernelResponse.java │ │ ├── MbSwitchRomError.java │ │ ├── MbSwitchRomRequest.java │ │ ├── MbSwitchRomResponse.java │ │ ├── MbSwitchRomResult.java │ │ ├── MbWipeRomRequest.java │ │ ├── MbWipeRomResponse.java │ │ ├── MbWipeTarget.java │ │ ├── PathChmodError.java │ │ ├── PathChmodRequest.java │ │ ├── PathChmodResponse.java │ │ ├── PathCopyError.java │ │ ├── PathCopyRequest.java │ │ ├── PathCopyResponse.java │ │ ├── PathDeleteError.java │ │ ├── PathDeleteFlag.java │ │ ├── PathDeleteRequest.java │ │ ├── PathDeleteResponse.java │ │ ├── PathGetDirectorySizeError.java │ │ ├── PathGetDirectorySizeRequest.java │ │ ├── PathGetDirectorySizeResponse.java │ │ ├── PathMkdirError.java │ │ ├── PathMkdirRequest.java │ │ ├── PathMkdirResponse.java │ │ ├── PathReadlinkError.java │ │ ├── PathReadlinkRequest.java │ │ ├── PathReadlinkResponse.java │ │ ├── PathSELinuxGetLabelError.java │ │ ├── PathSELinuxGetLabelRequest.java │ │ ├── PathSELinuxGetLabelResponse.java │ │ ├── PathSELinuxSetLabelError.java │ │ ├── PathSELinuxSetLabelRequest.java │ │ ├── PathSELinuxSetLabelResponse.java │ │ ├── RebootError.java │ │ ├── RebootRequest.java │ │ ├── RebootResponse.java │ │ ├── RebootType.java │ │ ├── Request.java │ │ ├── RequestType.java │ │ ├── Response.java │ │ ├── ResponseType.java │ │ ├── ShutdownError.java │ │ ├── ShutdownRequest.java │ │ ├── ShutdownResponse.java │ │ ├── ShutdownType.java │ │ ├── SignedExecError.java │ │ ├── SignedExecOutputResponse.java │ │ ├── SignedExecRequest.java │ │ ├── SignedExecResponse.java │ │ ├── SignedExecResult.java │ │ ├── StructStat.java │ │ └── Unsupported.java │ └── res │ ├── animator │ ├── fragment_in.xml │ └── fragment_out.xml │ ├── color │ └── standardtext.xml │ ├── drawable-hdpi │ ├── about.png │ ├── action_bar_cancel.png │ ├── action_bar_check.png │ ├── check.png │ ├── dashboard.png │ ├── drawer_shadow.9.png │ ├── exit.png │ ├── green_check.png │ ├── ic_action_action_lock.png │ ├── ic_check_white_48dp.png │ ├── ic_launcher.png │ ├── ic_more_vert_black_24dp.png │ ├── ic_more_vert_grey600_24dp.png │ ├── ic_plus_white_24dp.png │ ├── ic_system_update_white_24dp.png │ ├── refresh.png │ ├── rom_details_action_backup.png │ ├── rom_details_action_home.png │ ├── rom_details_action_set_kernel.png │ ├── rom_details_action_switch_rom_white_48dp.png │ ├── rom_details_action_update_ramdisk.png │ ├── rom_details_action_wipe.png │ ├── settings.png │ ├── split.png │ └── storage.png │ ├── drawable-mdpi │ ├── about.png │ ├── action_bar_cancel.png │ ├── action_bar_check.png │ ├── check.png │ ├── dashboard.png │ ├── drawer_shadow.9.png │ ├── exit.png │ ├── green_check.png │ ├── ic_action_action_lock.png │ ├── ic_check_white_48dp.png │ ├── ic_launcher.png │ ├── ic_more_vert_black_24dp.png │ ├── ic_more_vert_grey600_24dp.png │ ├── ic_plus_white_24dp.png │ ├── ic_system_update_white_24dp.png │ ├── refresh.png │ ├── rom_details_action_backup.png │ ├── rom_details_action_home.png │ ├── rom_details_action_set_kernel.png │ ├── rom_details_action_switch_rom_white_48dp.png │ ├── rom_details_action_update_ramdisk.png │ ├── rom_details_action_wipe.png │ ├── settings.png │ ├── split.png │ └── storage.png │ ├── drawable-xhdpi │ ├── about.png │ ├── action_bar_cancel.png │ ├── action_bar_check.png │ ├── check.png │ ├── dashboard.png │ ├── drawer_shadow.9.png │ ├── exit.png │ ├── green_check.png │ ├── ic_action_action_lock.png │ ├── ic_check_white_48dp.png │ ├── ic_launcher.png │ ├── ic_more_vert_black_24dp.png │ ├── ic_more_vert_grey600_24dp.png │ ├── ic_plus_white_24dp.png │ ├── ic_system_update_white_24dp.png │ ├── refresh.png │ ├── rom_details_action_backup.png │ ├── rom_details_action_home.png │ ├── rom_details_action_set_kernel.png │ ├── rom_details_action_switch_rom_white_48dp.png │ ├── rom_details_action_update_ramdisk.png │ ├── rom_details_action_wipe.png │ ├── settings.png │ ├── split.png │ └── storage.png │ ├── drawable-xxhdpi │ ├── about.png │ ├── action_bar_cancel.png │ ├── action_bar_check.png │ ├── check.png │ ├── dashboard.png │ ├── drawer_shadow.9.png │ ├── exit.png │ ├── green_check.png │ ├── ic_action_action_lock.png │ ├── ic_check_white_48dp.png │ ├── ic_launcher.png │ ├── ic_more_vert_black_24dp.png │ ├── ic_more_vert_grey600_24dp.png │ ├── ic_plus_white_24dp.png │ ├── ic_system_update_white_24dp.png │ ├── refresh.png │ ├── rom_details_action_backup.png │ ├── rom_details_action_home.png │ ├── rom_details_action_set_kernel.png │ ├── rom_details_action_switch_rom_white_48dp.png │ ├── rom_details_action_update_ramdisk.png │ ├── rom_details_action_wipe.png │ ├── settings.png │ ├── split.png │ └── storage.png │ ├── drawable-xxxhdpi │ ├── about.png │ ├── action_bar_cancel.png │ ├── action_bar_check.png │ ├── check.png │ ├── dashboard.png │ ├── exit.png │ ├── green_check.png │ ├── ic_action_action_lock.png │ ├── ic_check_white_48dp.png │ ├── ic_launcher.png │ ├── ic_more_vert_black_24dp.png │ ├── ic_more_vert_grey600_24dp.png │ ├── ic_plus_white_24dp.png │ ├── ic_system_update_white_24dp.png │ ├── refresh.png │ ├── rom_details_action_backup.png │ ├── rom_details_action_home.png │ ├── rom_details_action_set_kernel.png │ ├── rom_details_action_switch_rom_white_48dp.png │ ├── rom_details_action_update_ramdisk.png │ ├── rom_details_action_wipe.png │ ├── settings.png │ ├── split.png │ └── storage.png │ ├── drawable │ ├── logo_big.png │ ├── material.png │ ├── menu_button_overflow_material.xml │ └── rom_android.png │ ├── layout-land │ └── fragment_about.xml │ ├── layout-port │ └── fragment_about.xml │ ├── layout │ ├── activity_app_list.xml │ ├── activity_in_app_flashing.xml │ ├── activity_mbtool_error.xml │ ├── activity_mbtool_task_output.xml │ ├── activity_path_chooser.xml │ ├── activity_rom_detail.xml │ ├── automated_patcher_layout.xml │ ├── automated_switcher_layout.xml │ ├── card_v7_app.xml │ ├── card_v7_free_space.xml │ ├── card_v7_mbtool_connect_fail.xml │ ├── card_v7_patch_file_item.xml │ ├── card_v7_pending_action.xml │ ├── card_v7_rom.xml │ ├── card_v7_rom_spacer.xml │ ├── dialog_patcher_opts.xml │ ├── dialog_path_chooser.xml │ ├── dialog_progress.xml │ ├── drawer_layout.xml │ ├── fragment_about.xml │ ├── fragment_app_list.xml │ ├── fragment_free_space.xml │ ├── fragment_in_app_flashing.xml │ ├── fragment_mbtool_tasks_output.xml │ ├── fragment_patcher.xml │ ├── fragment_switcher.xml │ ├── list_path_chooser_item.xml │ ├── nav_header.xml │ ├── rom_detail_action_item.xml │ ├── rom_detail_card_item.xml │ ├── rom_detail_info_item.xml │ ├── rom_settings.xml │ └── toolbar.xml │ ├── menu │ ├── actionbar_app_list.xml │ ├── actionbar_check.xml │ ├── actionbar_check_cancel.xml │ └── nav_items.xml │ ├── values-ar │ └── strings.xml │ ├── values-az │ └── strings.xml │ ├── values-de │ └── strings.xml │ ├── values-es │ └── strings.xml │ ├── values-fr │ └── strings.xml │ ├── values-hr │ └── strings.xml │ ├── values-id-rID │ └── strings.xml │ ├── values-it │ └── strings.xml │ ├── values-iw │ └── strings.xml │ ├── values-night │ └── styles.xml │ ├── values-pl-rPL │ └── strings.xml │ ├── values-pt-rBR │ └── strings.xml │ ├── values-pt-rPT │ └── strings.xml │ ├── values-pt │ └── strings.xml │ ├── values-ro │ └── strings.xml │ ├── values-ru-rRU │ └── strings.xml │ ├── values-ru │ └── strings.xml │ ├── values-sw600dp │ └── dimens.xml │ ├── values-sw720dp-land │ └── dimens.xml │ ├── values-tr │ └── strings.xml │ ├── values-v21 │ └── styles.xml │ ├── values-vi │ └── strings.xml │ ├── values-zh-rCN │ └── strings.xml │ ├── values-zh-rHK │ └── strings.xml │ ├── values-zh-rTW │ └── strings.xml │ ├── values-zh │ └── strings.xml │ ├── values │ ├── arrays.xml │ ├── attrs.xml │ ├── colors.xml │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml │ └── xml │ ├── app_sharing_settings.xml │ └── rom_settings.xml ├── CMakeLists.txt ├── CONTRIBUTORS.md ├── Doxyfile ├── LICENSE ├── README.md ├── android └── CMakeLists.txt ├── bootimgtool ├── CMakeLists.txt ├── bootimgtool.cpp ├── bootimgtool.manifest └── bootimgtool.rc ├── cmake ├── CompilerFlags.cmake ├── ConfigAndroid.cmake ├── ConfigAndroidApp.cmake ├── ConfigAndroidSystem.cmake ├── ConfigDesktop.cmake ├── ConfigHostTools.cmake ├── ConfigSigning.cmake ├── Dependencies.cmake ├── ImplicitIncludeDirs.cmake ├── Qemu.cmake ├── SignFiles.cmake.in ├── SigningConfig.prop.in ├── SigningConfigReader.cmake ├── Testing.cmake ├── VariableBackup.cmake ├── android.toolchain.cmake ├── dependencies │ ├── android-system-core.cmake │ ├── freetype2.cmake │ ├── fuse.cmake │ ├── googletest.cmake │ ├── libarchive.cmake │ ├── libdrm.cmake │ ├── liblzma.cmake │ ├── libpng.cmake │ ├── libsepol.cmake │ ├── lz4.cmake │ ├── minizip.cmake │ ├── openssl.cmake │ ├── outcome.cmake │ ├── qt5.cmake │ ├── rapidjson.cmake │ ├── safe-iop.cmake │ ├── yaml-cpp.cmake │ └── zlib.cmake ├── external │ ├── GetGitRevisionDescription.cmake │ └── GetGitRevisionDescription.cmake.in ├── modules │ ├── FindAndroidLibCutils.cmake │ ├── FindAndroidLibLog.cmake │ ├── FindAndroidLibUtils.cmake │ ├── FindAndroidPixelFlinger.cmake │ ├── FindFuse.cmake │ ├── FindLZ4.cmake │ ├── FindLibDrm.cmake │ ├── FindLibSepol.cmake │ ├── FindSafeIop.cmake │ └── FindYamlCpp.cmake ├── qemu_run_tests.sh └── toolchain-mingw.cmake.in ├── data ├── CMakeLists.txt ├── devices │ ├── 360.yml │ ├── CMakeLists.txt │ ├── SAMPLE.yml │ ├── acer.yml │ ├── alcatel.yml │ ├── amazon.yml │ ├── archos.yml │ ├── ark.yml │ ├── asus.yml │ ├── blu.yml │ ├── bq.yml │ ├── cagabi.yml │ ├── cherrymobile.yml │ ├── cmcc.yml │ ├── coolpad.yml │ ├── dexp.yml │ ├── doogee.yml │ ├── elephone.yml │ ├── energy_sistem.yml │ ├── ginzzu.yml │ ├── gionee.yml │ ├── google.yml │ ├── gree.yml │ ├── homtom.yml │ ├── htc.yml │ ├── huawei.yml │ ├── infinix.yml │ ├── infocus.yml │ ├── jiayu.yml │ ├── lava.yml │ ├── leagoo.yml │ ├── leeco.yml │ ├── lenovo.yml │ ├── lg.yml │ ├── linnex.yml │ ├── meizu.yml │ ├── micromax.yml │ ├── motorola.yml │ ├── nextbit.yml │ ├── nexus.yml │ ├── nokia.yml │ ├── nubia.yml │ ├── oneplus.yml │ ├── oppo.yml │ ├── oukitel.yml │ ├── pantech.yml │ ├── quantum.yml │ ├── samsung │ │ ├── 00_galaxy_s.yml │ │ ├── 01_galaxy_note.yml │ │ ├── 02_galaxy_a_j.yml │ │ ├── 03_galaxy_ace.yml │ │ ├── 04_galaxy_mega.yml │ │ ├── 05_galaxy_tab_tablet.yml │ │ ├── 06_galaxy_note_tablet.yml │ │ └── 07_other.yml │ ├── sony.yml │ ├── symphony.yml │ ├── tecno.yml │ ├── umi.yml │ ├── walton.yml │ ├── wiko.yml │ ├── wileyfox.yml │ ├── xiaomi │ │ ├── 00_mi.yml │ │ ├── 01_mi_note.yml │ │ ├── 02_mi_max.yml │ │ ├── 03_redmi.yml │ │ ├── 04_redmi_note.yml │ │ └── 05_other.yml │ ├── yu.yml │ ├── zoji.yml │ ├── zte.yml │ └── zuk.yml └── scripts │ └── bb-wrapper.sh ├── devicesgen ├── CMakeLists.txt └── devicesgen.cpp ├── docker ├── .dockerignore ├── build.sh ├── common.sh ├── entrypoint.sh ├── generate.sh └── template │ ├── Dockerfile.android.in │ ├── Dockerfile.base.in │ ├── Dockerfile.linux.in │ └── Dockerfile.mingw.in ├── docs ├── build │ ├── App-Android.md │ ├── CMake.md │ ├── Docker.md │ ├── Git-Clone.md │ ├── Patcher-Linux.md │ ├── Patcher-mingw.md │ ├── Patcher-msvc.md │ └── Utilities.md ├── internals │ ├── Intents.md │ └── Odin-Package-Installation.md └── libraries │ └── libmbsystrace.md ├── examples ├── CMakeLists.txt ├── bingrep.cpp ├── bootimg_compare.cpp ├── desparse.cpp ├── libmbpatcher_test.cpp └── mbtrace.cpp ├── gui ├── CMakeLists.txt ├── icon.png ├── main.cpp ├── main.manifest ├── main.rc ├── mainwindow.cpp ├── mainwindow.h ├── mainwindow_p.h ├── mbp.desktop └── resources.qrc ├── hosttools └── CMakeLists.txt ├── icons ├── build.sh ├── icon.ico └── icon.png ├── libmbbootimg ├── CMakeLists.txt ├── include │ └── mbbootimg │ │ ├── entry.h │ │ ├── format.h │ │ ├── format │ │ ├── align_p.h │ │ ├── android_defs.h │ │ ├── android_error.h │ │ ├── android_p.h │ │ ├── android_reader_p.h │ │ ├── android_writer_p.h │ │ ├── bump_defs.h │ │ ├── loki_defs.h │ │ ├── loki_error.h │ │ ├── loki_p.h │ │ ├── loki_reader_p.h │ │ ├── loki_writer_p.h │ │ ├── mtk_defs.h │ │ ├── mtk_error.h │ │ ├── mtk_p.h │ │ ├── mtk_reader_p.h │ │ ├── mtk_writer_p.h │ │ ├── segment_error_p.h │ │ ├── segment_reader_p.h │ │ ├── segment_writer_p.h │ │ ├── sony_elf_defs.h │ │ ├── sony_elf_error.h │ │ ├── sony_elf_glibc_p.h │ │ ├── sony_elf_p.h │ │ ├── sony_elf_reader_p.h │ │ └── sony_elf_writer_p.h │ │ ├── guard_p.h │ │ ├── header.h │ │ ├── reader.h │ │ ├── reader_error.h │ │ ├── reader_p.h │ │ ├── writer.h │ │ ├── writer_error.h │ │ └── writer_p.h ├── src │ ├── entry.cpp │ ├── format.cpp │ ├── format │ │ ├── android_error.cpp │ │ ├── android_reader.cpp │ │ ├── android_writer.cpp │ │ ├── loki.cpp │ │ ├── loki_error.cpp │ │ ├── loki_reader.cpp │ │ ├── loki_writer.cpp │ │ ├── mtk_error.cpp │ │ ├── mtk_reader.cpp │ │ ├── mtk_writer.cpp │ │ ├── segment_error.cpp │ │ ├── segment_reader.cpp │ │ ├── segment_writer.cpp │ │ ├── sony_elf_error.cpp │ │ ├── sony_elf_reader.cpp │ │ └── sony_elf_writer.cpp │ ├── header.cpp │ ├── reader.cpp │ ├── reader_error.cpp │ ├── writer.cpp │ └── writer_error.cpp └── tests │ ├── format │ ├── test_android_reader.cpp │ ├── test_android_writer.cpp │ ├── test_android_writer_p.cpp │ ├── test_bump_reader.cpp │ ├── test_bump_writer.cpp │ ├── test_loki_reader.cpp │ ├── test_loki_writer.cpp │ ├── test_mtk_reader.cpp │ ├── test_mtk_writer.cpp │ ├── test_sony_elf_reader.cpp │ └── test_sony_elf_writer.cpp │ ├── test_entry.cpp │ ├── test_header.cpp │ ├── test_main.cpp │ └── test_writer.cpp ├── libmbcommon ├── CMakeLists.txt ├── external.yaml ├── include │ └── mbcommon │ │ ├── algorithm.h │ │ ├── capi │ │ └── util.h │ │ ├── common.h │ │ ├── endian.h │ │ ├── error.h │ │ ├── error_code.h │ │ ├── external │ │ ├── bionic_mbstate.h │ │ └── iconv.h │ │ ├── file.h │ │ ├── file │ │ ├── fd.h │ │ ├── fd_p.h │ │ ├── memory.h │ │ ├── open_mode.h │ │ ├── posix.h │ │ ├── posix_p.h │ │ ├── standard.h │ │ ├── win32.h │ │ └── win32_p.h │ │ ├── file_error.h │ │ ├── file_util.h │ │ ├── finally.h │ │ ├── flags.h │ │ ├── guard_p.h │ │ ├── integer.h │ │ ├── locale.h │ │ ├── outcome.h │ │ ├── string.h │ │ ├── type_traits.h │ │ └── version.h ├── src │ ├── capi │ │ └── util.cpp │ ├── common.cpp │ ├── error.cpp │ ├── error_code.cpp │ ├── external │ │ └── iconv.cpp │ ├── file.cpp │ ├── file │ │ ├── fd.cpp │ │ ├── memory.cpp │ │ ├── open_mode.cpp │ │ ├── posix.cpp │ │ ├── standard.cpp │ │ └── win32.cpp │ ├── file_error.cpp │ ├── file_util.cpp │ ├── locale.cpp │ ├── string.cpp │ └── version.cpp.in └── tests │ ├── file │ ├── mock_test_file.h │ ├── test_fd.cpp │ ├── test_memory.cpp │ ├── test_posix.cpp │ └── test_win32.cpp │ ├── main.cpp │ ├── test_endian.cpp │ ├── test_error_code.cpp │ ├── test_file_error.cpp │ ├── test_file_util.cpp │ ├── test_flags.cpp │ ├── test_integer.cpp │ ├── test_locale.cpp │ └── test_string.cpp ├── libmbdevice ├── CMakeLists.txt ├── include │ └── mbdevice │ │ ├── capi │ │ ├── device.h │ │ ├── flags.h │ │ └── json.h │ │ ├── device.h │ │ ├── device_p.h │ │ ├── flags.h │ │ ├── json.h │ │ └── schema.h ├── schemas │ ├── device.json │ └── device_list.json ├── schemas2cpp.cpp ├── src │ ├── capi │ │ ├── device.cpp │ │ └── json.cpp │ ├── device.cpp │ ├── json.cpp │ └── schema.cpp └── tests │ ├── main.cpp │ ├── test_device.cpp │ ├── test_flags.cpp │ └── test_json.cpp ├── libmblog ├── CMakeLists.txt ├── include │ └── mblog │ │ ├── android_logger.h │ │ ├── base_logger.h │ │ ├── kmsg_logger.h │ │ ├── log_level.h │ │ ├── log_record.h │ │ ├── logging.h │ │ └── stdio_logger.h └── src │ ├── android_logger.cpp │ ├── base_logger.cpp │ ├── kmsg_logger.cpp │ ├── logging.cpp │ └── stdio_logger.cpp ├── libmbpatcher ├── CMakeLists.txt ├── include │ └── mbpatcher │ │ ├── autopatchers │ │ ├── magiskpatcher.h │ │ ├── mountcmdpatcher.h │ │ └── standardpatcher.h │ │ ├── cwrapper │ │ ├── cfileinfo.h │ │ ├── cpatcherconfig.h │ │ ├── cpatcherinterface.h │ │ └── ctypes.h │ │ ├── edify │ │ └── tokenizer.h │ │ ├── errors.h │ │ ├── fileinfo.h │ │ ├── patcherconfig.h │ │ ├── patcherinterface.h │ │ ├── patchers │ │ ├── odinpatcher.h │ │ ├── ramdiskupdater.h │ │ └── zippatcher.h │ │ └── private │ │ ├── fileutils.h │ │ └── miniziputils.h └── src │ ├── autopatchers │ ├── magiskpatcher.cpp │ ├── mountcmdpatcher.cpp │ └── standardpatcher.cpp │ ├── cwrapper │ ├── cfileinfo.cpp │ ├── cpatcherconfig.cpp │ ├── cpatcherinterface.cpp │ └── ctypes.cpp │ ├── edify │ └── tokenizer.cpp │ ├── fileinfo.cpp │ ├── patcherconfig.cpp │ ├── patchers │ ├── odinpatcher.cpp │ ├── ramdiskupdater.cpp │ └── zippatcher.cpp │ └── private │ ├── fileutils.cpp │ └── miniziputils.cpp ├── libmbpio ├── CMakeLists.txt ├── include │ └── mbpio │ │ ├── delete.h │ │ ├── directory.h │ │ ├── path.h │ │ ├── posix │ │ └── delete.h │ │ └── win32 │ │ └── delete.h └── src │ ├── delete.cpp │ ├── directory.cpp │ ├── path.cpp │ ├── posix │ └── delete.cpp │ └── win32 │ └── delete.cpp ├── libmbsign ├── CMakeLists.txt ├── include │ └── mbsign │ │ ├── error.h │ │ └── sign.h ├── src │ ├── error.cpp │ └── sign.cpp └── tests │ ├── main.cpp │ └── test_sign.cpp ├── libmbsparse ├── CMakeLists.txt ├── include │ └── mbsparse │ │ ├── sparse.h │ │ ├── sparse_error.h │ │ └── sparse_p.h ├── src │ ├── sparse.cpp │ └── sparse_error.cpp └── tests │ ├── main.cpp │ └── test_sparse.cpp ├── libmbsystrace ├── CMakeLists.txt ├── headersgen │ ├── CMakeLists.txt │ ├── main.cpp │ ├── process.cpp │ └── process.h ├── include │ ├── arch │ │ ├── aarch64 │ │ │ └── mbsystrace │ │ │ │ └── arch.h │ │ ├── arm │ │ │ └── mbsystrace │ │ │ │ └── arch.h │ │ ├── x86 │ │ │ └── mbsystrace │ │ │ │ └── arch.h │ │ └── x86_64 │ │ │ └── mbsystrace │ │ │ └── arch.h │ └── mbsystrace │ │ ├── event_p.h │ │ ├── hooks.h │ │ ├── procfs_p.h │ │ ├── registers_p.h │ │ ├── signals.h │ │ ├── signals_list_p.h │ │ ├── syscalls.h │ │ ├── syscalls_list_p.h │ │ ├── tracee.h │ │ ├── tracer.h │ │ └── types.h ├── src │ ├── arch │ │ ├── aarch64 │ │ │ ├── arch.cpp │ │ │ └── syscalls_list.cpp │ │ ├── arm │ │ │ ├── arch.cpp │ │ │ └── syscalls_list.cpp │ │ ├── x86 │ │ │ ├── arch.cpp │ │ │ └── syscalls_list.cpp │ │ └── x86_64 │ │ │ ├── arch.cpp │ │ │ └── syscalls_list.cpp │ ├── event.cpp │ ├── procfs.cpp │ ├── registers.cpp │ ├── signals.cpp │ ├── signals_list.cpp │ ├── syscalls.cpp │ ├── tracee.cpp │ ├── tracee │ │ ├── injection.cpp │ │ └── memory.cpp │ ├── tracer.cpp │ └── tracer │ │ └── mainloop.cpp └── tests │ ├── main.cpp │ ├── test_arch.cpp │ ├── test_attach_detach.cpp │ ├── test_execve.cpp │ ├── test_hooks.cpp │ ├── test_inject.cpp │ ├── test_memory.cpp │ ├── test_new_process.cpp │ ├── test_signals.cpp │ └── test_syscalls.cpp ├── libmbutil ├── CMakeLists.txt ├── external.yaml ├── include │ └── mbutil │ │ ├── archive.h │ │ ├── blkid.h │ │ ├── chmod.h │ │ ├── chown.h │ │ ├── cmdline.h │ │ ├── command.h │ │ ├── copy.h │ │ ├── delete.h │ │ ├── directory.h │ │ ├── external │ │ ├── _system_properties.h │ │ ├── bionic_futex.h │ │ ├── bionic_lock.h │ │ ├── bionic_macros.h │ │ └── system_properties.h │ │ ├── file.h │ │ ├── fstab.h │ │ ├── fts.h │ │ ├── hash.h │ │ ├── loopdev.h │ │ ├── mount.h │ │ ├── path.h │ │ ├── process.h │ │ ├── properties.h │ │ ├── reboot.h │ │ ├── result │ │ └── file_op_result.h │ │ ├── selinux.h │ │ ├── socket.h │ │ ├── string.h │ │ ├── time.h │ │ └── vibrate.h ├── src │ ├── archive.cpp │ ├── blkid.cpp │ ├── chmod.cpp │ ├── chown.cpp │ ├── cmdline.cpp │ ├── command.cpp │ ├── copy.cpp │ ├── delete.cpp │ ├── directory.cpp │ ├── external │ │ ├── system_properties.cpp │ │ └── system_properties_compat.cpp │ ├── file.cpp │ ├── fstab.cpp │ ├── fts.cpp │ ├── hash.cpp │ ├── loopdev.cpp │ ├── mount.cpp │ ├── path.cpp │ ├── process.cpp │ ├── properties.cpp │ ├── reboot.cpp │ ├── result │ │ └── file_op_result.cpp │ ├── selinux.cpp │ ├── socket.cpp │ ├── string.cpp │ ├── time.cpp │ └── vibrate.cpp └── tests │ ├── main.cpp │ └── test_archive.cpp ├── libmiscstuff-jni ├── CMakeLists.txt ├── constants.cpp ├── jni_load.cpp └── libmiscstuff.cpp ├── licenses ├── AROMA │ └── README ├── Android-Terminal-Emulator │ └── NOTICE ├── FloatingActionButton │ └── LICENSE ├── LICENSE ├── RootShell │ ├── Licensing.md │ └── README.md ├── android-bionic │ └── NOTICE ├── android-support-libraries │ └── LICENSE ├── android-system-core │ └── LICENSE ├── apache-commons-io │ └── LICENSE.txt ├── apache-commons-lang │ └── LICENSE.txt ├── boringssl │ └── LICENSE ├── exfat │ └── COPYING ├── flatbuffers │ └── LICENSE.txt ├── freetype │ ├── FTL.TXT │ ├── GPLv2.TXT │ └── LICENSE.TXT ├── fuse │ └── COPYING ├── gson │ └── LICENSE ├── jna │ ├── AL2.0 │ ├── LGPL2.1 │ ├── LICENSE │ ├── LICENSE.AL │ └── LICENSE.LGPL ├── leakcanary │ └── LICENSE.txt ├── libarchive │ └── COPYING ├── libdrm │ ├── COPYING │ └── README.md ├── liblzma │ └── COPYING ├── libpng │ └── LICENSE ├── libsepol │ └── COPYING ├── linux │ └── COPYING ├── loki │ └── LICENSE.txt ├── lz4 │ └── LICENSE ├── material-dialogs │ └── LICENSE.txt ├── minizip │ └── LICENSE ├── musl │ └── COPYRIGHT ├── picasso │ └── LICENSE.txt ├── pugixml │ └── README.md ├── rapidjson │ └── license.txt ├── safe-iop │ └── LICENSE └── valgrind │ └── COPYING ├── mbbootui ├── CMakeLists.txt ├── README.md ├── config │ ├── CMakeLists.txt │ ├── config.cpp │ └── config.hpp ├── daemon_connection.cpp ├── daemon_connection.h ├── data.cpp ├── data.hpp ├── find_file.cpp ├── find_file.hpp ├── gui │ ├── CMakeLists.txt │ ├── action.cpp │ ├── action.hpp │ ├── animation.cpp │ ├── animation.hpp │ ├── blanktimer.cpp │ ├── blanktimer.hpp │ ├── button.cpp │ ├── button.hpp │ ├── checkbox.cpp │ ├── checkbox.hpp │ ├── console.cpp │ ├── console.hpp │ ├── fileselector.cpp │ ├── fileselector.hpp │ ├── fill.cpp │ ├── fill.hpp │ ├── gui.cpp │ ├── gui.h │ ├── gui.hpp │ ├── hardwarekeyboard.cpp │ ├── hardwarekeyboard.hpp │ ├── image.cpp │ ├── image.hpp │ ├── input.cpp │ ├── input.hpp │ ├── keyboard.cpp │ ├── keyboard.hpp │ ├── listbox.cpp │ ├── listbox.hpp │ ├── monotonic_cond.cpp │ ├── monotonic_cond.hpp │ ├── mousecursor.cpp │ ├── mousecursor.hpp │ ├── object.cpp │ ├── objects.hpp │ ├── pages.cpp │ ├── pages.h │ ├── pages.hpp │ ├── patternpassword.cpp │ ├── patternpassword.hpp │ ├── placement.h │ ├── progressbar.cpp │ ├── progressbar.hpp │ ├── rapidxml.hpp │ ├── resources.cpp │ ├── resources.hpp │ ├── scrolllist.cpp │ ├── scrolllist.hpp │ ├── slider.cpp │ ├── slider.hpp │ ├── slidervalue.cpp │ ├── slidervalue.hpp │ ├── terminal.cpp │ ├── terminal.hpp │ ├── text.cpp │ ├── text.hpp │ ├── textbox.cpp │ ├── textbox.hpp │ ├── twmsg.cpp │ └── twmsg.h ├── info.prop.in ├── infomanager.cpp ├── infomanager.hpp ├── main.cpp ├── minuitwrp │ ├── CMakeLists.txt │ ├── backend │ │ ├── backend.cpp │ │ ├── backend.gen.h.in │ │ ├── backend.h │ │ ├── backend_adf.cpp │ │ ├── backend_drm.cpp │ │ ├── backend_fbdev.cpp │ │ └── backend_overlay.cpp │ ├── events.cpp │ ├── graphics.cpp │ ├── graphics.h │ ├── graphics_utils.cpp │ ├── include │ │ ├── msm_new │ │ │ └── linux │ │ │ │ ├── ion.h │ │ │ │ ├── msm_ion.h │ │ │ │ └── msm_mdp.h │ │ └── msm_old │ │ │ └── linux │ │ │ ├── ion.h │ │ │ ├── msm_ion.h │ │ │ └── msm_mdp.h │ ├── minui.h │ ├── resources.cpp │ └── truetype.cpp ├── minzip │ ├── Bits.h │ ├── CMakeLists.txt │ ├── DirUtil.c │ ├── DirUtil.h │ ├── Hash.c │ ├── Hash.h │ ├── Inlines.c │ ├── Log.h │ ├── SysUtil.c │ ├── SysUtil.h │ ├── Zip.c │ ├── Zip.h │ └── inline_magic.h ├── theme │ ├── common │ │ ├── fonts │ │ │ ├── DroidSansFallback.ttf │ │ │ ├── DroidSansMono.ttf │ │ │ └── RobotoCondensed-Regular.ttf │ │ ├── languages │ │ │ ├── en.xml │ │ │ ├── es.xml │ │ │ ├── ru.xml │ │ │ └── zh_CN.xml │ │ └── portrait.xml │ └── portrait_hdpi │ │ ├── images │ │ ├── back.png │ │ ├── backspace.png │ │ ├── checkbox_false.png │ │ ├── checkbox_true.png │ │ ├── console.png │ │ ├── cursor.png │ │ ├── enter.png │ │ ├── handle.png │ │ ├── home.png │ │ ├── indeterminate001.png │ │ ├── indeterminate002.png │ │ ├── indeterminate003.png │ │ ├── indeterminate004.png │ │ ├── indeterminate005.png │ │ ├── indeterminate006.png │ │ ├── indeterminate007.png │ │ ├── indeterminate008.png │ │ ├── indeterminate009.png │ │ ├── indeterminate010.png │ │ ├── indeterminate011.png │ │ ├── indeterminate012.png │ │ ├── logo.png │ │ ├── main_button.png │ │ ├── main_button_half_height.png │ │ ├── main_button_half_height_full_width.png │ │ ├── progress_empty.png │ │ ├── progress_fill.png │ │ ├── radio_false.png │ │ ├── radio_true.png │ │ ├── shift.png │ │ ├── shift_fill.png │ │ ├── slider.png │ │ ├── slider_touch.png │ │ ├── slider_used.png │ │ ├── space.png │ │ ├── splashlogo.png │ │ ├── tab_3.png │ │ ├── tab_4.png │ │ ├── tab_display.png │ │ ├── tab_general.png │ │ ├── tab_language.png │ │ ├── tab_timezone.png │ │ ├── tab_vibration.png │ │ └── unlock_icon.png │ │ ├── splash.xml │ │ └── ui.xml ├── twrp-functions.cpp ├── twrp-functions.hpp └── variables.h ├── mbtool ├── CMakeLists.txt ├── external.yaml ├── include │ ├── boot │ │ ├── appsync.h │ │ ├── appsyncmanager.h │ │ ├── audit │ │ │ └── libaudit.h │ │ ├── auditd.h │ │ ├── daemon.h │ │ ├── daemon_v3.h │ │ ├── emergency.h │ │ ├── init.h │ │ ├── init │ │ │ ├── cutils │ │ │ │ └── uevent.h │ │ │ ├── devices.h │ │ │ ├── uevent.h │ │ │ ├── uevent_listener.h │ │ │ └── unique_fd.h │ │ ├── mount_fstab.h │ │ ├── packages.h │ │ ├── properties.h │ │ ├── reboot.h │ │ ├── uevent_dump.h │ │ └── uevent_thread.h │ ├── protocol │ │ ├── crypto_decrypt_generated.h │ │ ├── crypto_get_pw_type_generated.h │ │ ├── file_chmod_generated.h │ │ ├── file_close_generated.h │ │ ├── file_open_generated.h │ │ ├── file_read_generated.h │ │ ├── file_seek_generated.h │ │ ├── file_selinux_get_label_generated.h │ │ ├── file_selinux_set_label_generated.h │ │ ├── file_stat_generated.h │ │ ├── file_write_generated.h │ │ ├── mb_get_booted_rom_id_generated.h │ │ ├── mb_get_installed_roms_generated.h │ │ ├── mb_get_packages_count_generated.h │ │ ├── mb_get_version_generated.h │ │ ├── mb_set_kernel_generated.h │ │ ├── mb_switch_rom_generated.h │ │ ├── mb_wipe_rom_generated.h │ │ ├── path_chmod_generated.h │ │ ├── path_copy_generated.h │ │ ├── path_delete_generated.h │ │ ├── path_get_directory_size_generated.h │ │ ├── path_mkdir_generated.h │ │ ├── path_readlink_generated.h │ │ ├── path_selinux_get_label_generated.h │ │ ├── path_selinux_set_label_generated.h │ │ ├── reboot_generated.h │ │ ├── request_generated.h │ │ ├── response_generated.h │ │ ├── shutdown_generated.h │ │ └── signed_exec_generated.h │ ├── recovery │ │ ├── archive_util.h │ │ ├── backup.h │ │ ├── bootimg_util.h │ │ ├── image.h │ │ ├── installer.h │ │ ├── installer_util.h │ │ ├── ramdisk_patcher.h │ │ ├── rom_installer.h │ │ ├── update_binary.h │ │ ├── update_binary_tool.h │ │ └── utilities.h │ └── util │ │ ├── android_api.h │ │ ├── legacy_property_service.h │ │ ├── multiboot.h │ │ ├── property_service.h │ │ ├── romconfig.h │ │ ├── roms.h │ │ ├── sepolpatch.h │ │ ├── signature.h │ │ ├── switcher.h │ │ ├── validcerts.h │ │ └── wipe.h └── src │ ├── boot │ ├── appsync.cpp │ ├── appsyncmanager.cpp │ ├── audit │ │ └── libaudit.cpp │ ├── auditd.cpp │ ├── daemon.cpp │ ├── daemon_v3.cpp │ ├── emergency.cpp │ ├── init.cpp │ ├── init │ │ ├── cutils │ │ │ └── uevent.cpp │ │ ├── devices.cpp │ │ └── uevent_listener.cpp │ ├── mount_fstab.cpp │ ├── packages.cpp │ ├── properties.cpp │ ├── reboot.cpp │ ├── uevent_dump.cpp │ └── uevent_thread.cpp │ ├── main.cpp │ ├── recovery │ ├── archive_util.cpp │ ├── backup.cpp │ ├── bootimg_util.cpp │ ├── image.cpp │ ├── installer.cpp │ ├── installer_util.cpp │ ├── ramdisk_patcher.cpp │ ├── rom_installer.cpp │ ├── update_binary.cpp │ ├── update_binary_tool.cpp │ └── utilities.cpp │ └── util │ ├── android_api.cpp │ ├── legacy_property_service.cpp │ ├── multiboot.cpp │ ├── property_service.cpp │ ├── romconfig.cpp │ ├── roms.cpp │ ├── sepolpatch.cpp │ ├── signature.cpp │ ├── switcher.cpp │ ├── validcerts.cpp.in │ └── wipe.cpp ├── misc ├── CMakeLists.txt ├── file-contexts-tool │ ├── LICENSE │ ├── README │ ├── callbacks.c │ ├── callbacks.h │ ├── compile.c │ ├── compile.h │ ├── decompile.c │ ├── decompile.h │ ├── label_file.h │ ├── label_internal.h │ ├── label_support.c │ ├── main.c │ ├── pcre_shim.c │ ├── pcre_shim.h │ ├── regex.c │ └── regex.h └── fsck-wrapper │ ├── main.arm64-v8a.S │ ├── main.armeabi-v7a.S │ ├── main.x86.S │ └── main.x86_64.S ├── odinupdater ├── CMakeLists.txt ├── fuse-sparse.cpp └── odinupdater.cpp ├── protocol ├── generate-bindings.sh ├── request.fbs ├── response.fbs └── v3 │ ├── crypto_decrypt.fbs │ ├── crypto_get_pw_type.fbs │ ├── file_chmod.fbs │ ├── file_close.fbs │ ├── file_open.fbs │ ├── file_read.fbs │ ├── file_seek.fbs │ ├── file_selinux_get_label.fbs │ ├── file_selinux_set_label.fbs │ ├── file_stat.fbs │ ├── file_write.fbs │ ├── mb_get_booted_rom_id.fbs │ ├── mb_get_installed_roms.fbs │ ├── mb_get_packages_count.fbs │ ├── mb_get_version.fbs │ ├── mb_set_kernel.fbs │ ├── mb_switch_rom.fbs │ ├── mb_wipe_rom.fbs │ ├── path_chmod.fbs │ ├── path_copy.fbs │ ├── path_delete.fbs │ ├── path_get_directory_size.fbs │ ├── path_mkdir.fbs │ ├── path_readlink.fbs │ ├── path_selinux_get_label.fbs │ ├── path_selinux_set_label.fbs │ ├── reboot.fbs │ ├── shutdown.fbs │ └── signed_exec.fbs ├── signtool ├── CMakeLists.txt └── signtool.cpp ├── thirdparty ├── CMakeLists.txt ├── android-system-core │ ├── .gitignore │ ├── 0001-Make-this-NDK-buildable.patch │ ├── 0004-libcutils-Fix-missing-includes.patch │ └── PKGBUILD ├── boringssl │ ├── .gitignore │ └── PKGBUILD ├── common.android.sh ├── exfat │ ├── .gitignore │ ├── 0001-Don-t-use-Android-log.patch │ ├── 0002-Create-multicall-binary.patch │ ├── 0003-Android-does-not-define-__STDC_VERSION__.patch │ ├── Android.mk │ └── PKGBUILD ├── freetype2 │ ├── .gitignore │ ├── 0001-Add-Android.mk.patch │ └── PKGBUILD ├── fuse │ ├── .gitignore │ ├── Android.mk │ └── PKGBUILD ├── libarchive │ ├── .gitignore │ ├── 0001-Force-UTF-8-as-the-default-charset-on-Android-since-.patch │ ├── 0002-NDK-unified-headers-uses-f_flags-for-struct-statfs.patch │ └── PKGBUILD ├── libdrm │ ├── .gitignore │ ├── 0001-Make-this-NDK-buildable.patch │ └── PKGBUILD ├── liblzma │ ├── 0001-Android-build-system.patch │ └── PKGBUILD ├── libpng │ ├── .gitignore │ ├── 0001-Add-Android.mk.patch │ └── PKGBUILD ├── libsepol │ ├── .gitignore │ ├── 0001-Add-Android.mk.patch │ ├── 0002-Support-Android-M-and-official-v30-sepolicy-format.patch │ └── PKGBUILD ├── lz4 │ ├── .gitignore │ ├── 0001-Add-Android.mk.patch │ └── PKGBUILD ├── makepkg ├── makepkg.conf ├── safe-iop │ ├── .gitignore │ └── PKGBUILD ├── strace │ ├── .gitignore │ ├── 0001-Android.mk-Make-NDK-buildable.patch │ └── PKGBUILD ├── test-runner-image │ ├── .gitignore │ ├── PKGBUILD │ ├── init │ ├── inittab │ └── startup └── valgrind │ ├── .gitignore │ ├── 0001-Fix-build-with-NDK-unified-headers.patch │ └── PKGBUILD └── utilities ├── CMakeLists.txt ├── META-INF └── com │ └── google │ └── android │ └── update-binary ├── create.sh.in └── template └── META-INF └── com └── google └── android ├── aroma-config.in └── aroma ├── fonts ├── big.png └── small.png ├── icons ├── agreement.png ├── alert.png ├── apps.png ├── back.png ├── confirm.png ├── customize.png ├── default.png ├── finish.png ├── info.png ├── install.png ├── installbutton.png ├── license.png ├── menu.png ├── next.png ├── personalize.png ├── update.png └── welcome.png ├── langs ├── cn.lang ├── de.lang ├── en.lang ├── es.lang ├── fr.lang ├── he.lang ├── id.lang ├── it.lang └── ru.lang ├── themes └── chenxiaolong │ └── theme.prop └── ttf └── Roboto-Regular.ttf /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "external/pugixml"] 2 | path = external/pugixml 3 | url = https://github.com/zeux/pugixml.git 4 | [submodule "external/Android-Terminal-Emulator"] 5 | path = external/Android-Terminal-Emulator 6 | url = https://github.com/chenxiaolong/Android-Terminal-Emulator.git 7 | [submodule "external/flatbuffers"] 8 | path = external/flatbuffers 9 | url = https://github.com/google/flatbuffers.git 10 | [submodule "external/minizip"] 11 | path = external/minizip 12 | url = https://github.com/chenxiaolong/minizip.git 13 | [submodule "external/RootShell"] 14 | path = external/RootShell 15 | url = https://github.com/chenxiaolong/RootShell.git 16 | [submodule "external/googletest"] 17 | path = external/googletest 18 | url = https://github.com/chenxiaolong/googletest.git 19 | [submodule "external/rapidjson"] 20 | path = external/rapidjson 21 | url = https://github.com/Tencent/rapidjson.git 22 | [submodule "external/outcome"] 23 | path = external/outcome 24 | url = https://github.com/chenxiaolong/outcome.git 25 | -------------------------------------------------------------------------------- /.tx/config: -------------------------------------------------------------------------------- 1 | [main] 2 | host = https://www.transifex.com 3 | lang_map = he: iw, id_ID: id-rID, pl_PL: pl-rPL, pt_BR: pt-rBR, pt_PT: pt-rPT, ru_RU: ru-rRU, zh_CN: zh-rCN, zh_HK: zh-rHK, zh_TW: zh-rTW 4 | 5 | [dualbootpatcher.android-gui] 6 | file_filter = Android_GUI/src/main/res/values-/strings.xml 7 | source_file = Android_GUI/src/main/res/values/strings.xml 8 | source_lang = en 9 | type = ANDROID 10 | minimum_perc = 60 11 | -------------------------------------------------------------------------------- /Android_GUI/gradle.properties: -------------------------------------------------------------------------------- 1 | android.enableJetifier=true 2 | android.useAndroidX=true -------------------------------------------------------------------------------- /Android_GUI/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Android_GUI/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Jan 19 17:54:22 EST 2019 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip 7 | -------------------------------------------------------------------------------- /Android_GUI/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/ic_launcher-web.png -------------------------------------------------------------------------------- /Android_GUI/illo_tutorial_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/illo_tutorial_settings.png -------------------------------------------------------------------------------- /Android_GUI/material.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/material.xcf -------------------------------------------------------------------------------- /Android_GUI/proguard-project.txt: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | 22 | -dontwarn com.squareup.okhttp.** 23 | -------------------------------------------------------------------------------- /Android_GUI/settings.gradle: -------------------------------------------------------------------------------- 1 | include ":emulatorview" 2 | include ":rootshell" 3 | 4 | project(":emulatorview").projectDir = file("../external/Android-Terminal-Emulator/emulatorview") 5 | project(":rootshell").projectDir = file("../external/RootShell") -------------------------------------------------------------------------------- /Android_GUI/src/main/java/com/github/chenxiaolong/dualbootpatcher/dialogs/DialogListenerTarget.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Andrew Gunnerson 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package com.github.chenxiaolong.dualbootpatcher.dialogs 19 | 20 | enum class DialogListenerTarget { 21 | NONE, 22 | ACTIVITY, 23 | FRAGMENT 24 | } -------------------------------------------------------------------------------- /Android_GUI/src/main/java/com/github/chenxiaolong/dualbootpatcher/patcher/PatchFileState.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Andrew Gunnerson 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package com.github.chenxiaolong.dualbootpatcher.patcher 19 | 20 | enum class PatchFileState { 21 | QUEUED, 22 | PENDING, 23 | IN_PROGRESS, 24 | COMPLETED, 25 | CANCELLED 26 | } -------------------------------------------------------------------------------- /Android_GUI/src/main/java/com/github/chenxiaolong/dualbootpatcher/patcher/PatcherOptionsValidationState.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015-2018 Andrew Gunnerson 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package com.github.chenxiaolong.dualbootpatcher.patcher 19 | 20 | enum class PatcherOptionsValidationState { 21 | VALID, 22 | INVALID, 23 | EMPTY, 24 | } -------------------------------------------------------------------------------- /Android_GUI/src/main/java/com/github/chenxiaolong/dualbootpatcher/socket/interfaces/PackageCounts.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014-2016 Andrew Gunnerson 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package com.github.chenxiaolong.dualbootpatcher.socket.interfaces 19 | 20 | class PackageCounts( 21 | val systemPackages: Int, 22 | val systemUpdatePackages: Int, 23 | val nonSystemPackages: Int 24 | ) -------------------------------------------------------------------------------- /Android_GUI/src/main/java/com/github/chenxiaolong/dualbootpatcher/socket/interfaces/SetKernelResult.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014-2016 Andrew Gunnerson 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package com.github.chenxiaolong.dualbootpatcher.socket.interfaces 19 | 20 | enum class SetKernelResult { 21 | UNKNOWN_BOOT_PARTITION, 22 | SUCCEEDED, 23 | FAILED 24 | } -------------------------------------------------------------------------------- /Android_GUI/src/main/java/com/github/chenxiaolong/dualbootpatcher/socket/interfaces/SignedExecOutputListener.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014-2016 Andrew Gunnerson 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package com.github.chenxiaolong.dualbootpatcher.socket.interfaces 19 | 20 | interface SignedExecOutputListener { 21 | fun onOutputLine(line: String) 22 | } -------------------------------------------------------------------------------- /Android_GUI/src/main/java/com/github/chenxiaolong/dualbootpatcher/socket/interfaces/SwitchRomResult.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014-2016 Andrew Gunnerson 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package com.github.chenxiaolong.dualbootpatcher.socket.interfaces 19 | 20 | enum class SwitchRomResult { 21 | UNKNOWN_BOOT_PARTITION, 22 | SUCCEEDED, 23 | FAILED, 24 | CHECKSUM_INVALID, 25 | CHECKSUM_NOT_FOUND 26 | } -------------------------------------------------------------------------------- /Android_GUI/src/main/java/com/github/chenxiaolong/dualbootpatcher/socket/interfaces/WipeResult.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014-2016 Andrew Gunnerson 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package com.github.chenxiaolong.dualbootpatcher.socket.interfaces 19 | 20 | class WipeResult( 21 | // Targets as listed in WipeTarget 22 | val succeeded: ShortArray, 23 | val failed: ShortArray 24 | ) -------------------------------------------------------------------------------- /Android_GUI/src/main/java/mbtool/daemon/v3/CryptoPwType.java: -------------------------------------------------------------------------------- 1 | // automatically generated by the FlatBuffers compiler, do not modify 2 | 3 | package mbtool.daemon.v3; 4 | 5 | public final class CryptoPwType { 6 | private CryptoPwType() { } 7 | public static final short DEFAULT = 0; 8 | public static final short PASSWORD = 1; 9 | public static final short PATTERN = 2; 10 | public static final short PIN = 3; 11 | public static final short UNKNOWN = 4; 12 | 13 | public static final String[] names = { "DEFAULT", "PASSWORD", "PATTERN", "PIN", "UNKNOWN", }; 14 | 15 | public static String name(int e) { return names[e]; } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /Android_GUI/src/main/java/mbtool/daemon/v3/FileOpenFlag.java: -------------------------------------------------------------------------------- 1 | // automatically generated by the FlatBuffers compiler, do not modify 2 | 3 | package mbtool.daemon.v3; 4 | 5 | public final class FileOpenFlag { 6 | private FileOpenFlag() { } 7 | public static final short APPEND = 0; 8 | public static final short CREAT = 1; 9 | public static final short EXCL = 2; 10 | public static final short RDONLY = 3; 11 | public static final short RDWR = 4; 12 | public static final short TRUNC = 5; 13 | public static final short WRONLY = 6; 14 | 15 | public static final String[] names = { "APPEND", "CREAT", "EXCL", "RDONLY", "RDWR", "TRUNC", "WRONLY", }; 16 | 17 | public static String name(int e) { return names[e]; } 18 | } 19 | 20 | -------------------------------------------------------------------------------- /Android_GUI/src/main/java/mbtool/daemon/v3/FileSeekWhence.java: -------------------------------------------------------------------------------- 1 | // automatically generated by the FlatBuffers compiler, do not modify 2 | 3 | package mbtool.daemon.v3; 4 | 5 | public final class FileSeekWhence { 6 | private FileSeekWhence() { } 7 | public static final short SEEK_SET = 0; 8 | public static final short SEEK_CUR = 1; 9 | public static final short SEEK_END = 2; 10 | 11 | public static final String[] names = { "SEEK_SET", "SEEK_CUR", "SEEK_END", }; 12 | 13 | public static String name(int e) { return names[e]; } 14 | } 15 | 16 | -------------------------------------------------------------------------------- /Android_GUI/src/main/java/mbtool/daemon/v3/Invalid.java: -------------------------------------------------------------------------------- 1 | // automatically generated by the FlatBuffers compiler, do not modify 2 | 3 | package mbtool.daemon.v3; 4 | 5 | import java.nio.*; 6 | import java.lang.*; 7 | import java.util.*; 8 | import com.google.flatbuffers.*; 9 | 10 | @SuppressWarnings("unused") 11 | public final class Invalid extends Table { 12 | public static Invalid getRootAsInvalid(ByteBuffer _bb) { return getRootAsInvalid(_bb, new Invalid()); } 13 | public static Invalid getRootAsInvalid(ByteBuffer _bb, Invalid obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } 14 | public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } 15 | public Invalid __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } 16 | 17 | 18 | public static void startInvalid(FlatBufferBuilder builder) { builder.startObject(0); } 19 | public static int endInvalid(FlatBufferBuilder builder) { 20 | int o = builder.endObject(); 21 | return o; 22 | } 23 | } 24 | 25 | -------------------------------------------------------------------------------- /Android_GUI/src/main/java/mbtool/daemon/v3/MbSwitchRomResult.java: -------------------------------------------------------------------------------- 1 | // automatically generated by the FlatBuffers compiler, do not modify 2 | 3 | package mbtool.daemon.v3; 4 | 5 | public final class MbSwitchRomResult { 6 | private MbSwitchRomResult() { } 7 | public static final short SUCCEEDED = 0; 8 | public static final short FAILED = 1; 9 | public static final short CHECKSUM_NOT_FOUND = 2; 10 | public static final short CHECKSUM_INVALID = 3; 11 | 12 | public static final String[] names = { "SUCCEEDED", "FAILED", "CHECKSUM_NOT_FOUND", "CHECKSUM_INVALID", }; 13 | 14 | public static String name(int e) { return names[e]; } 15 | } 16 | 17 | -------------------------------------------------------------------------------- /Android_GUI/src/main/java/mbtool/daemon/v3/MbWipeTarget.java: -------------------------------------------------------------------------------- 1 | // automatically generated by the FlatBuffers compiler, do not modify 2 | 3 | package mbtool.daemon.v3; 4 | 5 | public final class MbWipeTarget { 6 | private MbWipeTarget() { } 7 | public static final short SYSTEM = 0; 8 | public static final short CACHE = 1; 9 | public static final short DATA = 2; 10 | public static final short DALVIK_CACHE = 3; 11 | public static final short MULTIBOOT = 4; 12 | 13 | public static final String[] names = { "SYSTEM", "CACHE", "DATA", "DALVIK_CACHE", "MULTIBOOT", }; 14 | 15 | public static String name(int e) { return names[e]; } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /Android_GUI/src/main/java/mbtool/daemon/v3/PathDeleteFlag.java: -------------------------------------------------------------------------------- 1 | // automatically generated by the FlatBuffers compiler, do not modify 2 | 3 | package mbtool.daemon.v3; 4 | 5 | public final class PathDeleteFlag { 6 | private PathDeleteFlag() { } 7 | public static final short REMOVE = 0; 8 | public static final short UNLINK = 1; 9 | public static final short RMDIR = 2; 10 | public static final short RECURSIVE = 3; 11 | 12 | public static final String[] names = { "REMOVE", "UNLINK", "RMDIR", "RECURSIVE", }; 13 | 14 | public static String name(int e) { return names[e]; } 15 | } 16 | 17 | -------------------------------------------------------------------------------- /Android_GUI/src/main/java/mbtool/daemon/v3/RebootError.java: -------------------------------------------------------------------------------- 1 | // automatically generated by the FlatBuffers compiler, do not modify 2 | 3 | package mbtool.daemon.v3; 4 | 5 | import java.nio.*; 6 | import java.lang.*; 7 | import java.util.*; 8 | import com.google.flatbuffers.*; 9 | 10 | @SuppressWarnings("unused") 11 | public final class RebootError extends Table { 12 | public static RebootError getRootAsRebootError(ByteBuffer _bb) { return getRootAsRebootError(_bb, new RebootError()); } 13 | public static RebootError getRootAsRebootError(ByteBuffer _bb, RebootError obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } 14 | public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } 15 | public RebootError __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } 16 | 17 | 18 | public static void startRebootError(FlatBufferBuilder builder) { builder.startObject(0); } 19 | public static int endRebootError(FlatBufferBuilder builder) { 20 | int o = builder.endObject(); 21 | return o; 22 | } 23 | } 24 | 25 | -------------------------------------------------------------------------------- /Android_GUI/src/main/java/mbtool/daemon/v3/RebootType.java: -------------------------------------------------------------------------------- 1 | // automatically generated by the FlatBuffers compiler, do not modify 2 | 3 | package mbtool.daemon.v3; 4 | 5 | public final class RebootType { 6 | private RebootType() { } 7 | public static final short FRAMEWORK = 0; 8 | public static final short INIT = 1; 9 | public static final short DIRECT = 2; 10 | 11 | public static final String[] names = { "FRAMEWORK", "INIT", "DIRECT", }; 12 | 13 | public static String name(int e) { return names[e]; } 14 | } 15 | 16 | -------------------------------------------------------------------------------- /Android_GUI/src/main/java/mbtool/daemon/v3/ShutdownType.java: -------------------------------------------------------------------------------- 1 | // automatically generated by the FlatBuffers compiler, do not modify 2 | 3 | package mbtool.daemon.v3; 4 | 5 | public final class ShutdownType { 6 | private ShutdownType() { } 7 | public static final short INIT = 0; 8 | public static final short DIRECT = 1; 9 | public static final short FRAMEWORK = 2; 10 | 11 | public static final String[] names = { "INIT", "DIRECT", "FRAMEWORK", }; 12 | 13 | public static String name(int e) { return names[e]; } 14 | } 15 | 16 | -------------------------------------------------------------------------------- /Android_GUI/src/main/java/mbtool/daemon/v3/SignedExecResult.java: -------------------------------------------------------------------------------- 1 | // automatically generated by the FlatBuffers compiler, do not modify 2 | 3 | package mbtool.daemon.v3; 4 | 5 | public final class SignedExecResult { 6 | private SignedExecResult() { } 7 | public static final short PROCESS_EXITED = 0; 8 | public static final short PROCESS_KILLED_BY_SIGNAL = 1; 9 | public static final short INVALID_SIGNATURE = 2; 10 | public static final short OTHER_ERROR = 3; 11 | 12 | public static final String[] names = { "PROCESS_EXITED", "PROCESS_KILLED_BY_SIGNAL", "INVALID_SIGNATURE", "OTHER_ERROR", }; 13 | 14 | public static String name(int e) { return names[e]; } 15 | } 16 | 17 | -------------------------------------------------------------------------------- /Android_GUI/src/main/java/mbtool/daemon/v3/Unsupported.java: -------------------------------------------------------------------------------- 1 | // automatically generated by the FlatBuffers compiler, do not modify 2 | 3 | package mbtool.daemon.v3; 4 | 5 | import java.nio.*; 6 | import java.lang.*; 7 | import java.util.*; 8 | import com.google.flatbuffers.*; 9 | 10 | @SuppressWarnings("unused") 11 | public final class Unsupported extends Table { 12 | public static Unsupported getRootAsUnsupported(ByteBuffer _bb) { return getRootAsUnsupported(_bb, new Unsupported()); } 13 | public static Unsupported getRootAsUnsupported(ByteBuffer _bb, Unsupported obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } 14 | public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; } 15 | public Unsupported __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } 16 | 17 | 18 | public static void startUnsupported(FlatBufferBuilder builder) { builder.startObject(0); } 19 | public static int endUnsupported(FlatBufferBuilder builder) { 20 | int o = builder.endObject(); 21 | return o; 22 | } 23 | } 24 | 25 | -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/about.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/action_bar_cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/action_bar_cancel.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/action_bar_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/action_bar_check.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/check.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/dashboard.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/drawer_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/drawer_shadow.9.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/exit.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/green_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/green_check.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/ic_action_action_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/ic_action_action_lock.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/ic_check_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/ic_check_white_48dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/ic_more_vert_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/ic_more_vert_black_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/ic_more_vert_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/ic_more_vert_grey600_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/ic_plus_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/ic_plus_white_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/ic_system_update_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/ic_system_update_white_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/refresh.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/rom_details_action_backup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/rom_details_action_backup.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/rom_details_action_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/rom_details_action_home.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/rom_details_action_set_kernel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/rom_details_action_set_kernel.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/rom_details_action_switch_rom_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/rom_details_action_switch_rom_white_48dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/rom_details_action_update_ramdisk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/rom_details_action_update_ramdisk.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/rom_details_action_wipe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/rom_details_action_wipe.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/settings.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/split.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/split.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-hdpi/storage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-hdpi/storage.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/about.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/action_bar_cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/action_bar_cancel.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/action_bar_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/action_bar_check.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/check.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/dashboard.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/drawer_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/drawer_shadow.9.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/exit.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/green_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/green_check.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/ic_action_action_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/ic_action_action_lock.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/ic_check_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/ic_check_white_48dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/ic_more_vert_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/ic_more_vert_black_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/ic_more_vert_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/ic_more_vert_grey600_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/ic_plus_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/ic_plus_white_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/ic_system_update_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/ic_system_update_white_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/refresh.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/rom_details_action_backup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/rom_details_action_backup.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/rom_details_action_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/rom_details_action_home.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/rom_details_action_set_kernel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/rom_details_action_set_kernel.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/rom_details_action_switch_rom_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/rom_details_action_switch_rom_white_48dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/rom_details_action_update_ramdisk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/rom_details_action_update_ramdisk.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/rom_details_action_wipe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/rom_details_action_wipe.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/settings.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/split.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/split.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-mdpi/storage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-mdpi/storage.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/about.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/action_bar_cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/action_bar_cancel.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/action_bar_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/action_bar_check.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/check.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/dashboard.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/drawer_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/drawer_shadow.9.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/exit.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/green_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/green_check.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/ic_action_action_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/ic_action_action_lock.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/ic_check_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/ic_check_white_48dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/ic_more_vert_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/ic_more_vert_black_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/ic_more_vert_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/ic_more_vert_grey600_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/ic_plus_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/ic_plus_white_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/ic_system_update_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/ic_system_update_white_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/refresh.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/rom_details_action_backup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/rom_details_action_backup.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/rom_details_action_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/rom_details_action_home.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/rom_details_action_set_kernel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/rom_details_action_set_kernel.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/rom_details_action_switch_rom_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/rom_details_action_switch_rom_white_48dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/rom_details_action_update_ramdisk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/rom_details_action_update_ramdisk.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/rom_details_action_wipe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/rom_details_action_wipe.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/settings.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/split.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/split.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xhdpi/storage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xhdpi/storage.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/about.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/action_bar_cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/action_bar_cancel.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/action_bar_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/action_bar_check.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/check.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/dashboard.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/drawer_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/drawer_shadow.9.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/exit.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/green_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/green_check.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/ic_action_action_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/ic_action_action_lock.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/ic_check_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/ic_check_white_48dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/ic_more_vert_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/ic_more_vert_black_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/ic_more_vert_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/ic_more_vert_grey600_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/ic_plus_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/ic_plus_white_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/ic_system_update_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/ic_system_update_white_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/refresh.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/rom_details_action_backup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/rom_details_action_backup.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/rom_details_action_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/rom_details_action_home.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/rom_details_action_set_kernel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/rom_details_action_set_kernel.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/rom_details_action_switch_rom_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/rom_details_action_switch_rom_white_48dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/rom_details_action_update_ramdisk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/rom_details_action_update_ramdisk.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/rom_details_action_wipe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/rom_details_action_wipe.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/settings.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/split.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/split.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxhdpi/storage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxhdpi/storage.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/about.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/action_bar_cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/action_bar_cancel.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/action_bar_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/action_bar_check.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/check.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/dashboard.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/exit.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/green_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/green_check.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/ic_action_action_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/ic_action_action_lock.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/ic_check_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/ic_check_white_48dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/ic_more_vert_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/ic_more_vert_black_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/ic_more_vert_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/ic_more_vert_grey600_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/ic_plus_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/ic_plus_white_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/ic_system_update_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/ic_system_update_white_24dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/refresh.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/rom_details_action_backup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/rom_details_action_backup.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/rom_details_action_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/rom_details_action_home.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/rom_details_action_set_kernel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/rom_details_action_set_kernel.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/rom_details_action_switch_rom_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/rom_details_action_switch_rom_white_48dp.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/rom_details_action_update_ramdisk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/rom_details_action_update_ramdisk.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/rom_details_action_wipe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/rom_details_action_wipe.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/settings.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/split.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/split.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable-xxxhdpi/storage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable-xxxhdpi/storage.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable/logo_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable/logo_big.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable/material.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable/material.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/drawable/rom_android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/Android_GUI/src/main/res/drawable/rom_android.png -------------------------------------------------------------------------------- /Android_GUI/src/main/res/layout/card_v7_rom_spacer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 19 | 20 | -------------------------------------------------------------------------------- /Android_GUI/src/main/res/values-sw600dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Android_GUI/src/main/res/values-sw720dp-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 128dp 8 | 9 | 10 | -------------------------------------------------------------------------------- /CONTRIBUTORS.md: -------------------------------------------------------------------------------- 1 | Thanks to everyone for the help! 2 | 3 | * bejda 4 | - http://forum.xda-developers.com/member.php?u=3648432 5 | - French translations 6 | 7 | * franzyroy 8 | - http://forum.xda-developers.com/member.php?u=2875350 9 | - French translations 10 | 11 | * peppe130 12 | - http://forum.xda-developers.com/member.php?u=5650065 13 | - Italian translations 14 | 15 | * sronweb 16 | - http://forum.xda-developers.com/member.php?u=2778919 17 | - Italian translations 18 | 19 | * Technical 20 | - http://forum.xda-developers.com/member.php?u=1011179 21 | - Portuguese translations 22 | 23 | * remorema 24 | - http://forum.xda-developers.com/member.php?u=1634956 25 | - Portuguese translations 26 | 27 | * Chahk 28 | - http://forum.xda-developers.com/member.php?u=1700634 29 | - Russian translations 30 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | licenses/LICENSE -------------------------------------------------------------------------------- /bootimgtool/bootimgtool.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | 12 | 13 | 14 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /bootimgtool/bootimgtool.rc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | IDI_ICON1 ICON DISCARDABLE "../icons/icon.ico" 4 | CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "bootimgtool.manifest" 5 | -------------------------------------------------------------------------------- /cmake/ConfigAndroid.cmake: -------------------------------------------------------------------------------- 1 | # Install paths 2 | set(DATA_INSTALL_DIR .) 3 | 4 | # We only need the data files in the zip on Android 5 | 6 | set(CPACK_PACKAGE_NAME "data") 7 | set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Data files for DualBootPatcher") 8 | set(CPACK_GENERATOR "TXZ") 9 | set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") 10 | set(CPACK_OUTPUT_FILE_PREFIX "${CMAKE_BINARY_DIR}/assets") 11 | -------------------------------------------------------------------------------- /cmake/ConfigAndroidApp.cmake: -------------------------------------------------------------------------------- 1 | # Install paths 2 | set(BIN_INSTALL_DIR bin/${ANDROID_ABI}) 3 | set(LIB_INSTALL_DIR lib/${ANDROID_ABI}) 4 | -------------------------------------------------------------------------------- /cmake/ConfigAndroidSystem.cmake: -------------------------------------------------------------------------------- 1 | # Install paths 2 | set(BIN_INSTALL_DIR bin/${ANDROID_ABI}) 3 | set(LIB_INSTALL_DIR lib/${ANDROID_ABI}) 4 | -------------------------------------------------------------------------------- /cmake/ConfigDesktop.cmake: -------------------------------------------------------------------------------- 1 | include(GNUInstallDirs) 2 | 3 | # Portable application 4 | option(MBP_PORTABLE "Build as portable application" OFF) 5 | if(WIN32) 6 | set(MBP_PORTABLE ON CACHE BOOL "Build as portable application" FORCE) 7 | endif() 8 | 9 | # Install paths 10 | 11 | if(${MBP_PORTABLE}) 12 | set(DATA_INSTALL_DIR data) 13 | set(HEADERS_INSTALL_DIR include) 14 | 15 | set(BIN_INSTALL_DIR .) 16 | if(WIN32) 17 | set(LIB_INSTALL_DIR .) 18 | else() 19 | set(LIB_INSTALL_DIR lib) 20 | endif() 21 | else() 22 | set(BIN_INSTALL_DIR ${CMAKE_INSTALL_BINDIR}) 23 | set(LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}) 24 | set(DATA_INSTALL_DIR ${CMAKE_INSTALL_DATADIR}/mbp) 25 | set(HEADERS_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR}) 26 | endif() 27 | 28 | # CPack 29 | 30 | set(CPACK_PACKAGE_NAME "DualBootPatcher") 31 | set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "A patcher for Android ROMs to make them multibootable") 32 | set(CPACK_GENERATOR "ZIP") 33 | -------------------------------------------------------------------------------- /cmake/ConfigHostTools.cmake: -------------------------------------------------------------------------------- 1 | # Install paths 2 | set(BIN_INSTALL_DIR bin) 3 | set(LIB_INSTALL_DIR lib) 4 | -------------------------------------------------------------------------------- /cmake/SignFiles.cmake.in: -------------------------------------------------------------------------------- 1 | # Required parameters: 2 | # - SIGN_FILES: List of files to sign 3 | 4 | cmake_minimum_required(VERSION 3.1) 5 | 6 | include("@CMAKE_SOURCE_DIR@/cmake/SigningConfigReader.cmake") 7 | read_signing_config(MBP_SIGN_JAVA_ "@MBP_SIGN_CONFIG_PATH@") 8 | 9 | set(ENV{MBSIGN_PASSPHRASE} "${MBP_SIGN_JAVA_KEYSTORE_PASSPHRASE}") 10 | 11 | foreach(file ${SIGN_FILES}) 12 | message(STATUS "Signing: ${file}") 13 | execute_process( 14 | COMMAND 15 | "@SIGNTOOL_COMMAND@" 16 | "@PKCS12_KEYSTORE_PATH@" 17 | "${file}" 18 | "${file}.sig" 19 | RESULT_VARIABLE ret 20 | ) 21 | if(NOT ret EQUAL 0) 22 | message(FATAL_ERROR "Failed to sign: ${file}") 23 | endif() 24 | endforeach() 25 | -------------------------------------------------------------------------------- /cmake/SigningConfig.prop.in: -------------------------------------------------------------------------------- 1 | # The code signing variables must now be provided via this configuration file. 2 | # The old method of passing these variables directly to the cmake command is no 3 | # longer supported as it causes the password to be saved in multiple places 4 | # within the build directory. 5 | # 6 | # The format of this configuration file is very simple. Each line is in the 7 | # form: 8 | # 9 | # = 10 | # 11 | # Empty lines and comments (lines beginning with "#") are ignored. 12 | # 13 | # --- 14 | 15 | # Path to the Java keystore containing the signing key 16 | keystore=@REPLACE_ME_KEYSTORE_PATH@ 17 | 18 | # Global passphrase for the keystore 19 | keystore_passphrase=@REPLACE_ME_KEYSTORE_PASSPHRASE@ 20 | 21 | # Key alias for the signing key 22 | key_alias=@REPLACE_ME_KEY_ALIAS@ 23 | 24 | # Passphrase for the signing key 25 | key_passphrase=@REPLACE_ME_KEY_PASSPHRASE@ 26 | -------------------------------------------------------------------------------- /cmake/Testing.cmake: -------------------------------------------------------------------------------- 1 | set(MBP_ENABLE_TESTS TRUE CACHE BOOL "Enable building of tests") 2 | 3 | if(MBP_ENABLE_TESTS) 4 | enable_testing() 5 | 6 | function(add_gtest_test target) 7 | set(output_file "${CMAKE_CURRENT_BINARY_DIR}/${target}.gtest.xml") 8 | 9 | add_test( 10 | NAME "${target}" 11 | COMMAND "${target}" "--gtest_output=xml:${output_file}" 12 | ) 13 | endfunction() 14 | endif() 15 | -------------------------------------------------------------------------------- /cmake/VariableBackup.cmake: -------------------------------------------------------------------------------- 1 | macro(backup_variable variable) 2 | if(DEFINED "${variable}") 3 | set("_${variable}_defined" TRUE) 4 | set("_${variable}_bak" "${${variable}}") 5 | else() 6 | set("_${variable}_defined" FALSE) 7 | endif() 8 | endmacro() 9 | 10 | macro(restore_variable variable) 11 | if("${_${variable}_defined}") 12 | set("${variable}" "${_${variable}_bak}") 13 | unset("_${variable}_bak") 14 | else() 15 | unset("${variable}") 16 | endif() 17 | unset("_${variable}_defined") 18 | endmacro() 19 | -------------------------------------------------------------------------------- /cmake/dependencies/android-system-core.cmake: -------------------------------------------------------------------------------- 1 | find_package(AndroidLibCutils REQUIRED) 2 | find_package(AndroidLibLog REQUIRED) 3 | find_package(AndroidLibUtils REQUIRED) 4 | find_package(AndroidPixelFlinger REQUIRED) 5 | -------------------------------------------------------------------------------- /cmake/dependencies/freetype2.cmake: -------------------------------------------------------------------------------- 1 | find_package(Freetype REQUIRED) 2 | 3 | if(CMAKE_VERSION VERSION_LESS 3.10) 4 | add_library(Freetype::Freetype UNKNOWN IMPORTED) 5 | set_target_properties( 6 | Freetype::Freetype 7 | PROPERTIES 8 | IMPORTED_LINK_INTERFACE_LANGUAGES "C" 9 | IMPORTED_LOCATION "${FREETYPE_LIBRARIES}" 10 | INTERFACE_INCLUDE_DIRECTORIES "${FREETYPE_INCLUDE_DIRS}" 11 | ) 12 | endif() 13 | -------------------------------------------------------------------------------- /cmake/dependencies/fuse.cmake: -------------------------------------------------------------------------------- 1 | find_package(Fuse REQUIRED) 2 | -------------------------------------------------------------------------------- /cmake/dependencies/libarchive.cmake: -------------------------------------------------------------------------------- 1 | find_package(LibArchive REQUIRED) 2 | 3 | add_library(LibArchive::LibArchive UNKNOWN IMPORTED) 4 | set_target_properties( 5 | LibArchive::LibArchive 6 | PROPERTIES 7 | IMPORTED_LINK_INTERFACE_LANGUAGES "C" 8 | IMPORTED_LOCATION "${LibArchive_LIBRARIES}" 9 | INTERFACE_INCLUDE_DIRECTORIES "${LibArchive_INCLUDE_DIRS}" 10 | INTERFACE_LINK_LIBRARIES "LibLZMA::LibLZMA;LZ4::LZ4;ZLIB::ZLIB" 11 | ) 12 | -------------------------------------------------------------------------------- /cmake/dependencies/libdrm.cmake: -------------------------------------------------------------------------------- 1 | find_package(LibDrm REQUIRED) 2 | -------------------------------------------------------------------------------- /cmake/dependencies/liblzma.cmake: -------------------------------------------------------------------------------- 1 | find_package(LibLZMA REQUIRED) 2 | 3 | add_library(LibLZMA::LibLZMA UNKNOWN IMPORTED) 4 | set_target_properties( 5 | LibLZMA::LibLZMA 6 | PROPERTIES 7 | IMPORTED_LINK_INTERFACE_LANGUAGES "C" 8 | IMPORTED_LOCATION "${LIBLZMA_LIBRARIES}" 9 | INTERFACE_INCLUDE_DIRECTORIES "${LIBLZMA_INCLUDE_DIRS}" 10 | ) 11 | -------------------------------------------------------------------------------- /cmake/dependencies/libpng.cmake: -------------------------------------------------------------------------------- 1 | find_package(PNG REQUIRED) 2 | -------------------------------------------------------------------------------- /cmake/dependencies/libsepol.cmake: -------------------------------------------------------------------------------- 1 | find_package(LibSepol REQUIRED) 2 | -------------------------------------------------------------------------------- /cmake/dependencies/lz4.cmake: -------------------------------------------------------------------------------- 1 | find_package(LZ4 REQUIRED) 2 | -------------------------------------------------------------------------------- /cmake/dependencies/openssl.cmake: -------------------------------------------------------------------------------- 1 | if(ANDROID) 2 | message(STATUS "NOTE: Android actually uses BoringSSL") 3 | endif() 4 | 5 | find_package(OpenSSL REQUIRED) 6 | -------------------------------------------------------------------------------- /cmake/dependencies/outcome.cmake: -------------------------------------------------------------------------------- 1 | # outcome is a header only library. We don't use add_subdirectory() because we 2 | # don't need any of the additional things that the CMake scripts provide. 3 | add_library(outcome INTERFACE) 4 | 5 | target_include_directories(outcome INTERFACE external/outcome/single-header) 6 | -------------------------------------------------------------------------------- /cmake/dependencies/qt5.cmake: -------------------------------------------------------------------------------- 1 | # cmake 3.7 has a bug where add_custom_command() appends the target name as an 2 | # argument if running an imported command. This breaks cross compiling for 3 | # Windows because qt5_add_resources() calls add_custom_command() with the 4 | # Qt5::rcc target. 5 | # 6 | # We'll work around this by unsetting CMAKE_CROSSCOMPILING_EMULATOR. 7 | # 8 | # See: https://gitlab.kitware.com/cmake/cmake/issues/16288 9 | if(CMAKE_VERSION VERSION_LESS 3.8 AND CMAKE_CROSSCOMPILING_EMULATOR) 10 | message(WARNING "Applying hack for CMake bug 16288") 11 | set(emulator_bak "${CMAKE_CROSSCOMPILING_EMULATOR}") 12 | unset(CMAKE_CROSSCOMPILING_EMULATOR) 13 | endif() 14 | 15 | find_package(Qt5Core 5.3 REQUIRED) 16 | find_package(Qt5Widgets 5.3 REQUIRED) 17 | 18 | if(emulator_bak) 19 | set(CMAKE_CROSSCOMPILING_EMULATOR "${emulator_bak}") 20 | endif() 21 | -------------------------------------------------------------------------------- /cmake/dependencies/rapidjson.cmake: -------------------------------------------------------------------------------- 1 | # rapidjson is a header only library 2 | add_library(rapidjson INTERFACE) 3 | 4 | target_include_directories(rapidjson INTERFACE external/rapidjson/include) 5 | 6 | # Enable rapidjson std::string API 7 | target_compile_definitions(rapidjson INTERFACE -DRAPIDJSON_HAS_STDSTRING=1) 8 | 9 | if(CMAKE_COMPILER_IS_GNUCXX) 10 | target_compile_options(rapidjson INTERFACE -Wno-zero-as-null-pointer-constant) 11 | endif() 12 | -------------------------------------------------------------------------------- /cmake/dependencies/safe-iop.cmake: -------------------------------------------------------------------------------- 1 | find_package(SafeIop REQUIRED) 2 | -------------------------------------------------------------------------------- /cmake/dependencies/yaml-cpp.cmake: -------------------------------------------------------------------------------- 1 | find_package(YamlCpp REQUIRED) 2 | -------------------------------------------------------------------------------- /cmake/dependencies/zlib.cmake: -------------------------------------------------------------------------------- 1 | find_package(ZLIB REQUIRED) 2 | -------------------------------------------------------------------------------- /cmake/modules/FindFuse.cmake: -------------------------------------------------------------------------------- 1 | # Find the fuse include directory and library 2 | # 3 | # FUSE_INCLUDE_DIR - Where to find 4 | # FUSE_LIBRARIES - List of fuse libraries 5 | # FUSE_FOUND - True if fuse found 6 | 7 | # Find include directory 8 | find_path(FUSE_INCLUDE_DIR NAMES fuse.h) 9 | 10 | # Find library 11 | find_library(FUSE_LIBRARY NAMES fuse libfuse) 12 | 13 | include(FindPackageHandleStandardArgs) 14 | find_package_handle_standard_args( 15 | FUSE DEFAULT_MSG FUSE_INCLUDE_DIR FUSE_LIBRARY 16 | ) 17 | 18 | if(FUSE_FOUND) 19 | set(FUSE_LIBRARIES ${FUSE_LIBRARY}) 20 | 21 | add_library(Fuse::Fuse UNKNOWN IMPORTED) 22 | set_target_properties( 23 | Fuse::Fuse 24 | PROPERTIES 25 | IMPORTED_LINK_INTERFACE_LANGUAGES "C" 26 | IMPORTED_LOCATION "${FUSE_LIBRARY}" 27 | INTERFACE_INCLUDE_DIRECTORIES "${FUSE_INCLUDE_DIR}" 28 | ) 29 | endif() 30 | 31 | mark_as_advanced(FUSE_INCLUDE_DIR FUSE_LIBRARY) 32 | -------------------------------------------------------------------------------- /cmake/modules/FindLZ4.cmake: -------------------------------------------------------------------------------- 1 | # Find the LZ4 include directory and library 2 | # 3 | # LZ4_INCLUDE_DIR - Where to find 4 | # LZ4_LIBRARIES - List of lz4 libraries 5 | # LZ4_FOUND - True if lz4 found 6 | 7 | # Find include directory 8 | find_path(LZ4_INCLUDE_DIR NAMES lz4.h) 9 | 10 | # Find library 11 | find_library(LZ4_LIBRARY NAMES lz4 liblz4) 12 | 13 | include(FindPackageHandleStandardArgs) 14 | find_package_handle_standard_args( 15 | LZ4 DEFAULT_MSG LZ4_INCLUDE_DIR LZ4_LIBRARY 16 | ) 17 | 18 | if(LZ4_FOUND) 19 | set(LZ4_LIBRARIES ${LZ4_LIBRARY}) 20 | 21 | add_library(LZ4::LZ4 UNKNOWN IMPORTED) 22 | set_target_properties( 23 | LZ4::LZ4 24 | PROPERTIES 25 | IMPORTED_LINK_INTERFACE_LANGUAGES "C" 26 | IMPORTED_LOCATION "${LZ4_LIBRARY}" 27 | INTERFACE_INCLUDE_DIRECTORIES "${LZ4_INCLUDE_DIR}" 28 | ) 29 | endif() 30 | 31 | mark_as_advanced(LZ4_INCLUDE_DIR LZ4_LIBRARY) 32 | -------------------------------------------------------------------------------- /cmake/modules/FindLibDrm.cmake: -------------------------------------------------------------------------------- 1 | # Find the libdrm include directory and library 2 | # 3 | # LIBDRM_INCLUDE_DIR - Where to find 4 | # LIBDRM_LIBRARIES - List of libdrm libraries 5 | # LIBDRM_FOUND - True if libdrm found 6 | 7 | # Find include directory 8 | find_path(LIBDRM_INCLUDE_DIR NAMES drm/drm.h) 9 | 10 | # Find library 11 | find_library(LIBDRM_LIBRARY NAMES drm libdrm) 12 | 13 | include(FindPackageHandleStandardArgs) 14 | find_package_handle_standard_args( 15 | LIBDRM DEFAULT_MSG LIBDRM_INCLUDE_DIR LIBDRM_LIBRARY 16 | ) 17 | 18 | if(LIBDRM_FOUND) 19 | set(LIBDRM_LIBRARIES ${LIBDRM_LIBRARY}) 20 | 21 | add_library(LibDrm::LibDrm UNKNOWN IMPORTED) 22 | set_target_properties( 23 | LibDrm::LibDrm 24 | PROPERTIES 25 | IMPORTED_LINK_INTERFACE_LANGUAGES "C" 26 | IMPORTED_LOCATION "${LIBDRM_LIBRARY}" 27 | INTERFACE_INCLUDE_DIRECTORIES "${LIBDRM_INCLUDE_DIR};${LIBDRM_INCLUDE_DIR}/drm" 28 | ) 29 | endif() 30 | 31 | mark_as_advanced(LIBDRM_INCLUDE_DIR LIBDRM_LIBRARY) 32 | -------------------------------------------------------------------------------- /cmake/modules/FindLibSepol.cmake: -------------------------------------------------------------------------------- 1 | # Find the libsepol include directory and library 2 | # 3 | # LIBSEPOL_INCLUDE_DIR - Where to find 4 | # LIBSEPOL_LIBRARIES - List of libsepol libraries 5 | # LIBSEPOL_FOUND - True if libsepol found 6 | 7 | # Find include directory 8 | find_path(LIBSEPOL_INCLUDE_DIR NAMES sepol/sepol.h) 9 | 10 | # Find library 11 | find_library(LIBSEPOL_LIBRARY NAMES sepol libsepol) 12 | 13 | include(FindPackageHandleStandardArgs) 14 | find_package_handle_standard_args( 15 | LIBSEPOL DEFAULT_MSG LIBSEPOL_INCLUDE_DIR LIBSEPOL_LIBRARY 16 | ) 17 | 18 | if(LIBSEPOL_FOUND) 19 | set(LIBSEPOL_LIBRARIES ${LIBSEPOL_LIBRARY}) 20 | 21 | add_library(LibSepol::LibSepol UNKNOWN IMPORTED) 22 | set_target_properties( 23 | LibSepol::LibSepol 24 | PROPERTIES 25 | IMPORTED_LINK_INTERFACE_LANGUAGES "C" 26 | IMPORTED_LOCATION "${LIBSEPOL_LIBRARY}" 27 | INTERFACE_INCLUDE_DIRECTORIES "${LIBSEPOL_INCLUDE_DIR}" 28 | ) 29 | endif() 30 | 31 | mark_as_advanced(LIBSEPOL_INCLUDE_DIR LIBSEPOL_LIBRARY) 32 | -------------------------------------------------------------------------------- /cmake/modules/FindSafeIop.cmake: -------------------------------------------------------------------------------- 1 | # Find the safe-iop include directory and library 2 | # 3 | # SAFE_IOP_INCLUDE_DIR - Where to find 4 | # SAFE_IOP_LIBRARIES - List of safe-iop libraries 5 | # SAFE_IOP_FOUND - True if safe-iop found 6 | 7 | # Find include directory 8 | find_path(SAFE_IOP_INCLUDE_DIR NAMES safe_iop.h) 9 | 10 | # Find library 11 | find_library(SAFE_IOP_LIBRARY NAMES safe_iop libsafe_iop) 12 | 13 | include(FindPackageHandleStandardArgs) 14 | find_package_handle_standard_args( 15 | SAFE_IOP DEFAULT_MSG SAFE_IOP_INCLUDE_DIR SAFE_IOP_LIBRARY 16 | ) 17 | 18 | if(SAFE_IOP_FOUND) 19 | set(SAFE_IOP_LIBRARIES ${SAFE_IOP_LIBRARY}) 20 | 21 | add_library(SafeIop::SafeIop UNKNOWN IMPORTED) 22 | set_target_properties( 23 | SafeIop::SafeIop 24 | PROPERTIES 25 | IMPORTED_LINK_INTERFACE_LANGUAGES "C" 26 | IMPORTED_LOCATION "${SAFE_IOP_LIBRARY}" 27 | INTERFACE_INCLUDE_DIRECTORIES "${SAFE_IOP_INCLUDE_DIR}" 28 | ) 29 | endif() 30 | 31 | mark_as_advanced(SAFE_IOP_INCLUDE_DIR SAFE_IOP_LIBRARY) 32 | -------------------------------------------------------------------------------- /cmake/modules/FindYamlCpp.cmake: -------------------------------------------------------------------------------- 1 | # Find the yaml-cpp include directory and library 2 | # 3 | # YAML_CPP_INCLUDE_DIR - Where to find 4 | # YAML_CPP_LIBRARIES - List of yaml-cpp libraries 5 | # YAML_CPP_FOUND - True if yaml-cpp found 6 | 7 | # Find include directory 8 | find_path(YAML_CPP_INCLUDE_DIR NAMES yaml-cpp/yaml.h) 9 | 10 | # Find library 11 | find_library(YAML_CPP_LIBRARY NAMES yaml-cpp libyaml-cpp) 12 | 13 | include(FindPackageHandleStandardArgs) 14 | find_package_handle_standard_args( 15 | YAML_CPP DEFAULT_MSG YAML_CPP_INCLUDE_DIR YAML_CPP_LIBRARY 16 | ) 17 | 18 | if(YAML_CPP_FOUND) 19 | set(YAML_CPP_LIBRARIES ${YAML_CPP_LIBRARY}) 20 | 21 | add_library(YamlCpp::YamlCpp UNKNOWN IMPORTED) 22 | set_target_properties( 23 | YamlCpp::YamlCpp 24 | PROPERTIES 25 | IMPORTED_LINK_INTERFACE_LANGUAGES "CXX" 26 | IMPORTED_LOCATION "${YAML_CPP_LIBRARY}" 27 | INTERFACE_INCLUDE_DIRECTORIES "${YAML_CPP_INCLUDE_DIR}" 28 | ) 29 | endif() 30 | 31 | mark_as_advanced(YAML_CPP_INCLUDE_DIR YAML_CPP_LIBRARY) 32 | -------------------------------------------------------------------------------- /data/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Scripts 2 | if(MBP_TOP_LEVEL_BUILD) 3 | # Copy scripts to binary dir so the signing process won't clobber the source 4 | # directory with .sig files 5 | file(COPY scripts DESTINATION .) 6 | 7 | set(scripts 8 | scripts/bb-wrapper.sh 9 | ) 10 | 11 | set(source_files) 12 | set(target_files) 13 | 14 | foreach(file ${scripts}) 15 | set(source_file "${CMAKE_CURRENT_BINARY_DIR}/${file}") 16 | set(target_file "${CMAKE_CURRENT_BINARY_DIR}/${file}.sig") 17 | 18 | list(APPEND source_files "${source_file}") 19 | list(APPEND target_files "${target_file}") 20 | 21 | get_filename_component(parent "${file}" DIRECTORY) 22 | 23 | install( 24 | FILES "${source_file}" "${target_file}" 25 | DESTINATION ${DATA_INSTALL_DIR}/${parent}/ 26 | COMPONENT Libraries 27 | ) 28 | endforeach() 29 | 30 | add_sign_files_target( 31 | sign_scripts 32 | ${source_files} 33 | ) 34 | 35 | add_subdirectory(devices) 36 | endif() 37 | -------------------------------------------------------------------------------- /data/devices/amazon.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Kindle Fire HDX 7 3 | id: thor 4 | codenames: 5 | - thor 6 | architecture: armeabi-v7a 7 | 8 | block_devs: 9 | base_dirs: 10 | - /dev/block/platform/msm_sdcc.1/by-name 11 | system: 12 | - /dev/block/platform/msm_sdcc.1/by-name/system 13 | - /dev/block/mmcblk0p22 14 | cache: 15 | - /dev/block/platform/msm_sdcc.1/by-name/cache 16 | - /dev/block/mmcblk0p21 17 | data: 18 | - /dev/block/platform/msm_sdcc.1/by-name/data 19 | - /dev/block/mmcblk0p23 20 | boot: 21 | - /dev/block/platform/msm_sdcc.1/by-name/boot 22 | - /dev/block/mmcblk0p8 23 | recovery: 24 | - /dev/block/platform/msm_sdcc.1/by-name/recovery 25 | - /dev/block/mmcblk0p18 26 | 27 | boot_ui: 28 | supported: true 29 | graphics_backends: 30 | - fbdev 31 | pixel_format: RGBX_8888 32 | brightness_path: /sys/class/leds/lcd-backlight/brightness 33 | default_brightness: 255 34 | theme: portrait_hdpi 35 | -------------------------------------------------------------------------------- /data/devices/archos.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Archos Helium 55 plus 3 | id: Helium_55+ 4 | codenames: 5 | - 55_Helium_plus 6 | - Helium_55_plus 7 | - MTKAC55HEPLUS 8 | - ac55heplus 9 | - 55_plus 10 | - 55plus 11 | - 55+ 12 | architecture: arm64-v8a 13 | 14 | block_devs: 15 | base_dirs: 16 | - /dev/block/platform/mtk-msdc.0/by-name 17 | system: 18 | - /dev/block/platform/mtk-msdc.0/by-name/system 19 | - /dev/block/mmcblk0p20 20 | cache: 21 | - /dev/block/platform/mtk-msdc.0/by-name/cache 22 | - /dev/block/mmcblk0p21 23 | data: 24 | - /dev/block/platform/mtk-msdc.0/by-name/userdata 25 | - /dev/block/mmcblk0p22 26 | boot: 27 | - /dev/block/platform/mtk-msdc.0/by-name/boot 28 | - /dev/block/mmcblk0p7 29 | recovery: 30 | - /dev/block/platform/mtk-msdc.0/by-name/recovery 31 | - /dev/block/mmcblk0p8 32 | -------------------------------------------------------------------------------- /data/devices/homtom.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Homtom HT10 3 | id: aeon 4 | codenames: 5 | - aeon 6 | architecture: arm64-v8a 7 | 8 | block_devs: 9 | base_dirs: 10 | - /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name 11 | system: 12 | - /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/system 13 | - /dev/block/mmcblk0p27 14 | cache: 15 | - /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/cache 16 | - /dev/block/mmcblk0p28 17 | data: 18 | - /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/userdata 19 | - /dev/block/mmcblk0p29 20 | boot: 21 | - /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/boot 22 | - /dev/block/mmcblk0p21 23 | recovery: 24 | - /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/recovery 25 | - /dev/block/mmcblk0p1 26 | 27 | boot_ui: 28 | supported: true 29 | flags: 30 | - TW_NO_SCREEN_BLANK 31 | graphics_backends: 32 | - fbdev 33 | theme: portrait_hdpi 34 | -------------------------------------------------------------------------------- /devicesgen/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(${MBP_BUILD_TARGET} STREQUAL hosttools) 2 | add_executable(devicesgen devicesgen.cpp) 3 | 4 | target_link_libraries( 5 | devicesgen 6 | interface.global.CXXVersion 7 | mbdevice-shared 8 | YamlCpp::YamlCpp 9 | rapidjson 10 | ) 11 | 12 | set_target_properties( 13 | devicesgen 14 | PROPERTIES 15 | BUILD_WITH_INSTALL_RPATH OFF 16 | INSTALL_RPATH "\$ORIGIN/../lib" 17 | ) 18 | 19 | install( 20 | TARGETS devicesgen 21 | RUNTIME DESTINATION "${BIN_INSTALL_DIR}/" 22 | COMPONENT Applications 23 | ) 24 | endif() 25 | -------------------------------------------------------------------------------- /docker/.dockerignore: -------------------------------------------------------------------------------- 1 | build.sh 2 | common.sh 3 | generate.sh 4 | generated/ 5 | template/ 6 | *.swp 7 | -------------------------------------------------------------------------------- /docker/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -eu 4 | 5 | variants=(base android mingw linux) 6 | 7 | cd "$(dirname "${BASH_SOURCE[0]}")" 8 | source common.sh 9 | 10 | if [[ ! -d generated ]]; then 11 | echo >&2 "Run generate.sh first" 12 | exit 1 13 | fi 14 | 15 | for variant in "${variants[@]}"; do 16 | docker build \ 17 | --force-rm \ 18 | -f "generated/Dockerfile.${variant}" \ 19 | -t "${repo}:${version}-${release}-${variant}" \ 20 | . 21 | done 22 | -------------------------------------------------------------------------------- /docker/common.sh: -------------------------------------------------------------------------------- 1 | repo=chenxiaolong/dualbootpatcher 2 | version=9.3.0 3 | release=14 4 | -------------------------------------------------------------------------------- /docker/generate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -eu 4 | 5 | cd "$(dirname "${BASH_SOURCE[0]}")" 6 | source common.sh 7 | 8 | mkdir -p generated 9 | echo -n > generated/images.properties 10 | 11 | for template in template/Dockerfile.*.in; do 12 | filename=${template##*/} 13 | filename=${filename%.in} 14 | target=generated/${filename} 15 | variant=${filename#Dockerfile.} 16 | 17 | sed \ 18 | -e "s,@REPO@,${repo},g" \ 19 | -e "s,@VERSION@,${version},g" \ 20 | -e "s,@RELEASE@,${release},g" \ 21 | < "${template}" \ 22 | > "${target}" 23 | 24 | echo "${variant}=${repo}:${version}-${release}-${variant}" \ 25 | >> generated/images.properties 26 | done 27 | -------------------------------------------------------------------------------- /docker/template/Dockerfile.linux.in: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2017 Andrew Gunnerson 2 | # 3 | # This program is free software: you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation, either version 3 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program. If not, see . 15 | 16 | FROM @REPO@:@VERSION@-@RELEASE@-base 17 | 18 | # Install dependencies 19 | RUN dnf -y install \ 20 | libarchive-devel \ 21 | lz4-devel \ 22 | gtest-devel \ 23 | qt5-qtbase-devel \ 24 | xz-devel \ 25 | && dnf clean all 26 | -------------------------------------------------------------------------------- /docs/build/Git-Clone.md: -------------------------------------------------------------------------------- 1 | # Cloning the Git Repository 2 | 3 | The DualBootPatcher git repository has several git submodules. If the repository has not been cloned yet, pass `--recursive` to the `git clone` command to clone both the repo and the submodules. 4 | 5 | ```sh 6 | git clone --recursive https://github.com/chenxiaolong/DualBootPatcher.git 7 | ``` 8 | 9 | If the repository has been cloned already, simply run the following command to grab all the submodules. This will need to be done after a `git pull` if any of the submodules were updated. 10 | 11 | ```sh 12 | git submodule update --init --recursive 13 | ``` 14 | -------------------------------------------------------------------------------- /docs/build/Patcher-msvc.md: -------------------------------------------------------------------------------- 1 | # Building the Patcher for Windows (with MSVC) 2 | 3 | Building DualBootPatcher for Windows using MSVC is currently unsupported. It is very likely that the compilation will fail. If possible, build with mingw-w64 instead. 4 | 5 | I will not actively work on MSVC support, but I will not reject pull requests for it either. 6 | -------------------------------------------------------------------------------- /docs/build/Utilities.md: -------------------------------------------------------------------------------- 1 | # Building DualBootUtilities Zip 2 | 3 | Please follow the directions in [`App-Android.md`](App-Android.md) up until the build step. The same dependencies are needed for building the utilities zip. 4 | 5 | ## Build process 6 | 7 | After running `cmake`: 8 | 9 | 1. Build the `armeabi-v7a` components. Building everything with just `make` will work as well, but this will save time during the compilation. 10 | 11 | ```sh 12 | make android-system_armeabi-v7a 13 | ``` 14 | 15 | 2. Build `devices.json` from the templates in `data/devices`. 16 | 17 | ```sh 18 | make -C data/devices 19 | ``` 20 | 21 | 3. Build the utilities zip. 22 | 23 | ```sh 24 | ./utilities/create.sh 25 | ``` 26 | 27 | The result will be in `utilities/DualBootUtilities-.zip` 28 | -------------------------------------------------------------------------------- /gui/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/gui/icon.png -------------------------------------------------------------------------------- /gui/main.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | 12 | 13 | 14 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /gui/main.rc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | IDI_ICON1 ICON DISCARDABLE "../icons/icon.ico" 4 | CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "main.manifest" 5 | -------------------------------------------------------------------------------- /gui/mbp.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=DualBootPatcher 3 | Comment=Patch Android ROMs for dual booting 4 | Icon=mbp 5 | Exec=DualBootPatcher 6 | Categories=Development;System;Qt; 7 | Type=Application 8 | Terminal=false 9 | -------------------------------------------------------------------------------- /gui/resources.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | icon.png 4 | 5 | 6 | -------------------------------------------------------------------------------- /icons/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/icons/icon.ico -------------------------------------------------------------------------------- /icons/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/icons/icon.png -------------------------------------------------------------------------------- /libmbbootimg/include/mbbootimg/format/bump_defs.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014 Anthony King 3 | * Copyright (C) 2014 CyboLabs 4 | * Copyright (C) 2015-2017 Andrew Gunnerson 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | #pragma once 20 | 21 | #include 22 | 23 | namespace mb::bootimg::bump 24 | { 25 | 26 | constexpr unsigned char BUMP_MAGIC[] = 27 | "\x41\xa9\xe4\x67\x74\x4d\x1d\x1b\xa4\x29\xf2\xec\xea\x65\x52\x79"; 28 | constexpr size_t BUMP_MAGIC_SIZE = 16; 29 | 30 | } 31 | -------------------------------------------------------------------------------- /libmbbootimg/include/mbbootimg/guard_p.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | #ifndef MBBOOTIMG_BUILD 23 | #error libmbbootimg private headers cannot be used 24 | #endif 25 | -------------------------------------------------------------------------------- /libmbbootimg/tests/format/test_bump_reader.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #include 21 | -------------------------------------------------------------------------------- /libmbbootimg/tests/format/test_bump_writer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #include 21 | -------------------------------------------------------------------------------- /libmbbootimg/tests/format/test_loki_writer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #include 21 | -------------------------------------------------------------------------------- /libmbbootimg/tests/format/test_mtk_reader.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #include 21 | -------------------------------------------------------------------------------- /libmbbootimg/tests/format/test_mtk_writer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #include 21 | -------------------------------------------------------------------------------- /libmbbootimg/tests/format/test_sony_elf_reader.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #include 21 | -------------------------------------------------------------------------------- /libmbbootimg/tests/format/test_sony_elf_writer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #include 21 | -------------------------------------------------------------------------------- /libmbbootimg/tests/test_main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #include 21 | 22 | int main(int argc, char *argv[]) 23 | { 24 | testing::InitGoogleTest(&argc, argv); 25 | return RUN_ALL_TESTS(); 26 | } 27 | -------------------------------------------------------------------------------- /libmbbootimg/tests/test_writer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #include 21 | -------------------------------------------------------------------------------- /libmbcommon/external.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - files: 3 | - include/mbcommon/external/bionic_mbstate.h 4 | - include/mbcommon/external/iconv.h 5 | - src/external/iconv.cpp 6 | repo: https://android.googlesource.com/platform/bionic 7 | commit: 50acae8f2ae017c49b1d616e93ce9f97f6b3d118 8 | -------------------------------------------------------------------------------- /libmbcommon/include/mbcommon/guard_p.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | #ifndef MBCOMMON_BUILD 23 | #error libmbcommon private headers cannot be used 24 | #endif 25 | -------------------------------------------------------------------------------- /libmbcommon/tests/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #include 21 | 22 | int main(int argc, char *argv[]) 23 | { 24 | setlocale(LC_ALL, ""); 25 | 26 | testing::InitGoogleMock(&argc, argv); 27 | return RUN_ALL_TESTS(); 28 | } 29 | -------------------------------------------------------------------------------- /libmbdevice/schemas/device_list.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "id": "https://dbp.noobdev.io/schemas/device_list.json", 4 | "definitions": { 5 | }, 6 | "type": "array", 7 | "items": { 8 | "$ref": "device.json#" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /libmbdevice/tests/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #include 21 | 22 | int main(int argc, char *argv[]) 23 | { 24 | testing::InitGoogleTest(&argc, argv); 25 | return RUN_ALL_TESTS(); 26 | } 27 | -------------------------------------------------------------------------------- /libmblog/include/mblog/log_level.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014-2017 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | namespace mb::log 23 | { 24 | 25 | enum class LogLevel 26 | { 27 | Error, 28 | Warning, 29 | Info, 30 | Debug, 31 | Verbose 32 | }; 33 | 34 | } 35 | -------------------------------------------------------------------------------- /libmblog/src/base_logger.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #include "mblog/base_logger.h" 21 | 22 | namespace mb::log 23 | { 24 | 25 | BaseLogger::BaseLogger() 26 | { 27 | } 28 | 29 | BaseLogger::~BaseLogger() 30 | { 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /libmbpatcher/src/cwrapper/ctypes.cpp: -------------------------------------------------------------------------------- 1 | #include "mbpatcher/cwrapper/ctypes.h" 2 | 3 | /*! 4 | * \file ctypes.h 5 | * \brief Opaque wrapper types 6 | */ 7 | 8 | 9 | /*! 10 | * \typedef CDevice 11 | * \brief C wrapper for Device object 12 | */ 13 | 14 | /*! 15 | * \typedef CFileInfo 16 | * \brief C wrapper for FileInfo object 17 | */ 18 | 19 | /*! 20 | * \typedef CPatcherConfig 21 | * \brief C wrapper for PatcherConfig object 22 | */ 23 | -------------------------------------------------------------------------------- /libmbsparse/tests/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #include 21 | 22 | int main(int argc, char *argv[]) 23 | { 24 | testing::InitGoogleTest(&argc, argv); 25 | return RUN_ALL_TESTS(); 26 | } 27 | -------------------------------------------------------------------------------- /libmbsystrace/headersgen/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(${MBP_BUILD_TARGET} STREQUAL hosttools) 2 | add_executable( 3 | mbsystrace-headersgen 4 | main.cpp 5 | process.cpp 6 | ) 7 | 8 | target_link_libraries( 9 | mbsystrace-headersgen 10 | PRIVATE 11 | interface.global.CXXVersion 12 | mbcommon-shared 13 | pthread 14 | ) 15 | 16 | set_target_properties( 17 | mbsystrace-headersgen 18 | PROPERTIES 19 | BUILD_WITH_INSTALL_RPATH OFF 20 | INSTALL_RPATH "\$ORIGIN/../lib" 21 | ) 22 | 23 | install( 24 | TARGETS mbsystrace-headersgen 25 | RUNTIME DESTINATION "${BIN_INSTALL_DIR}/" 26 | COMPONENT Applications 27 | ) 28 | endif() 29 | -------------------------------------------------------------------------------- /libmbsystrace/include/mbsystrace/signals_list_p.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | 23 | namespace mb::systrace::detail 24 | { 25 | 26 | struct SignalInfo 27 | { 28 | const char *name; 29 | int num; 30 | }; 31 | 32 | extern const SignalInfo g_signals[]; 33 | 34 | } 35 | -------------------------------------------------------------------------------- /libmbsystrace/src/signals_list.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #include "mbsystrace/signals_list_p.h" 21 | 22 | 23 | namespace mb::systrace::detail 24 | { 25 | 26 | const SignalInfo g_signals[] = { 27 | #include "signals_list.h" 28 | }; 29 | 30 | } 31 | -------------------------------------------------------------------------------- /libmbutil/external.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - files: 3 | - include/mbutil/external/bionic_futex.h 4 | - include/mbutil/external/bionic_lock.h 5 | - include/mbutil/external/bionic_macros.h 6 | - include/mbutil/external/_system_properties.h 7 | - include/mbutil/external/system_properties.h 8 | - src/external/system_properties.cpp 9 | repo: https://android.googlesource.com/platform/bionic 10 | tag: android-8.1.0_r29 11 | commit: 3c75c11a5cb537bbdf499701e4298cee2e07a604 12 | 13 | - files: 14 | - src/external/system_properties_compat.cpp 15 | repo: https://android.googlesource.com/platform/bionic 16 | tag: android-7.1.2_r36 17 | commit: 8011119dffb81326eeecdc2effb3b878d536ff50 18 | -------------------------------------------------------------------------------- /libmbutil/include/mbutil/blkid.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016-2018 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | #include 23 | 24 | #include "mbcommon/outcome.h" 25 | 26 | namespace mb::util 27 | { 28 | 29 | oc::result blkid_get_fs_type(const std::string &path); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /libmbutil/tests/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #include 21 | 22 | int main(int argc, char *argv[]) 23 | { 24 | setlocale(LC_ALL, ""); 25 | 26 | testing::InitGoogleMock(&argc, argv); 27 | return RUN_ALL_TESTS(); 28 | } 29 | -------------------------------------------------------------------------------- /libmiscstuff-jni/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(${MBP_BUILD_TARGET} STREQUAL android-app) 2 | add_library( 3 | miscstuff-jni 4 | SHARED 5 | constants.cpp 6 | jni_load.cpp 7 | libmiscstuff.cpp 8 | ) 9 | 10 | target_compile_options( 11 | miscstuff-jni 12 | PRIVATE 13 | -Wno-missing-prototypes 14 | ) 15 | 16 | target_link_libraries( 17 | miscstuff-jni 18 | interface.global.CXXVersion 19 | interface.mbcommon.library 20 | interface.mbcommon.dynamic-link 21 | mbbootimg-shared 22 | mblog-shared 23 | LibArchive::LibArchive 24 | ) 25 | 26 | install( 27 | TARGETS miscstuff-jni 28 | LIBRARY DESTINATION ${LIB_INSTALL_DIR} COMPONENT Libraries 29 | RUNTIME DESTINATION ${LIB_INSTALL_DIR} COMPONENT Libraries 30 | #ARCHIVE DESTINATION ${LIB_INSTALL_DIR} COMPONENT Libraries 31 | ) 32 | endif() 33 | -------------------------------------------------------------------------------- /licenses/RootShell/README.md: -------------------------------------------------------------------------------- 1 | This license text was fetched from: https://github.com/Stericson/RootShell/wiki/Licensing 2 | -------------------------------------------------------------------------------- /licenses/jna/LICENSE: -------------------------------------------------------------------------------- 1 | Java Native Access project (JNA) is dual-licensed under 2 2 | alternative Open Source/Free licenses: LGPL 2.1 or later and 3 | Apache License 2.0. (starting with JNA version 4.0.0). 4 | 5 | You can freely decide which license you want to apply to 6 | the project. 7 | 8 | You may obtain a copy of the LGPL License at: 9 | 10 | http://www.gnu.org/licenses/licenses.html 11 | 12 | A copy is also included in the downloadable source code package 13 | containing JNA, in file "LGPL2.1", under the same directory 14 | as this file. 15 | 16 | You may obtain a copy of the Apache License at: 17 | 18 | http://www.apache.org/licenses/ 19 | 20 | A copy is also included in the downloadable source code package 21 | containing JNA, in file "AL2.0", under the same directory 22 | as this file. 23 | -------------------------------------------------------------------------------- /licenses/jna/LICENSE.AL: -------------------------------------------------------------------------------- 1 | This copy of JNA is licensed under the 2 | Apache (Software) License, version 2.0 ("the License"). 3 | See the License for details about distribution rights, and the 4 | specific rights regarding derivate works. 5 | 6 | You may obtain a copy of the License at: 7 | 8 | http://www.apache.org/licenses/ 9 | 10 | A copy is also included in the downloadable source code package 11 | containing JNA, in file "AL2.0", under the same directory 12 | as this file. 13 | -------------------------------------------------------------------------------- /licenses/jna/LICENSE.LGPL: -------------------------------------------------------------------------------- 1 | This copy of JNA is licensed under the 2 | Lesser General Public License (LGPL), version 2.1 ("the License"). 3 | See the License for details about distribution rights, and the 4 | specific rights regarding derivate works. 5 | 6 | You may obtain a copy of the License at: 7 | 8 | http://www.gnu.org/licenses/licenses.html 9 | 10 | A copy is also included in the downloadable source code package 11 | containing JNA, in file "LGPL2.1", under the same directory 12 | as this file. 13 | 14 | -------------------------------------------------------------------------------- /licenses/libdrm/README.md: -------------------------------------------------------------------------------- 1 | License file was obtained from: https://git.archlinux.org/svntogit/packages.git/tree/trunk/COPYING?h=packages/libdrm&id=34a632551ed2908cba2064b1717600ed9847c721 2 | -------------------------------------------------------------------------------- /licenses/minizip/LICENSE: -------------------------------------------------------------------------------- 1 | Condition of use and distribution are the same as zlib: 2 | 3 | This software is provided 'as-is', without any express or implied 4 | warranty. In no event will the authors be held liable for any damages 5 | arising from the use of this software. 6 | 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it 9 | freely, subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not 12 | claim that you wrote the original software. If you use this software 13 | in a product, an acknowledgement in the product documentation would be 14 | appreciated but is not required. 15 | 2. Altered source versions must be plainly marked as such, and must not be 16 | misrepresented as being the original software. 17 | 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- /licenses/safe-iop/LICENSE: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007,2008 Will Drewry 3 | * 4 | * Permission to use, copy, modify, and distribute this software for any 5 | * purpose with or without fee is hereby granted, provided that the above 6 | * copyright notice and this permission notice appear in all copies. 7 | * 8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 | */ 16 | -------------------------------------------------------------------------------- /mbbootui/README.md: -------------------------------------------------------------------------------- 1 | Description 2 | ----------- 3 | 4 | mbbootui is based on the graphical code from TWRP. Nearly all of the TWRP-specific functionality has been stripped from the code. The following lists the major changes made to the code: 5 | 6 | * The entire graphics system is configured at runtime instead of at compile time using ifdefs. As such, a single binary can run on any device, provided that it is properly configured. 7 | * Removed all legacy themes and new scalable themes, except for `portrait_hdpi`. 8 | * Removed duplicate functions that can be provided by other DualBootPatcher libraries, such as `libmbutil`. 9 | * Made the code style consistent. 10 | 11 | The original TWRP sources can be found here: 12 | https://github.com/omnirom/android_bootable_recovery 13 | -------------------------------------------------------------------------------- /mbbootui/config/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(mbbootui-config STATIC config.cpp) 2 | 3 | target_include_directories( 4 | mbbootui-config 5 | PRIVATE 6 | .. 7 | ) 8 | 9 | target_link_libraries( 10 | mbbootui-config 11 | PUBLIC 12 | interface.global.CXXVersion 13 | mbdevice-static 14 | ) 15 | -------------------------------------------------------------------------------- /mbbootui/gui/fill.cpp: -------------------------------------------------------------------------------- 1 | // fill.cpp - GUIFill object 2 | 3 | #include "gui/fill.hpp" 4 | 5 | #include "mblog/logging.h" 6 | 7 | #define LOG_TAG "mbbootui/gui/fill" 8 | 9 | GUIFill::GUIFill(xml_node<>* node) : GUIObject(node) 10 | { 11 | bool has_color = false; 12 | mColor = LoadAttrColor(node, "color", &has_color); 13 | if (!has_color) { 14 | LOGE("No color specified for fill"); 15 | return; 16 | } 17 | 18 | // Load the placement 19 | LoadPlacement(FindNode(node, "placement"), &mRenderX, &mRenderY, &mRenderW, &mRenderH); 20 | 21 | return; 22 | } 23 | 24 | int GUIFill::Render() 25 | { 26 | if (!isConditionTrue()) { 27 | return 0; 28 | } 29 | 30 | gr_color(mColor.red, mColor.green, mColor.blue, mColor.alpha); 31 | gr_fill(mRenderX, mRenderY, mRenderW, mRenderH); 32 | return 0; 33 | } 34 | 35 | -------------------------------------------------------------------------------- /mbbootui/gui/pages.h: -------------------------------------------------------------------------------- 1 | #ifndef _PAGES_HEADER 2 | #define _PAGES_HEADER 3 | 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | 8 | void gui_notifyVarChange(const char *name, const char* value); 9 | 10 | #ifdef __cplusplus 11 | } 12 | #endif 13 | 14 | #endif // _PAGES_HEADER 15 | 16 | -------------------------------------------------------------------------------- /mbbootui/info.prop.in: -------------------------------------------------------------------------------- 1 | bootui.version=@MBP_VERSION@ 2 | bootui.git-version=@GIT_VERSION@ 3 | -------------------------------------------------------------------------------- /mbbootui/minuitwrp/backend/backend.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Andrew Gunnerson 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #pragma once 18 | 19 | #include "graphics.h" 20 | 21 | extern "C" { 22 | 23 | typedef struct minui_backend * (*backend_init_fn)(); 24 | 25 | backend_init_fn get_backend(const char *name); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /mbbootui/minzip/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | mbbootui-minzip 3 | STATIC 4 | DirUtil.c 5 | Hash.c 6 | Inlines.c 7 | SysUtil.c 8 | Zip.c 9 | ) 10 | 11 | target_compile_definitions( 12 | mbbootui-minzip 13 | PRIVATE 14 | -DPLATFORM_SDK_VERSION=${ANDROID_NATIVE_API_LEVEL} 15 | ) 16 | 17 | target_compile_options( 18 | mbbootui-minzip 19 | PRIVATE 20 | -Wno-language-extension-token 21 | -Wno-gnu-statement-expression 22 | -Werror=implicit-function-declaration 23 | -Werror=unused-function 24 | -Werror=unused-variable 25 | ) 26 | 27 | target_link_libraries( 28 | mbbootui-minzip 29 | interface.global.CVersion 30 | SafeIop::SafeIop 31 | ZLIB::ZLIB 32 | ) 33 | -------------------------------------------------------------------------------- /mbbootui/minzip/Inlines.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* Make sure that non-inlined versions of INLINED-marked functions 18 | * exist so that debug builds (which don't generally do inlining) 19 | * don't break. 20 | */ 21 | #define MINZIP_GENERATE_INLINES 1 22 | #include "Bits.h" 23 | #include "Hash.h" 24 | #include "SysUtil.h" 25 | #include "Zip.h" 26 | -------------------------------------------------------------------------------- /mbbootui/minzip/inline_magic.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef MINZIP_INLINE_MAGIC_H_ 18 | #define MINZIP_INLINE_MAGIC_H_ 19 | 20 | #ifndef MINZIP_GENERATE_INLINES 21 | #define INLINE extern inline __attribute((__gnu_inline__)) 22 | #else 23 | #define INLINE 24 | #endif 25 | 26 | #endif // MINZIP_INLINE_MAGIC_H_ 27 | -------------------------------------------------------------------------------- /mbbootui/theme/common/fonts/DroidSansFallback.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/common/fonts/DroidSansFallback.ttf -------------------------------------------------------------------------------- /mbbootui/theme/common/fonts/DroidSansMono.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/common/fonts/DroidSansMono.ttf -------------------------------------------------------------------------------- /mbbootui/theme/common/fonts/RobotoCondensed-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/common/fonts/RobotoCondensed-Regular.ttf -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/back.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/backspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/backspace.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/checkbox_false.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/checkbox_false.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/checkbox_true.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/checkbox_true.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/console.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/cursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/cursor.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/enter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/enter.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/handle.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/home.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/indeterminate001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/indeterminate001.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/indeterminate002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/indeterminate002.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/indeterminate003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/indeterminate003.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/indeterminate004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/indeterminate004.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/indeterminate005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/indeterminate005.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/indeterminate006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/indeterminate006.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/indeterminate007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/indeterminate007.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/indeterminate008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/indeterminate008.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/indeterminate009.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/indeterminate009.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/indeterminate010.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/indeterminate010.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/indeterminate011.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/indeterminate011.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/indeterminate012.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/indeterminate012.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/logo.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/main_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/main_button.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/main_button_half_height.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/main_button_half_height.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/main_button_half_height_full_width.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/main_button_half_height_full_width.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/progress_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/progress_empty.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/progress_fill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/progress_fill.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/radio_false.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/radio_false.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/radio_true.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/radio_true.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/shift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/shift.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/shift_fill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/shift_fill.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/slider.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/slider_touch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/slider_touch.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/slider_used.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/slider_used.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/space.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/space.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/splashlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/splashlogo.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/tab_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/tab_3.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/tab_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/tab_4.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/tab_display.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/tab_display.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/tab_general.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/tab_general.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/tab_language.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/tab_language.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/tab_timezone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/tab_timezone.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/tab_vibration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/tab_vibration.png -------------------------------------------------------------------------------- /mbbootui/theme/portrait_hdpi/images/unlock_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/mbbootui/theme/portrait_hdpi/images/unlock_icon.png -------------------------------------------------------------------------------- /mbtool/external.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - files: 3 | - include/boot/audit/libaudit.h 4 | - include/boot/init/cutils/uevent.h 5 | - include/boot/init/devices.h 6 | - include/boot/init/uevent.h 7 | - include/boot/init/uevent_listener.h 8 | - include/boot/init/unique_fd.h 9 | - include/boot/property_service.h 10 | - src/boot/audit/libaudit.cpp 11 | - src/boot/init/cutils/uevent.cpp 12 | - src/boot/init/devices.cpp 13 | - src/boot/init/uevent_listener.cpp 14 | - src/boot/property_service.cpp 15 | repo: https://android.googlesource.com/platform/system/core 16 | tag: android-8.1.0_r29 17 | commit: cb0f6139bd58d9e0113b6c75f5f7965ca7850179 18 | 19 | - files: 20 | - include/util/legacy_property_service.h 21 | - src/util/legacy_property_service.cpp 22 | repo: https://github.com/omnirom/android_bootable_recovery 23 | commit: bf4f24f2274a384539b95b8e16df57b2b67f56dd 24 | -------------------------------------------------------------------------------- /mbtool/include/boot/appsync.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | namespace mb 23 | { 24 | 25 | int appsync_main(int argc, char *argv[]); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /mbtool/include/boot/auditd.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | namespace mb 23 | { 24 | 25 | int auditd_main(int argc, char *argv[]); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /mbtool/include/boot/daemon.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | namespace mb 23 | { 24 | 25 | int daemon_main(int argc, char *argv[]); 26 | 27 | } -------------------------------------------------------------------------------- /mbtool/include/boot/daemon_v3.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014-2015 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | namespace mb 23 | { 24 | 25 | bool connection_version_3(int fd); 26 | 27 | } -------------------------------------------------------------------------------- /mbtool/include/boot/init.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | namespace mb 23 | { 24 | 25 | int init_main(int argc, char *argv[]); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /mbtool/include/boot/properties.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | namespace mb 23 | { 24 | 25 | int properties_main(int argc, char *argv[]); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /mbtool/include/boot/reboot.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015-2018 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | #include 23 | 24 | namespace mb 25 | { 26 | 27 | int reboot_main(int argc, char *argv[]); 28 | int shutdown_main(int argc, char *argv[]); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /mbtool/include/boot/uevent_dump.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | namespace mb 23 | { 24 | 25 | int uevent_dump_main(int argc, char *argv[]); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /mbtool/include/recovery/archive_util.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | #include 23 | 24 | namespace mb 25 | { 26 | 27 | bool la_copy_data_to_fd(archive *a, int fd); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /mbtool/include/recovery/backup.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | namespace mb 23 | { 24 | 25 | int backup_main(int argc, char *argv[]); 26 | int restore_main(int argc, char *argv[]); 27 | 28 | } -------------------------------------------------------------------------------- /mbtool/include/recovery/rom_installer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | namespace mb 23 | { 24 | 25 | int rom_installer_main(int argc, char *argv[]); 26 | 27 | } -------------------------------------------------------------------------------- /mbtool/include/recovery/update_binary.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | namespace mb 23 | { 24 | 25 | int update_binary_main(int argc, char *argv[]); 26 | 27 | } -------------------------------------------------------------------------------- /mbtool/include/recovery/update_binary_tool.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | namespace mb 23 | { 24 | 25 | int update_binary_tool_main(int argc, char *argv[]); 26 | 27 | } -------------------------------------------------------------------------------- /mbtool/include/recovery/utilities.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | namespace mb 23 | { 24 | 25 | int utilities_main(int argc, char *argv[]); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /mbtool/include/util/validcerts.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014-2019 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | #pragma once 21 | 22 | extern const char *signing_cert; 23 | -------------------------------------------------------------------------------- /misc/file-contexts-tool/README: -------------------------------------------------------------------------------- 1 | This is a modification of the Android fork of libselinux: 2 | 3 | https://android.googlesource.com/platform/external/libselinux/ 4 | 5 | based on commit: d4828b3ba449355aa2d1751026e5f1d1129cedcf 6 | 7 | -------------------------------------------------------------------------------- 8 | 9 | DualBootPatcher's fork of Android's libselinux removes everything unrelated to 10 | the creation and parsing of the binary file_contexts format. Also, instead of 11 | directly linking against PCRE or PCRE2, the tool dynamically loads libpcre and 12 | checks if it is PCRE or PCRE2 at runtime. This allows the tool to work with 13 | whatever version of PCRE that comes preloaded on the firmware. 14 | 15 | -------------------------------------------------------------------------------- 16 | 17 | All files inside this "file-contexts-tool" folder are under the same license 18 | as Android's fork of libselinux linked above. That is, these files are public 19 | domain software (see the LICENSE file for details). 20 | -------------------------------------------------------------------------------- /misc/file-contexts-tool/callbacks.c: -------------------------------------------------------------------------------- 1 | /* 2 | * User-supplied callbacks and default implementations. 3 | * Class and permission mappings. 4 | */ 5 | 6 | #include 7 | #include 8 | 9 | #include "callbacks.h" 10 | 11 | /* default implementations */ 12 | static int __attribute__ ((format(printf, 1, 2))) 13 | default_selinux_log(const char *fmt, ...) 14 | { 15 | int rc; 16 | va_list ap; 17 | va_start(ap, fmt); 18 | rc = vfprintf(stderr, fmt, ap); 19 | va_end(ap); 20 | return rc; 21 | } 22 | 23 | /* callback pointers */ 24 | int __attribute__ ((format(printf, 1, 2))) 25 | (*selinux_log)(const char *, ...) = default_selinux_log; 26 | -------------------------------------------------------------------------------- /misc/file-contexts-tool/callbacks.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file describes the callbacks passed to selinux_init() and available 3 | * for use from the library code. They all have default implementations. 4 | */ 5 | 6 | #pragma once 7 | 8 | #ifdef __cplusplus 9 | extern "C" { 10 | #endif 11 | 12 | /* callback pointers */ 13 | extern int __attribute__ ((format(printf, 1, 2))) 14 | (*selinux_log)(const char *, ...); 15 | 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /misc/file-contexts-tool/compile.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "pcre_shim.h" 4 | 5 | #ifdef __cplusplus 6 | extern "C" { 7 | #endif 8 | 9 | int compile(struct pcre_shim *shim, 10 | const char *source_file, const char *target_file); 11 | 12 | #ifdef __cplusplus 13 | } 14 | #endif 15 | -------------------------------------------------------------------------------- /misc/file-contexts-tool/decompile.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "pcre_shim.h" 4 | 5 | #ifdef __cplusplus 6 | extern "C" { 7 | #endif 8 | 9 | int decompile(struct pcre_shim *shim, 10 | const char *source_file, const char *target_file); 11 | 12 | #ifdef __cplusplus 13 | } 14 | #endif 15 | -------------------------------------------------------------------------------- /misc/file-contexts-tool/label_internal.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file describes the internal interface used by the labeler 3 | * for calling the user-supplied memory allocation, validation, 4 | * and locking routine. 5 | * 6 | * Author : Eamon Walsh 7 | */ 8 | 9 | #pragma once 10 | 11 | #include 12 | #include 13 | 14 | /* 15 | * Labeling internal structures 16 | */ 17 | struct selabel_lookup_rec { 18 | char * ctx_raw; 19 | }; 20 | 21 | struct selabel_handle { 22 | /* supports backend-specific state information */ 23 | void *data; 24 | }; 25 | 26 | /* 27 | * The read_spec_entries function may be used to 28 | * replace sscanf to read entries from spec files. 29 | */ 30 | extern int read_spec_entries(char *line_buf, const char **errbuf, int num_args, ...); 31 | -------------------------------------------------------------------------------- /misc/fsck-wrapper/main.arm64-v8a.S: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | .text 21 | .global _start 22 | 23 | _start: 24 | mov x8,#93 25 | svc 0 26 | -------------------------------------------------------------------------------- /misc/fsck-wrapper/main.armeabi-v7a.S: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | .text 21 | .global _start 22 | 23 | _start: 24 | mov %r0,$0 25 | mov %r7,$1 26 | swi $0 27 | -------------------------------------------------------------------------------- /misc/fsck-wrapper/main.x86.S: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | .text 21 | .global _start 22 | 23 | _start: 24 | movl $0,%ebx 25 | movl $1,%eax 26 | int $0x80 27 | -------------------------------------------------------------------------------- /misc/fsck-wrapper/main.x86_64.S: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Andrew Gunnerson 3 | * 4 | * This file is part of DualBootPatcher 5 | * 6 | * DualBootPatcher is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * DualBootPatcher is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with DualBootPatcher. If not, see . 18 | */ 19 | 20 | .text 21 | .global _start 22 | 23 | _start: 24 | mov $60,%rax 25 | mov $0,%rdi 26 | syscall 27 | -------------------------------------------------------------------------------- /odinupdater/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(${MBP_BUILD_TARGET} STREQUAL android-system) 2 | add_executable(odinupdater odinupdater.cpp) 3 | add_executable(fuse-sparse fuse-sparse.cpp) 4 | 5 | target_link_libraries( 6 | odinupdater 7 | PRIVATE 8 | interface.global.CXXVersion 9 | mbsparse-static 10 | mbutil-static 11 | mbdevice-static 12 | mbcommon-static 13 | mblog-static 14 | LibArchive::LibArchive 15 | ) 16 | target_link_libraries( 17 | fuse-sparse 18 | PRIVATE 19 | interface.global.CXXVersion 20 | mbsparse-static 21 | mbcommon-static 22 | mblog-static 23 | Fuse::Fuse 24 | ) 25 | 26 | unix_link_executable_statically(odinupdater fuse-sparse) 27 | 28 | install( 29 | TARGETS odinupdater fuse-sparse 30 | RUNTIME DESTINATION "${BIN_INSTALL_DIR}/" 31 | COMPONENT Applications 32 | ) 33 | endif() 34 | -------------------------------------------------------------------------------- /protocol/v3/crypto_decrypt.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table CryptoDecryptRequest { 4 | password : string (deprecated); 5 | } 6 | 7 | table CryptoDecryptResponse { 8 | success : bool (deprecated); 9 | } 10 | -------------------------------------------------------------------------------- /protocol/v3/crypto_get_pw_type.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | enum CryptoPwType : short { 4 | DEFAULT, 5 | PASSWORD, 6 | PATTERN, 7 | PIN, 8 | UNKNOWN 9 | } 10 | 11 | table CryptoGetPwTypeRequest { 12 | } 13 | 14 | table CryptoGetPwTypeResponse { 15 | type : CryptoPwType (deprecated); 16 | } 17 | -------------------------------------------------------------------------------- /protocol/v3/file_chmod.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table FileChmodError { 4 | // errno value 5 | errno_value : int; 6 | 7 | // strerror(errno) 8 | msg : string; 9 | } 10 | 11 | table FileChmodRequest { 12 | // Opened file ID 13 | id : int; 14 | 15 | // Octal mode string 16 | mode : uint; 17 | } 18 | 19 | table FileChmodResponse { 20 | // Deprecated 21 | success : bool; 22 | // Deprecated 23 | error_msg : string; 24 | 25 | error : FileChmodError; 26 | } 27 | -------------------------------------------------------------------------------- /protocol/v3/file_close.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table FileCloseError { 4 | // errno value 5 | errno_value : int; 6 | 7 | // strerrno(errno) 8 | msg : string; 9 | } 10 | 11 | table FileCloseRequest { 12 | id : int; 13 | } 14 | 15 | table FileCloseResponse { 16 | // Deprecated 17 | success : bool; 18 | // Deprecated 19 | error_msg : string; 20 | 21 | error : FileCloseError; 22 | } 23 | -------------------------------------------------------------------------------- /protocol/v3/file_open.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | enum FileOpenFlag : short { 4 | APPEND, 5 | CREAT, 6 | EXCL, 7 | RDONLY, 8 | RDWR, 9 | TRUNC, 10 | WRONLY 11 | } 12 | 13 | table FileOpenError { 14 | // errno value 15 | errno_value : int; 16 | 17 | // strerror(errno) 18 | msg : string; 19 | } 20 | 21 | table FileOpenRequest { 22 | // Path to open 23 | path : string; 24 | 25 | // Open flags 26 | flags : [FileOpenFlag]; 27 | 28 | // Permissions (if the CREAT flag is specified) 29 | perms : uint; 30 | } 31 | 32 | table FileOpenResponse { 33 | // Deprecated 34 | success : bool; 35 | // Deprecated 36 | error_msg : string; 37 | 38 | // File ID 39 | id : int; 40 | 41 | // Error 42 | error : FileOpenError; 43 | } 44 | -------------------------------------------------------------------------------- /protocol/v3/file_read.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table FileReadError { 4 | // errno value 5 | errno_value : int; 6 | 7 | // strerror(errno) 8 | msg : string; 9 | } 10 | 11 | table FileReadRequest { 12 | // Opened file ID 13 | id : int; 14 | 15 | // Bytes to read 16 | count : ulong; 17 | } 18 | 19 | table FileReadResponse { 20 | // Deprecated 21 | success : bool; 22 | // Deprecated 23 | error_msg : string; 24 | 25 | // Number of bytes read 26 | bytes_read : ulong; 27 | // Data 28 | data : [ubyte]; 29 | 30 | // Error 31 | error : FileReadError; 32 | } 33 | -------------------------------------------------------------------------------- /protocol/v3/file_seek.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | enum FileSeekWhence : short { 4 | SEEK_SET, 5 | SEEK_CUR, 6 | SEEK_END 7 | } 8 | 9 | table FileSeekError { 10 | // errno value 11 | errno_value : int; 12 | 13 | // strerror(errno) 14 | msg : string; 15 | } 16 | 17 | table FileSeekRequest { 18 | // Opened file ID 19 | id : int; 20 | 21 | // Offset 22 | offset : long; 23 | 24 | // Whence 25 | whence : FileSeekWhence; 26 | } 27 | 28 | table FileSeekResponse { 29 | // Deprecated 30 | success : bool; 31 | // Deprecated 32 | error_msg : string; 33 | 34 | // Offset after seek 35 | offset : long; 36 | 37 | // Error 38 | error : FileSeekError; 39 | } 40 | -------------------------------------------------------------------------------- /protocol/v3/file_selinux_get_label.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table FileSELinuxGetLabelError { 4 | // errno value 5 | errno_value : int; 6 | 7 | // strerror(errno) 8 | msg : string; 9 | } 10 | 11 | table FileSELinuxGetLabelRequest { 12 | // Opened file ID 13 | id : int; 14 | } 15 | 16 | table FileSELinuxGetLabelResponse { 17 | // Deprecated 18 | success : bool; 19 | // Deprecated 20 | error_msg : string; 21 | 22 | // SELinux label 23 | label : string; 24 | 25 | // Error 26 | error : FileSELinuxGetLabelError; 27 | } 28 | -------------------------------------------------------------------------------- /protocol/v3/file_selinux_set_label.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table FileSELinuxSetLabelError { 4 | // errno value 5 | errno_value : int; 6 | 7 | // strerror(errno) 8 | msg : string; 9 | } 10 | 11 | table FileSELinuxSetLabelRequest { 12 | // Opened file ID 13 | id : int; 14 | 15 | // SELinux label 16 | label : string; 17 | } 18 | 19 | table FileSELinuxSetLabelResponse { 20 | // Deprecated 21 | success : bool; 22 | // Deprecated 23 | error_msg : string; 24 | 25 | // Error 26 | error : FileSELinuxSetLabelError; 27 | } 28 | -------------------------------------------------------------------------------- /protocol/v3/file_write.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table FileWriteError { 4 | // errno value 5 | errno_value : int; 6 | 7 | // strerror(errno) 8 | msg : string; 9 | } 10 | 11 | table FileWriteRequest { 12 | // Opened file ID 13 | id : int; 14 | 15 | // Bytes to write 16 | data : [ubyte]; 17 | } 18 | 19 | table FileWriteResponse { 20 | // Deprecated 21 | success : bool; 22 | // Deprecated 23 | error_msg : string; 24 | 25 | // Number of bytes written 26 | bytes_written : ulong; 27 | 28 | // Error 29 | error : FileWriteError; 30 | } 31 | -------------------------------------------------------------------------------- /protocol/v3/mb_get_booted_rom_id.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table MbGetBootedRomIdRequest { 4 | // No parameters 5 | } 6 | 7 | table MbGetBootedRomIdResponse { 8 | rom_id : string; 9 | } -------------------------------------------------------------------------------- /protocol/v3/mb_get_installed_roms.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table MbRom { 4 | id : string; 5 | system_path : string; 6 | cache_path : string; 7 | data_path : string; 8 | version : string; 9 | build : string; 10 | } 11 | 12 | table MbGetInstalledRomsRequest { 13 | // No parameters 14 | } 15 | 16 | table MbGetInstalledRomsResponse { 17 | roms : [MbRom]; 18 | } -------------------------------------------------------------------------------- /protocol/v3/mb_get_packages_count.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table MbGetPackagesCountError { 4 | // No additional information is currently provided 5 | } 6 | 7 | table MbGetPackagesCountRequest { 8 | // ROM ID 9 | rom_id : string; 10 | } 11 | 12 | table MbGetPackagesCountResponse { 13 | // Deprecated 14 | success : bool; 15 | 16 | // Number of system packages 17 | system_packages : uint; 18 | 19 | // Number of updates to system packages 20 | system_update_packages : uint; 21 | 22 | // Number of user packages 23 | non_system_packages : uint; 24 | 25 | // Error 26 | error : MbGetPackagesCountError; 27 | } 28 | -------------------------------------------------------------------------------- /protocol/v3/mb_get_version.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table MbGetVersionRequest { 4 | // No parameters 5 | } 6 | 7 | table MbGetVersionResponse { 8 | version : string; 9 | } -------------------------------------------------------------------------------- /protocol/v3/mb_set_kernel.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table MbSetKernelError { 4 | // Currently, no error information is provided 5 | } 6 | 7 | table MbSetKernelRequest { 8 | // ROM ID to set the kernel for 9 | rom_id : string; 10 | 11 | // Path to the boot partition's block device 12 | boot_blockdev : string; 13 | } 14 | 15 | table MbSetKernelResponse { 16 | // Deprecated 17 | success : bool; 18 | 19 | // Error 20 | error : MbSetKernelError; 21 | } 22 | -------------------------------------------------------------------------------- /protocol/v3/mb_switch_rom.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table MbSwitchRomError { 4 | // Currently, no additional details are provided 5 | } 6 | 7 | table MbSwitchRomRequest { 8 | // ROM ID to switch to 9 | rom_id : string; 10 | 11 | // Path to the boot partition's block device 12 | boot_blockdev : string; 13 | 14 | // List of block device search paths 15 | blockdev_base_dirs : [string]; 16 | 17 | // Force update checksums 18 | force_update_checksums : bool; 19 | } 20 | 21 | enum MbSwitchRomResult : short { 22 | SUCCEEDED, 23 | FAILED, 24 | CHECKSUM_NOT_FOUND, 25 | CHECKSUM_INVALID 26 | } 27 | 28 | table MbSwitchRomResponse { 29 | // Deprecated 30 | success : bool; 31 | 32 | // Result 33 | result : MbSwitchRomResult; 34 | 35 | // Error 36 | error : MbSwitchRomError; 37 | } 38 | -------------------------------------------------------------------------------- /protocol/v3/mb_wipe_rom.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | enum MbWipeTarget : short { 4 | // Wipe ROM's /system directory 5 | SYSTEM, 6 | // Wipe ROM's /cache directory 7 | CACHE, 8 | // Wipe ROM's /data directory 9 | DATA, 10 | // Wipe ROM's /{data,cache}/dalvik-cache directory 11 | DALVIK_CACHE, 12 | // Wipe ROM's /data/media/0/MultiBoot/[ROM ID] directory 13 | MULTIBOOT 14 | } 15 | 16 | table MbWipeRomRequest { 17 | // ROM to wipe 18 | rom_id : string; 19 | 20 | // List of WipeFlags 21 | targets : [MbWipeTarget]; 22 | } 23 | 24 | table MbWipeRomResponse { 25 | // WipeTargets that were successfully wiped 26 | succeeded : [MbWipeTarget]; 27 | 28 | // WipeTargets that failed to wipe 29 | failed : [MbWipeTarget]; 30 | } 31 | -------------------------------------------------------------------------------- /protocol/v3/path_chmod.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table PathChmodError { 4 | // errno value 5 | errno_value : int; 6 | 7 | // strerror(errno) 8 | msg : string; 9 | } 10 | 11 | table PathChmodRequest { 12 | // Absolute path 13 | path : string; 14 | 15 | // Octal mode 16 | mode : uint; 17 | } 18 | 19 | table PathChmodResponse { 20 | // Deprecated 21 | success : bool; 22 | // Deprecated 23 | error_msg : string; 24 | 25 | // Error 26 | error : PathChmodError; 27 | } 28 | -------------------------------------------------------------------------------- /protocol/v3/path_copy.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table PathCopyError { 4 | // errno value 5 | errno_value : int; 6 | 7 | // strerror(errno) 8 | msg : string; 9 | } 10 | 11 | table PathCopyRequest { 12 | // Path to source file 13 | source : string; 14 | 15 | // Path to destination file 16 | target : string; 17 | } 18 | 19 | table PathCopyResponse { 20 | // Deprecated 21 | success : bool; 22 | // Deprecated 23 | error_msg : string; 24 | 25 | // Error 26 | error : PathCopyError; 27 | } 28 | -------------------------------------------------------------------------------- /protocol/v3/path_delete.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | enum PathDeleteFlag : short { 4 | REMOVE, 5 | UNLINK, 6 | RMDIR, 7 | RECURSIVE 8 | } 9 | 10 | table PathDeleteError { 11 | // errno value 12 | errno_value : int; 13 | 14 | // strerror(errno) 15 | msg : string; 16 | } 17 | 18 | table PathDeleteRequest { 19 | // Path to open 20 | path : string; 21 | 22 | // Delete flag 23 | flag : PathDeleteFlag = REMOVE; 24 | } 25 | 26 | table PathDeleteResponse { 27 | // Deprecated 28 | success : bool; 29 | // Deprecated 30 | error_msg : string; 31 | 32 | // Error 33 | error : PathDeleteError; 34 | } 35 | -------------------------------------------------------------------------------- /protocol/v3/path_get_directory_size.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table PathGetDirectorySizeError { 4 | // errno value 5 | errno_value : int; 6 | 7 | // strerror(errno) 8 | msg : string; 9 | } 10 | 11 | table PathGetDirectorySizeRequest { 12 | // Path to get directory size for 13 | path : string; 14 | 15 | // List of top-level directories to exclude from calculation 16 | exclusions : [string]; 17 | } 18 | 19 | table PathGetDirectorySizeResponse { 20 | // Deprecated 21 | success : bool; 22 | // Deprecated 23 | error_msg : string; 24 | 25 | // Directory size in bytes 26 | size : ulong; 27 | 28 | // Error 29 | error : PathGetDirectorySizeError; 30 | } 31 | -------------------------------------------------------------------------------- /protocol/v3/path_mkdir.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table PathMkdirError { 4 | // errno value 5 | errno_value : int; 6 | 7 | // strerror(errno) 8 | msg : string; 9 | } 10 | 11 | table PathMkdirRequest { 12 | // Absolute directory path to create 13 | path : string; 14 | 15 | // Octal mode 16 | mode : uint; 17 | 18 | // Whether to recursively create directory 19 | recursive : bool; 20 | } 21 | 22 | table PathMkdirResponse { 23 | // Deprecated 24 | success : bool; 25 | // Deprecated 26 | error_msg : string; 27 | 28 | // Error 29 | error : PathMkdirError; 30 | } 31 | -------------------------------------------------------------------------------- /protocol/v3/path_readlink.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table PathReadlinkError { 4 | // errno value 5 | errno_value : int; 6 | 7 | // Error message 8 | msg : string; 9 | } 10 | 11 | table PathReadlinkRequest { 12 | // Path to query 13 | path : string; 14 | } 15 | 16 | table PathReadlinkResponse { 17 | // Symlink target 18 | target : string; 19 | 20 | // Error 21 | error : PathReadlinkError; 22 | } 23 | -------------------------------------------------------------------------------- /protocol/v3/path_selinux_get_label.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table PathSELinuxGetLabelError { 4 | // errno value 5 | errno_value : int; 6 | 7 | // strerror(errno) 8 | msg : string; 9 | } 10 | 11 | table PathSELinuxGetLabelRequest { 12 | // Path to query 13 | path : string; 14 | 15 | // Whether to follow symlinks 16 | follow_symlinks : bool; 17 | } 18 | 19 | table PathSELinuxGetLabelResponse { 20 | // Deprecated 21 | success : bool; 22 | // Deprecated 23 | error_msg : string; 24 | 25 | // SELinux label 26 | label : string; 27 | 28 | // Error 29 | error : PathSELinuxGetLabelError; 30 | } 31 | -------------------------------------------------------------------------------- /protocol/v3/path_selinux_set_label.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | table PathSELinuxSetLabelError { 4 | // errno value 5 | errno_value : int; 6 | 7 | // strerror(errno) 8 | msg : string; 9 | } 10 | 11 | table PathSELinuxSetLabelRequest { 12 | // Path to set label for 13 | path : string; 14 | 15 | // SELinux label 16 | label : string; 17 | 18 | // Whether to follow symlinks 19 | follow_symlinks : bool; 20 | } 21 | 22 | table PathSELinuxSetLabelResponse { 23 | // Deprecated 24 | success : bool; 25 | // Deprecated 26 | error_msg : string; 27 | 28 | // Error 29 | error : PathSELinuxSetLabelError; 30 | } 31 | -------------------------------------------------------------------------------- /protocol/v3/reboot.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | enum RebootType : short { 4 | FRAMEWORK, 5 | INIT, 6 | DIRECT 7 | } 8 | 9 | table RebootError { 10 | // Currently, no additional details are provided 11 | } 12 | 13 | table RebootRequest { 14 | // Argument for reboot (Only valid for RebootType::INIT and 15 | // RebootType::DIRECT) 16 | arg : string; 17 | 18 | // Reboot mechanism 19 | type : RebootType = FRAMEWORK; 20 | 21 | // Confirm reboot? (Only valid for RebootType::FRAMEWORK) 22 | confirm : bool; 23 | } 24 | 25 | table RebootResponse { 26 | // Deprecated 27 | success : bool; 28 | 29 | // Error 30 | error : RebootError; 31 | } 32 | -------------------------------------------------------------------------------- /protocol/v3/shutdown.fbs: -------------------------------------------------------------------------------- 1 | namespace mbtool.daemon.v3; 2 | 3 | enum ShutdownType : short { 4 | INIT, 5 | DIRECT, 6 | FRAMEWORK 7 | } 8 | 9 | table ShutdownError { 10 | // Currently, no additional details are provided 11 | } 12 | 13 | table ShutdownRequest { 14 | // Shutdown mechanism 15 | type : ShutdownType = FRAMEWORK; 16 | 17 | // Confirm shutdown? (Only valid for ShutdownType::FRAMEWORK) 18 | confirm : bool; 19 | } 20 | 21 | table ShutdownResponse { 22 | // Deprecated 23 | success : bool; 24 | 25 | // Error 26 | error : ShutdownError; 27 | } 28 | -------------------------------------------------------------------------------- /signtool/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(${MBP_BUILD_TARGET} STREQUAL hosttools) 2 | add_executable(signtool signtool.cpp) 3 | 4 | target_link_libraries( 5 | signtool 6 | PRIVATE 7 | interface.global.CXXVersion 8 | mbsign-shared 9 | ) 10 | 11 | set_target_properties( 12 | signtool 13 | PROPERTIES 14 | BUILD_WITH_INSTALL_RPATH OFF 15 | INSTALL_RPATH "\$ORIGIN/../lib" 16 | ) 17 | 18 | install( 19 | TARGETS signtool 20 | RUNTIME DESTINATION "${BIN_INSTALL_DIR}/" 21 | COMPONENT Applications 22 | ) 23 | endif() 24 | -------------------------------------------------------------------------------- /thirdparty/android-system-core/.gitignore: -------------------------------------------------------------------------------- 1 | /core/ 2 | -------------------------------------------------------------------------------- /thirdparty/android-system-core/0004-libcutils-Fix-missing-includes.patch: -------------------------------------------------------------------------------- 1 | From aeb17694ab72e598e641a42e3de80a2812c84851 Mon Sep 17 00:00:00 2001 2 | From: Andrew Gunnerson 3 | Date: Sun, 24 Dec 2017 19:02:44 -0500 4 | Subject: [PATCH 4/5] libcutils: Fix missing includes 5 | 6 | --- 7 | libutils/PropertyMap.cpp | 2 ++ 8 | 1 file changed, 2 insertions(+) 9 | 10 | diff --git a/libutils/PropertyMap.cpp b/libutils/PropertyMap.cpp 11 | index 4bcdd0f7f..c83203679 100644 12 | --- a/libutils/PropertyMap.cpp 13 | +++ b/libutils/PropertyMap.cpp 14 | @@ -16,6 +16,8 @@ 15 | 16 | #define LOG_TAG "PropertyMap" 17 | 18 | +#include 19 | + 20 | #include 21 | 22 | // Enables debug output for the parser. 23 | -- 24 | 2.14.3 25 | 26 | -------------------------------------------------------------------------------- /thirdparty/boringssl/.gitignore: -------------------------------------------------------------------------------- 1 | android.toolchain.cmake 2 | boringssl/ 3 | -------------------------------------------------------------------------------- /thirdparty/exfat/.gitignore: -------------------------------------------------------------------------------- 1 | /exfat/ 2 | /fuse/ 3 | -------------------------------------------------------------------------------- /thirdparty/exfat/0003-Android-does-not-define-__STDC_VERSION__.patch: -------------------------------------------------------------------------------- 1 | From cc038e262dde2dfea4cb102f67d5ac7067c06d0f Mon Sep 17 00:00:00 2001 2 | From: Andrew Gunnerson 3 | Date: Thu, 2 Feb 2017 20:00:31 -0500 4 | Subject: [PATCH 3/3] Android does not define __STDC_VERSION__ 5 | 6 | --- 7 | libexfat/compiler.h | 2 +- 8 | 1 file changed, 1 insertion(+), 1 deletion(-) 9 | 10 | diff --git a/libexfat/compiler.h b/libexfat/compiler.h 11 | index e4f40de..299d888 100644 12 | --- a/libexfat/compiler.h 13 | +++ b/libexfat/compiler.h 14 | @@ -24,7 +24,7 @@ 15 | #ifndef COMPILER_H_INCLUDED 16 | #define COMPILER_H_INCLUDED 17 | 18 | -#if __STDC_VERSION__ < 199901L 19 | +#if defined(__STDC_VERSION__) && __STDC_VERSION__ < 199901L 20 | #error C99-compliant compiler is required 21 | #endif 22 | 23 | -- 24 | 2.14.3 25 | 26 | -------------------------------------------------------------------------------- /thirdparty/freetype2/.gitignore: -------------------------------------------------------------------------------- 1 | /freetype/ 2 | -------------------------------------------------------------------------------- /thirdparty/fuse/.gitignore: -------------------------------------------------------------------------------- 1 | /fuse/ 2 | -------------------------------------------------------------------------------- /thirdparty/libarchive/.gitignore: -------------------------------------------------------------------------------- 1 | android.toolchain.cmake 2 | libarchive/ 3 | -------------------------------------------------------------------------------- /thirdparty/libarchive/0001-Force-UTF-8-as-the-default-charset-on-Android-since-.patch: -------------------------------------------------------------------------------- 1 | From c4c6471f1b550b24a94608ffb194a7c7a4b21464 Mon Sep 17 00:00:00 2001 2 | From: Xiao-Long Chen 3 | Date: Mon, 19 Oct 2015 02:44:08 -0400 4 | Subject: [PATCH 1/2] Force UTF-8 as the default charset on Android since the 5 | NDK doesn't support nl_langinfo 6 | 7 | --- 8 | libarchive/archive_string.c | 2 ++ 9 | 1 file changed, 2 insertions(+) 10 | 11 | diff --git a/libarchive/archive_string.c b/libarchive/archive_string.c 12 | index 592ead2..f6b62d0 100644 13 | --- a/libarchive/archive_string.c 14 | +++ b/libarchive/archive_string.c 15 | @@ -424,6 +424,8 @@ default_iconv_charset(const char *charset) { 16 | return locale_charset(); 17 | #elif HAVE_NL_LANGINFO 18 | return nl_langinfo(CODESET); 19 | +#elif defined(__ANDROID__) 20 | + return "UTF-8"; 21 | #else 22 | return ""; 23 | #endif 24 | -- 25 | 2.9.4 26 | 27 | -------------------------------------------------------------------------------- /thirdparty/libarchive/0002-NDK-unified-headers-uses-f_flags-for-struct-statfs.patch: -------------------------------------------------------------------------------- 1 | From 1a3fa8a99dd57e0977b0e2bda36ad76b3da6042f Mon Sep 17 00:00:00 2001 2 | From: Andrew Gunnerson 3 | Date: Sun, 11 Jun 2017 19:10:57 -0400 4 | Subject: [PATCH 2/2] NDK unified headers uses f_flags for struct statfs 5 | 6 | --- 7 | libarchive/archive_read_disk_posix.c | 2 ++ 8 | 1 file changed, 2 insertions(+) 9 | 10 | diff --git a/libarchive/archive_read_disk_posix.c b/libarchive/archive_read_disk_posix.c 11 | index 6961ae6..bc9461c 100644 12 | --- a/libarchive/archive_read_disk_posix.c 13 | +++ b/libarchive/archive_read_disk_posix.c 14 | @@ -1799,6 +1799,8 @@ setup_current_filesystem(struct archive_read_disk *a) 15 | #if defined(ST_NOATIME) 16 | #if defined(HAVE_STATVFS) 17 | if (svfs.f_flag & ST_NOATIME) 18 | +#elif defined(__ANDROID__) 19 | + if (sfs.f_flags & ST_NOATIME) 20 | #else 21 | if (sfs.f_flag & ST_NOATIME) 22 | #endif 23 | -- 24 | 2.9.4 25 | 26 | -------------------------------------------------------------------------------- /thirdparty/libdrm/.gitignore: -------------------------------------------------------------------------------- 1 | /libdrm/ 2 | -------------------------------------------------------------------------------- /thirdparty/libpng/.gitignore: -------------------------------------------------------------------------------- 1 | /libpng/ 2 | -------------------------------------------------------------------------------- /thirdparty/libsepol/.gitignore: -------------------------------------------------------------------------------- 1 | selinux/ 2 | -------------------------------------------------------------------------------- /thirdparty/lz4/.gitignore: -------------------------------------------------------------------------------- 1 | lz4/ 2 | -------------------------------------------------------------------------------- /thirdparty/safe-iop/.gitignore: -------------------------------------------------------------------------------- 1 | /safe-iop/ 2 | -------------------------------------------------------------------------------- /thirdparty/strace/.gitignore: -------------------------------------------------------------------------------- 1 | /strace/ 2 | -------------------------------------------------------------------------------- /thirdparty/test-runner-image/.gitignore: -------------------------------------------------------------------------------- 1 | /*.deb 2 | /tini/ 3 | -------------------------------------------------------------------------------- /thirdparty/test-runner-image/inittab: -------------------------------------------------------------------------------- 1 | ::wait:-/startup 2 | ::ctrlaltdel:/bin/busybox reboot 3 | ::shutdown:/bin/busybox umount -a -r 4 | ::restart:/bin/busybox init 5 | -------------------------------------------------------------------------------- /thirdparty/test-runner-image/startup: -------------------------------------------------------------------------------- 1 | #!/bin/busybox sh 2 | 3 | set -u 4 | 5 | post_init='' 6 | 7 | # Parse command line options 8 | for x in $(cat /proc/cmdline); do 9 | case "${x}" in 10 | post-init=*) 11 | post_init="${x#post-init=}" 12 | ;; 13 | esac 14 | done 15 | 16 | if [[ -n "${post_init}" ]]; then 17 | "${post_init}" 18 | else 19 | sh 20 | fi 21 | 22 | echo "post-init command exited with status: ${?}" 23 | 24 | # Halting doesn't work properly on all arches in qemu, so reboot instead 25 | # (pass -no-reboot to qemu to exit on reboot) 26 | reboot 27 | -------------------------------------------------------------------------------- /thirdparty/valgrind/.gitignore: -------------------------------------------------------------------------------- 1 | /valgrind-*.tar.bz2 2 | -------------------------------------------------------------------------------- /utilities/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(MBP_TOP_LEVEL_BUILD) 2 | configure_file( 3 | ${CMAKE_CURRENT_SOURCE_DIR}/create.sh.in 4 | ${CMAKE_CURRENT_BINARY_DIR}/create.sh 5 | @ONLY 6 | ) 7 | endif() 8 | -------------------------------------------------------------------------------- /utilities/META-INF/com/google/android/update-binary: -------------------------------------------------------------------------------- 1 | #!/sbin/sh 2 | 3 | set -e 4 | 5 | interface="${1}" 6 | updater_fd="${2}" 7 | zipfile="${3}" 8 | 9 | ui_print() { 10 | echo -en "ui_print ${1}\n" > /proc/self/fd/"${updater_fd}" 11 | echo -en "ui_print\n" > /proc/self/fd/"${updater_fd}" 12 | } 13 | 14 | mount /system || : 15 | mount /cache || : 16 | mount /data || : 17 | 18 | rm -rf /tmp/dbu/ 19 | mkdir -p /tmp/dbu/ 20 | cd /tmp/dbu/ 21 | 22 | unzip "${zipfile}" 23 | 24 | cat > utilities_cmd.sh < 33 | -------------------------------------------------------------------------------- /utilities/template/META-INF/com/google/android/aroma/ttf/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chenxiaolong/DualBootPatcher/6fb7ac639f0589b72241a8650713d057cfe782e8/utilities/template/META-INF/com/google/android/aroma/ttf/Roboto-Regular.ttf --------------------------------------------------------------------------------