PTP specifies a way of creating, transferring and manipulating objects which are typically photographic images such as a JPEG file.
However, it is designed to support existing standards, such as Exif, TIFF/EP, DCF, and DPOF, and is commonly implemented over the USB and FireWire transport layers.
By contrast, if a camera is mounted via USB MSC, the physical file system and layout are exposed to the user.
Many modern digital cameras from Canon and Nikon can be controlled via PTP from a USB host enabled computing device (smartphone, PC or Arduino for example).
PTP/IP,[4] developed by FotoNation and first implemented in a round of Wi-Fi digital cameras by Nikon, Canon, and Eastman Kodak, allows data transfer over any IP-based network.
PTP on Linux and other free and open-source operating systems is supported by a number of libraries, such as libgphoto and libptp, used by applications such as digiKam and F-Spot.
[citation needed] As on Microsoft Windows there is no native support on Linux, but by means of GVfs the devices can easily be mounted and made available to applications that use standard POSIX commands and library functions.
[7] As with MTP, a limitation is that when transferring photos from a computer to the Android device, file timestamps are replaced with the time of the copy.