Fix handling of MTP fork/child process

Change-Id: Iacd8a38d21e9c8b0dfafefbeb646f46cd3ba02a1
This commit is contained in:
Ethan Yonker
2014-09-11 09:28:20 -05:00
parent a1f38054c7
commit 8613dc0278
2 changed files with 8 additions and 1 deletions
+6 -1
View File
@@ -29,6 +29,7 @@
#include <fcntl.h>
#include <iostream>
#include <iomanip>
#include <sys/wait.h>
#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);