From 4b94cfd3910de26dbca64cf746a899cbc635158b Mon Sep 17 00:00:00 2001 From: Ethan Yonker Date: Thu, 11 Dec 2014 10:00:45 -0600 Subject: Attempt to set the proper uid/gid/contexts on new files and dirs Files and folders that we create during backups, copy log, or MTP operations often do not have the proper uid/gid/contexts assigned. We will attempt to read the proper contexts from the settings storage path and assign those same contexts to any files or dirs that we create. Change-Id: I769f9479854122b49b499de2175e6e2d026f8afd --- mtp/Android.mk | 4 ++-- mtp/MtpServer.cpp | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'mtp') diff --git a/mtp/Android.mk b/mtp/Android.mk index 809a29aba..283a283dd 100755 --- a/mtp/Android.mk +++ b/mtp/Android.mk @@ -29,7 +29,7 @@ LOCAL_SRC_FILES = \ twrpMtp.cpp \ mtp_MtpDatabase.cpp \ node.cpp -LOCAL_SHARED_LIBRARIES += libz libc libusbhost libstdc++ libstlport libdl libcutils libutils +LOCAL_SHARED_LIBRARIES += libz libc libusbhost libstdc++ libstlport libdl libcutils libutils libaosprecovery ifneq ($(TW_MTP_DEVICE),) LOCAL_CFLAGS += -DUSB_MTP_DEVICE=$(TW_MTP_DEVICE) @@ -66,5 +66,5 @@ LOCAL_SRC_FILES = \ twrpMtp.cpp \ mtp_MtpDatabase.cpp \ node.cpp -LOCAL_SHARED_LIBRARIES += libz libc libusbhost libstdc++ libstlport libdl libcutils libutils +LOCAL_SHARED_LIBRARIES += libz libc libusbhost libstdc++ libstlport libdl libcutils libutils libaosprecovery include $(BUILD_EXECUTABLE) diff --git a/mtp/MtpServer.cpp b/mtp/MtpServer.cpp index 66a641404..f4af2b948 100755 --- a/mtp/MtpServer.cpp +++ b/mtp/MtpServer.cpp @@ -26,6 +26,7 @@ #include #include #include "../twcommon.h" +#include "../set_metadata.h" #include #include "MtpTypes.h" @@ -1002,6 +1003,7 @@ MtpResponseCode MtpServer::doSendObjectInfo() { return MTP_RESPONSE_GENERAL_ERROR; } chown((const char *)path, getuid(), mFileGroup); + tw_set_default_metadata((const char *)path); // SendObject does not get sent for directories, so call endSendObject here instead mDatabase->lockMutex(); @@ -1073,6 +1075,7 @@ MtpResponseCode MtpServer::doSendObject() { ret = ioctl(mFD, MTP_RECEIVE_FILE, (unsigned long)&mfr); } close(mfr.fd); + tw_set_default_metadata((const char *)mSendObjectFilePath); if (ret < 0) { unlink(mSendObjectFilePath); -- cgit v1.2.3