From 8613dc027826b0e6e7a368a600ecf3c9899704d3 Mon Sep 17 00:00:00 2001 From: Ethan Yonker Date: Thu, 11 Sep 2014 09:28:20 -0500 Subject: Fix handling of MTP fork/child process Change-Id: Iacd8a38d21e9c8b0dfafefbeb646f46cd3ba02a1 --- partitionmanager.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'partitionmanager.cpp') diff --git a/partitionmanager.cpp b/partitionmanager.cpp index bc27ccbcb..d83518b05 100644 --- a/partitionmanager.cpp +++ b/partitionmanager.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include "variables.h" #include "twcommon.h" #include "partitions.hpp" @@ -2212,8 +2213,12 @@ bool TWPartitionManager::Disable_MTP(void) { TWFunc::write_file("/sys/class/android_usb/android0/idVendor", vendorstr); TWFunc::write_file("/sys/class/android_usb/android0/idProduct", productstr); if (mtppid) { - kill(mtppid, SIGTERM); + LOGINFO("Disabling MTP\n"); + int status; + kill(mtppid, SIGKILL); mtppid = 0; + // We don't care about the exit value, but this prevents a zombie process + waitpid(mtppid, &status, 0); } property_set("sys.usb.config", "adb"); DataManager::SetValue("tw_mtp_enabled", 0); -- cgit v1.2.3