android通过USB的MTP模式下,禁止用户在根目录添加文件

禁止添加文件夹:

找到frameworks/av/media/mtp中的MtpServer.cpp源文件

修改函数MtpResponseCode MtpServer::doSendObjectInfo()如下图

  1. MtpResponseCode MtpServer::doSendObjectInfo() {
  2.     MtpString path;
  3.     uint16_t temp16;
  4.     uint32_t temp32;
  5.     if (mRequest.getParameterCount() < 2)
  6.         return MTP_RESPONSE_INVALID_PARAMETER;
  7.     MtpStorageID storageID = mRequest.getParameter(1);
  8.     MtpStorage* storage = getStorage(storageID);
  9.     MtpObjectHandle parent = mRequest.getParameter(2);
  10.     if (!storage)
  11.         return MTP_RESPONSE_INVALID_STORAGE_ID;
  12.     //Added for USB Develpment debug, more log for more debuging help
  13.     sxlog_printf(ANDROID_LOG_DEBUG, "MtpServer",
  14.                 "%s: storageID: %08X, parent: 0x%x", __func__, storageID, parent );
  15.     //Added for USB Develpment debug, more log for more debuging help
  16.     // special case the root
  17.     if (parent == MTP_PARENT_ROOT) {
  18.         path = storage->getPath();
  19.         parent = 0;
  20.     return MTP_RESPONSE_OBJECT_WRITE_PROTECTED;//头层文件 禁止添加 wanchengguo 20180718
  21.     } else {
  22.         int64_t length;
  23.         MtpObjectFormat format;
  24.         int result = mDatabase->getObjectFilePath(parent, path, length, format);
  25.      ALOGI("wanchengguo: %s format: %04X\n", (const char *)path, format);
  26.     //return MTP_RESPONSE_OBJECT_WRITE_PROTECTED;//二级文件 禁止添加 wanchengguo 20180718
  27.             if (result != MTP_RESPONSE_OK)
  28.               return result;
  29.             if (format != MTP_FORMAT_ASSOCIATION)
  30.               return MTP_RESPONSE_INVALID_PARENT_OBJECT;
  31.     
  32.     }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值