PTP/IP协议

来源:互联网 发布:入库单打印软件 编辑:程序博客网 时间:2024/06/03 20:53

PTP/IP (PTP over IP) 是一个通过IP连接,建立在 Picture Transfer Protocol (PTP) 上的传输层。

我之所以在了解这个东西是因为有一台 Nikon 相机支持 WLAN 和手机传输相片,但是APP设计得极差(叫做 WMU,Wireless Mobile Utility),强制压缩相片不支持传输原图,所以特意反编译了其APP发现他使用了一个叫做PTP的协议来进行传输。经过不懈努力我在 Google Play 上找到了两个不错的替代品 Snaps DSLR 和 Camra Connectcast,可惜都是收费的。

作为一名程序员这怎么能忍??!!

下面来自 http://sourceforge.net/projects/libptp

实施 PTP 的摄像机列表不断增加。大多数 (如果不是全部) 2002年以后设计的 USB 摄像头也在支持这一方案。下面是在他们的相机中实施 PTP 的供应商列表:

  • 柯达
  • 惠普
  • 尼康
  • 佳能
  • 松下
  • 奥林巴斯
  • 可达能
  • 富士
  • 理光
  • 索尼
  • 更多

请注意, 如果你的相机是支持的, 它并不意味着
它能够执行所有的 trigerring 操作 (如捕获,上传文件或调整属性)。索尼相机是糟糕的方案实现的很好的例子, 你唯一能做的就是下载文件。索尼甚至打破了 USB 规格分配所有的相机一样产品/供应商 id。

目前大多数的功能是支持。上传/下载文件,
拍照和设置相机属性支持, 只要您的相机支持它。但是, 有许多供应商扩展不支持.例如佳能使用一些专有的扩展操作拍照 (进入捕捉模式, 延长镜头等), 尼康介绍专有的 PTP 属性。

参考维基百科的介绍 https://en.wikipedia.org/wiki/Picture_Transfer_Protocol

反编译

接下来让我们做一些刺激的事情。

  • 下载 wireless_mobile_utility
  • Google Play 下载

得到 apk 后提取 dex 使用 dex2jar 工具转换后再使用 jd-gui 进行反编译,很开心这个apk没有进行混淆工作。然后我在大量的类中发现了几个关键点:

key

只要我们提取出这几个关键类里的代码也许就能自己实现出来相应功能。过几天再更新。

—————-未完待续—————

原创粉丝点击