[Galaxy S 4 i9505 Original Android Development] chenxiaolong:
Build 8.0.0.r2007.gfa298ab is finally out! It contains a massive number of changes (more than 10,000 lines of code changed in 199 files).

Major changes:

New ROM details screen

Patch multiple files simultaneously

Support for cancelling patching

Support for updating the ramdisk for other ROMs (eg. updating the ramdisk for data-slot-cm while booted into the primary ROM)

Adds missing Marchmallow runtime permission requests

Fix ROM Settings and App sharing settings being selectable in the navigation drawer.

New v3 protocol for the mbtool daemon (eliminates need for root for any file-related operations. Still requires root for in-app flashing, but we're getting close to not needing it)

Fixes security issue with 3rd party apps being able to directly access services from the app

Use proper APIs for icon tinting in the action bar

Fix unenforced input validation when choosing an ID for data-slots and extsd-slots

Prevent cloud services from appearing when choosing files to patch as we don't use the ContentProvider APIs

Android app no longer depends on any old or unmaintained libraries

Added missing DLL dependencies for the Windows build caused by the upgrade to mingw-w64-qt5-base 5.5.0 on my build server

Possible fix for Mediatek flashing issues ([mention]Salman A.[/mention], please test!)

Hack to potentially reduce boot time on the Galaxy S4 by 1-2 seconds by skipping the sec-battery initialization

A whole lot more backend changes!

Enjoy!

git diff a5b4ef1..fa298ab | filterdiff -x '*/mbtool/protocol/*' -x '*/Android_GUI/src/mbtool/*' | diffstat
/dev/null |binary
b/Android_GUI/AndroidManifest.xml | 17
b/Android_GUI/build.gradle.in | 19
b/Android_GUI/res/drawable-hdpi/action_bar_cancel.png |binary
b/Android_GUI/res/drawable-hdpi/action_bar_check.png |binary
b/Android_GUI/res/drawable-hdpi/ic_content_add_white_48dp.png |binary
b/Android_GUI/res/drawable-hdpi/rom_details_action_backup.png |binary
b/Android_GUI/res/drawable-hdpi/rom_details_action_home.png |binary
b/Android_GUI/res/drawable-hdpi/rom_details_action_set_kernel.png |binary
b/Android_GUI/res/drawable-hdpi/rom_details_action_switch_rom_white_48dp.png |binary
b/Android_GUI/res/drawable-hdpi/rom_details_action_update_ramdisk.png |binary
b/Android_GUI/res/drawable-hdpi/rom_details_action_wipe.png |binary
b/Android_GUI/res/drawable-mdpi/action_bar_cancel.png |binary
b/Android_GUI/res/drawable-mdpi/action_bar_check.png |binary
b/Android_GUI/res/drawable-mdpi/ic_content_add_white_48dp.png |binary
b/Android_GUI/res/drawable-mdpi/rom_details_action_backup.png |binary
b/Android_GUI/res/drawable-mdpi/rom_details_action_home.png |binary
b/Android_GUI/res/drawable-mdpi/rom_details_action_set_kernel.png |binary
b/Android_GUI/res/drawable-mdpi/rom_details_action_switch_rom_white_48dp.png |binary
b/Android_GUI/res/drawable-mdpi/rom_details_action_update_ramdisk.png |binary
b/Android_GUI/res/drawable-mdpi/rom_details_action_wipe.png |binary
b/Android_GUI/res/drawable-xhdpi/action_bar_cancel.png |binary
b/Android_GUI/res/drawable-xhdpi/action_bar_check.png |binary
b/Android_GUI/res/drawable-xhdpi/ic_content_add_white_48dp.png |binary
b/Android_GUI/res/drawable-xhdpi/rom_details_action_backup.png |binary
b/Android_GUI/res/drawable-xhdpi/rom_details_action_home.png |binary
b/Android_GUI/res/drawable-xhdpi/rom_details_action_set_kernel.png |binary
b/Android_GUI/res/drawable-xhdpi/rom_details_action_switch_rom_white_48dp.png |binary
b/Android_GUI/res/drawable-xhdpi/rom_details_action_update_ramdisk.png |binary
b/Android_GUI/res/drawable-xhdpi/rom_details_action_wipe.png |binary
b/Android_GUI/res/drawable-xxhdpi/action_bar_cancel.png |binary
b/Android_GUI/res/drawable-xxhdpi/action_bar_check.png |binary
b/Android_GUI/res/drawable-xxhdpi/ic_content_add_white_48dp.png |binary
b/Android_GUI/res/drawable-xxhdpi/rom_details_action_backup.png |binary
b/Android_GUI/res/drawable-xxhdpi/rom_details_action_home.png |binary
b/Android_GUI/res/drawable-xxhdpi/rom_details_action_set_kernel.png |binary
b/Android_GUI/res/drawable-xxhdpi/rom_details_action_switch_rom_white_48dp.png |binary
b/Android_GUI/res/drawable-xxhdpi/rom_details_action_update_ramdisk.png |binary
b/Android_GUI/res/drawable-xxhdpi/rom_details_action_wipe.png |binary
b/Android_GUI/res/drawable-xxxhdpi/action_bar_cancel.png |binary
b/Android_GUI/res/drawable-xxxhdpi/action_bar_check.png |binary
b/Android_GUI/res/drawable-xxxhdpi/ic_content_add_white_48dp.png |binary
b/Android_GUI/res/drawable-xxxhdpi/rom_details_action_backup.png |binary
b/Android_GUI/res/drawable-xxxhdpi/rom_details_action_home.png |binary
b/Android_GUI/res/drawable-xxxhdpi/rom_details_action_set_kernel.png |binary
b/Android_GUI/res/drawable-xxxhdpi/rom_details_action_switch_rom_white_48dp.png |binary
b/Android_GUI/res/drawable-xxxhdpi/rom_details_action_update_ramdisk.png |binary
b/Android_GUI/res/drawable-xxxhdpi/rom_details_action_wipe.png |binary
b/Android_GUI/res/layout/activity_rom_detail.xml | 79
b/Android_GUI/res/layout/card_v7_patch_file_item.xml | 87
b/Android_GUI/res/layout/card_v7_patcher_details.xml | 46
b/Android_GUI/res/layout/card_v7_patcher_file_chooser.xml | 47
b/Android_GUI/res/layout/card_v7_patcher_mainopts.xml | 88
b/Android_GUI/res/layout/card_v7_patcher_progress.xml | 64
b/Android_GUI/res/layout/card_v7_rom.xml | 5
b/Android_GUI/res/layout/dialog_patcher_opts.xml | 80
b/Android_GUI/res/layout/fragment_patcher.xml | 87
b/Android_GUI/res/layout/fragment_zip_flashing.xml | 4
b/Android_GUI/res/layout/rom_detail_action_item.xml | 39
b/Android_GUI/res/layout/rom_detail_card_item.xml | 66
b/Android_GUI/res/layout/rom_detail_info_item.xml | 41
b/Android_GUI/res/menu/actionbar_check_cancel.xml | 32
b/Android_GUI/res/values/dimens.xml | 18
b/Android_GUI/res/values/strings.xml | 158 -
b/Android_GUI/res/values/styles.xml | 24
b/Android_GUI/res/xml/app_sharing_settings.xml | 2
b/Android_GUI/res/xml/rom_settings.xml | 6
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/CommandUtils.java | 4
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/EventCollector.java | 112
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/FileChooserEventCollector.java | 109
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/FileUtils.java | 87
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/MainActivity.java | 15
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/MenuUtils.java | 40
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/PermissionUtils.java | 77
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/RomUtils.java | 194 +
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/SnackbarUtils.java | 45
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/ThreadPoolService.java | 271 ++
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/appsharing/AppListFragment.java | 9
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/appsharing/AppSharingChangeSharedDialog.java | 2
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/appsharing/AppSharingEventCollector.java | 35
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/appsharing/AppSharingSettingsFragment.java | 238 +-
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/appsharing/AppSharingVersionTooOldDialog.java | 74
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/dialogs/FirstUseDialog.java | 2
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/dialogs/GenericConfirmDialog.java | 66
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/dialogs/GenericProgressDialog.java | 2
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/dialogs/GenericYesNoDialog.java | 135 +
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/dialogs/IndeterminateProgressDialog.java | 46
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/freespace/FreeSpaceFragment.java | 36
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/AutomatedPatcherActivity.java | 8
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/DetailsCW.java | 94
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/FileChooserCW.java | 121 -
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/MainOptsCW.java | 490 ----
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/PatchFileFragment.java | 1049 +++++---
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/PatchFileItem.java | 96
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/PatchFileItemAdapter.java | 139 +
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/PatchFileItemViewHolder.java | 60
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/PatchFileState.java | 26
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/PatcherConfigState.java | 106
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/PatcherEventCollector.java | 130 -
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/PatcherOptionsDialog.java | 377 +++
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/PatcherService.java | 651 ++++-
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/PatcherUIListener.java | 34
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/PatcherUtils.java | 69
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/patcher/ProgressCW.java | 155 -
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/picasso/PaletteGeneratorCallback.java | 47
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/picasso/PaletteGeneratorTransformation.java | 54
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/settings/RomSettingsEventCollector.java | 96
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/settings/RomSettingsFragment.java | 197 -
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/settings/RomSettingsService.java | 58
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/settings/RomSettingsUtils.java | 275 --
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/socket/MbtoolSocket.java | 996 +++++---
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/AddToHomeScreenOptionsDialog.java | 23
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/AutomatedSwitcherActivity.java | 234 +
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/CacheRomThumbnailTask.java | 109
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/ChangeInstallLocationDialog.java | 2
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/ConfirmAutomatedSwitchRomDialog.java | 2
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/ConfirmChecksumIssueDialog.java | 32
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/ConfirmMismatchedSetKernelDialog.java | 28
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/ExperimentalInAppWipeDialog.java | 74
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/NamedSlotIdInputDialog.java | 2
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/RomCardAdapter.java | 78
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/RomDetailActivity.java | 1174 +++++++++
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/RomDetailAdapter.java | 283 ++
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/RomIdSelectionDialog.java | 2
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/RomNameInputDialog.java | 23
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/SetKernelConfirmDialog.java | 23
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/SetKernelNeededDialog.java | 2
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/SwitcherEventCollector.java | 226 -
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/SwitcherListFragment.java | 1178 ++++------
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/SwitcherService.java | 949 +++++---
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/SwitcherUtils.java | 83
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/UpdateRamdiskResultDialog.java | 137 +
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/WipeTargetsSelectionDialog.java | 31
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/ZipFlashingActivity.java | 13
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/ZipFlashingFragment.java | 485 ++--
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/ZipFlashingOutputActivity.java | 7
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/ZipFlashingOutputFragment.java | 226 +
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/service/BaseServiceTask.java | 69
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/service/CacheWallpaperTask.java | 48
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/service/CreateLauncherTask.java | 88
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/service/FlashZipsTask.java | 228 +
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/service/GetRomDetailsTask.java | 142 +
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/service/GetRomsStateTask.java | 80
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/service/SetKernelTask.java | 59
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/service/SwitchRomTask.java | 63
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/service/UpdateRamdiskTask.java | 341 ++
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/service/VerifyZipTask.java | 54
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/switcher/service/WipeRomTask.java | 63
b/Android_GUI/src/com/github/chenxiaolong/dualbootpatcher/views/DragSwipeItemTouchCallback.java | 141 +
b/docs/BUILD-mingw.md | 5
b/libmbp/patcherconfig.cpp | 14
b/mbtool/Android.mk.in | 1
b/mbtool/daemon.cpp | 659 -----
b/mbtool/daemon_v3.cpp | 1093 +++++++++
b/mbtool/daemon_v3.h | 27
b/mbtool/initwrapper/devices.cpp | 5
b/mbtool/installer.cpp | 8
b/mbtool/multiboot.h | 2
b/mbtool/util/selinux.cpp | 29
b/mbtool/util/selinux.h | 2
b/protocol/generate-bindings.sh | 36
b/protocol/request.fbs | 93
b/protocol/response.fbs | 103
b/protocol/v2/chmod.fbs | 11
b/protocol/v2/copy.fbs | 13
b/protocol/v2/get_builtin_rom_ids.fbs | 9
b/protocol/v2/get_current_rom.fbs | 9
b/protocol/v2/get_roms_list.fbs | 18
b/protocol/v2/get_version.fbs | 9
b/protocol/v2/loki_patch.fbs | 12
b/protocol/v2/open.fbs | 25
b/protocol/v2/reboot.fbs | 10
b/protocol/v2/selinux_get_label.fbs | 17
b/protocol/v2/selinux_set_label.fbs | 17
b/protocol/v2/set_kernel.fbs | 12
b/protocol/v2/switch_rom.fbs | 24
b/protocol/v2/wipe_rom.fbs | 28
b/protocol/v3/file_chmod.fbs | 12
b/protocol/v3/file_close.fbs | 10
b/protocol/v3/file_open.fbs | 26
b/protocol/v3/file_read.fbs | 15
b/protocol/v3/file_seek.fbs | 22
b/protocol/v3/file_selinux_get_label.fbs | 15
b/protocol/v3/file_selinux_set_label.fbs | 15
b/protocol/v3/file_stat.fbs | 41
b/protocol/v3/file_write.fbs | 14
b/protocol/v3/mb_get_booted_rom_id.fbs | 9
b/protocol/v3/mb_get_installed_roms.fbs | 18
b/protocol/v3/mb_get_packages_count.fbs | 13
b/protocol/v3/mb_get_version.fbs | 9
b/protocol/v3/mb_set_kernel.fbs | 12
b/protocol/v3/mb_switch_rom.fbs | 24
b/protocol/v3/mb_wipe_rom.fbs | 28
b/protocol/v3/path_chmod.fbs | 11
b/protocol/v3/path_copy.fbs | 13
b/protocol/v3/path_get_directory_size.fbs | 12
b/protocol/v3/path_selinux_get_label.fbs | 17
b/protocol/v3/path_selinux_set_label.fbs | 17
b/protocol/v3/reboot.fbs | 10
199 files changed, 11100 insertions(+), 6292 deletions(-)