图库分享升级到5.1.0版本传输失败分析
【预置条件】
主副设备打开wifi、蓝牙开关。
发送方、接收方打开统一互联分享开关。
【测试步骤】
发送方选择文件进行共享,接收方正常接收共享的文件。
【预期结果】
发送方输入接收方的pin码后,接收方正常接收共享的文件。
【实际结果】
发送方输入接收方的pin码后,提示传输错误。
分析:
fileshare服务中,会先创建软总线sessionserver后,再初始化dm client。

从日志中看到,创建软总线sessionserver失败,报-426442743 SOFTBUS_PERMISSION_DENIED错误;
下一步的dm client初始化未执行到。

看代码发现5.1版本中fileshare SDK中SESSION_PKG_NAME没在软总线进行配置。
随后将SESSION_PKG_NAME配置好。
foundation/communication/dsoftbus/core/common/security/permission/softbus_trans_permission.json
{
"SESSION_NAME": "com.ohos.plrdtest.hongyan.*",
"REGEXP": "true",
"DEVID": "NETWORKID",
"SEC_LEVEL": "public",
"APP_INFO": [
{
"TYPE": "normal_app",
"PKG_NAME": "com.ohos.plrdtest.hongyan",
"ACTIONS":"create,open"
}
]
},
重新编译镜像运行,还是显示传输失败。

查看日志,IPC消息可以发送到dm,但获取不到可信设备。


继续向上查找根因,发现可信关系是com.ohos.oneconnect.share创建的,获取又是用的FileShareService,5.1从之前5.0设备级可信改为现在的应用级可信了,所以,需要把获取时改成com.ohos.oneconnect.share,谁建立的可信关系谁就去获取。
“FileShareService”是系统SA服务,不是普通的APP,是系统自带天然的可信业务,因此将“FileShareService”加到Dm的SA服务白名单中,解决5.1版本中APP级可信限制。

编译镜像运行,文件传输成功。
更多推荐
所有评论(0)