禁止添加文件夹:
找到frameworks/av/media/mtp中的MtpServer.cpp源文件
修改函数MtpResponseCode MtpServer::doSendObjectInfo()如下图
- MtpResponseCode MtpServer::doSendObjectInfo() {
- MtpString path;
- uint16_t temp16;
- uint32_t temp32;
- if (mRequest.getParameterCount() < 2)
- return MTP_RESPONSE_INVALID_PARAMETER;
- MtpStorageID storageID = mRequest.getParameter(1);
- MtpStorage* storage = getStorage(storageID);
- MtpObjectHandle parent = mRequest.getParameter(2);
- if (!storage)
- return MTP_RESPONSE_INVALID_STORAGE_ID;
- //Added for USB Develpment debug, more log for more debuging help
- sxlog_printf(ANDROID_LOG_DEBUG, "MtpServer",
- "%s: storageID: %08X, parent: 0x%x", __func__, storageID, parent );
- //Added for USB Develpment debug, more log for more debuging help
- // special case the root
- if (parent == MTP_PARENT_ROOT) {
- path = storage->getPath();
- parent = 0;
- return MTP_RESPONSE_OBJECT_WRITE_PROTECTED;//头层文件 禁止添加 wanchengguo 20180718
- } else {
- int64_t length;
- MtpObjectFormat format;
- int result = mDatabase->getObjectFilePath(parent, path, length, format);
- ALOGI("wanchengguo: %s format: %04X\n", (const char *)path, format);
- //return MTP_RESPONSE_OBJECT_WRITE_PROTECTED;//二级文件 禁止添加 wanchengguo 20180718
- if (result != MTP_RESPONSE_OK)
- return result;
- if (format != MTP_FORMAT_ASSOCIATION)
- return MTP_RESPONSE_INVALID_PARENT_OBJECT;
- }