Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c7eee6fe authored by bigbiff bigbiff's avatar bigbiff bigbiff
Browse files

add mtp responder to TWRP.

Big thanks to Dees_Troy for helping with the implementation.

Change-Id: I6c9c522b9c9de5dc139e2ecb0141008182ba07f0
parent 3c4ac3bc
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -73,7 +73,8 @@ LOCAL_STATIC_LIBRARIES :=
LOCAL_SHARED_LIBRARIES :=

LOCAL_STATIC_LIBRARIES += libcrecovery libguitwrp
LOCAL_SHARED_LIBRARIES += libz libc libstlport libcutils libstdc++ libtar libblkid libminuitwrp libminadbd libmtdutils libminzip libaosprecovery
LOCAL_SHARED_LIBRARIES += libz libc libstlport libcutils libstdc++ libtar libblkid libminuitwrp libminadbd libmtdutils libminzip libaosprecovery libcorkscrew
LOCAL_SHARED_LIBRARIES += libgccdemangle

ifneq ($(wildcard system/core/libsparse/Android.mk),)
LOCAL_SHARED_LIBRARIES += libsparse
@@ -84,6 +85,7 @@ ifeq ($(TW_OEM_BUILD),true)
    BOARD_HAS_NO_REAL_SDCARD := true
    TW_USE_TOOLBOX := true
    TW_EXCLUDE_SUPERSU := true
    TW_EXCLUDE_MTP := true
endif
ifeq ($(TARGET_USERIMAGES_USE_EXT4), true)
    LOCAL_CFLAGS += -DUSE_EXT4
@@ -124,6 +126,10 @@ LOCAL_MODULE_TAGS := eng
LOCAL_C_INCLUDES += system/extras/ext4_utils

#TWRP Build Flags
ifeq ($(TW_EXCLUDE_MTP),)
    LOCAL_SHARED_LIBRARIES += libtwrpmtp
    LOCAL_CFLAGS += -DTW_HAS_MTP
endif
ifneq ($(TW_NO_SCREEN_TIMEOUT),)
    LOCAL_CFLAGS += -DTW_NO_SCREEN_TIMEOUT
endif
@@ -373,7 +379,8 @@ include $(commands_recovery_local_path)/injecttwrp/Android.mk \
    $(commands_recovery_local_path)/openaes/Android.mk \
    $(commands_recovery_local_path)/toolbox/Android.mk \
    $(commands_recovery_local_path)/libmincrypt/Android.mk \
    $(commands_recovery_local_path)/twrpTarMain/Android.mk
    $(commands_recovery_local_path)/twrpTarMain/Android.mk \
    $(commands_recovery_local_path)/mtp/Android.mk

ifeq ($(TW_INCLUDE_CRYPTO_SAMSUNG), true)
    include $(commands_recovery_local_path)/crypto/libcrypt_samsung/Android.mk
@@ -411,5 +418,3 @@ endif
ifeq ($(TW_INCLUDE_FB2PNG), true)
    include $(commands_recovery_local_path)/fb2png/Android.mk
endif

commands_recovery_local_path :=
+8 −0
Original line number Diff line number Diff line
@@ -996,6 +996,14 @@ void DataManager::SetDefaultValues()
	LOGINFO("TW_EXCLUDE_ENCRYPTED_BACKUPS := true\n");
	mValues.insert(make_pair("tw_include_encrypted_backup", make_pair("0", 0)));
#endif
#ifdef TW_HAS_MTP
	mConstValues.insert(make_pair("tw_has_mtp", "1"));
	mValues.insert(make_pair("tw_mtp_enabled", make_pair("1", 1)));
#else
	LOGINFO("TW_EXCLUDE_MTP := true\n");
	mConstValues.insert(make_pair("tw_has_mtp", "0"));
	mConstValues.insert(make_pair("tw_mtp_enabled", "0"));
#endif
}

// Magic Values
+21 −2
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ on init

    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 18D1
    write /sys/class/android_usb/android0/idProduct D001
    write /sys/class/android_usb/android0/idProduct D002
    write /sys/class/android_usb/android0/functions adb
    write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer}
    write /sys/class/android_usb/android0/iProduct ${ro.product.model}
@@ -51,6 +51,25 @@ on property:sys.storage.ums_enabled=0
    write /sys/class/android_usb/android0/functions adb
    write /sys/class/android_usb/android0/enable ${service.adb.root}

on property:sys.usb.config=none
    stop adbd
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/bDeviceClass 0

on property:sys.usb.config=mtp,adb
    stop adbd
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/functions mtp,adb
    write /sys/class/android_usb/android0/enable 1
    start adbd

on property:sys.usb.config=adb
    stop adbd
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/functions adb
    write /sys/class/android_usb/android0/enable ${service.adb.root}
    start adbd

service ueventd /sbin/ueventd
    critical

+26 −1
Original line number Diff line number Diff line
@@ -1305,7 +1305,6 @@ int GUIAction::doAction(Action action, int isThreaded /* = 0 */)
				} else {
					ret = 1; // failure
				}
				PartitionManager.Update_System_Details();
				if (DataManager::GetIntValue(TW_HAS_INJECTTWRP) == 1 && DataManager::GetIntValue(TW_INJECT_AFTER_ZIP) == 1) {
					operation_start("ReinjectTWRP");
					gui_print("Injecting TWRP into boot image...\n");
@@ -1469,6 +1468,32 @@ int GUIAction::doAction(Action action, int isThreaded /* = 0 */)
			operation_end(op_status, simulate);
			return 0;
		}
		if (function == "startmtp")
		{
			int op_status = 0;

			operation_start("Start MTP");
			if (PartitionManager.Enable_MTP())
				op_status = 0; // success
			else
				op_status = 1; // fail

			operation_end(op_status, simulate);
			return 0;
		}
		if (function == "stopmtp")
		{
			int op_status = 0;

			operation_start("Stop MTP");
			if (PartitionManager.Disable_MTP())
				op_status = 0; // success
			else
				op_status = 1; // fail

			operation_end(op_status, simulate);
			return 0;
		}
	}
	else
	{
+39 −0
Original line number Diff line number Diff line
@@ -901,6 +901,45 @@
				<action function="page">usb_mount</action>
			</object>

			<object type="button">
				<highlight color="%highlight_color%" />
				<conditions>
					<condition var1="tw_has_mtp" var2="1" />
					<condition var1="tw_mtp_enabled" var2="0" />
				</conditions>
				<placement x="%col3_x%" y="row1_y" />
				<font resource="font" color="%button_text_color%" />
				<text>Enable MTP</text>
				<image resource="main_button" />
				<action function="startmtp"></action>
			</object>

			<object type="button">
				<highlight color="%highlight_color%" />
				<conditions>
					<condition var1="tw_has_mtp" var2="1" />
					<condition var1="tw_mtp_enabled" var2="1" />
				</conditions>
				<placement x="%col3_x%" y="row1_y" />
				<font resource="font" color="%button_text_color%" />
				<text>Disable MTP</text>
				<image resource="main_button" />
				<action function="stopmtp"></action>
			</object>

			<object type="button">
				<highlight color="%highlight_color%" />
				<conditions>
					<condition var1="tw_is_encrypted" var2="1" />
					<condition var1="tw_is_decrypted" var2="0" />
				</conditions>
				<placement x="%col3_x%" y="row1_y" />
				<font resource="font" color="%button_text_color%" />
				<text>Decrypt Data</text>
				<image resource="main_button" />
				<action function="page">decrypt</action>
			</object>

			<object type="button">
				<highlight color="%highlight_color%" />
				<fill color="%button_fill_color%" />
Loading