libimobiledevice
пятница, 26 июля 13 г.
libimobiledevice.org
пятница, 26 июля 13 г.
usbmuxd
http://cgit.sukimashita.com/usbmuxd.git/
A socket daemon to multiplex connections from and to iOS
devices.
Mac OS,...
iTunes
пятница, 26 июля 13 г.
Apple Mobile Device Support
пятница, 26 июля 13 г.
Socat - http://www.dest-unreach.org/socat/
$ brew install socat
sudo mv /var/run/usbmuxd /var/run/usbmuxx
sudo socat -t100...
> 2013/07/03 18:05:32.872128 length=513 from=0 to=512
01 02 00 00 01 00 00 00 08 00 00 00 f8 00 00 00 ................
3c ...
Packet analyzer:
https://github.com/storoj/idevice-packet-analyzer
cd /path/to/packet/analyzer
bash ioslog2html.sh /path/t...
Pretty log
пятница, 26 июля 13 г.
#include <libimobiledevice/libimobiledevice.h>
#include <libimobiledevice/lockdown.h>
#include <libimobiledevice/screensho...
$ idevicescreenshot
Could not start screenshotr service! Remember that you have to
mount the Developer disk image on your ...
$ ls /Applications/Xcode.app/Contents/Developer/Platforms/
iPhoneOS.platform/DeviceSupport/
4.2 5.0 6.0 4.3 5.1
6.1 (10B14...
Developer Images
No developer image Developer image mounted
пятница, 26 июля 13 г.
Screenshotr service
пятница, 26 июля 13 г.
Official
http://www.libimobiledevice.org/
http://cgit.sukimashita.com/libimobiledevice.git/
VS project
https://github.com/s...
Upcoming SlideShare
Loading in …5
×

Алексей Сторожев «Библиотека libimobiledevice»

1,280 views

Published on

Видео доклада: http://www.youtube.com/watch?v=jIbPiBkt3Vg

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,280
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Алексей Сторожев «Библиотека libimobiledevice»

  1. 1. libimobiledevice пятница, 26 июля 13 г.
  2. 2. libimobiledevice.org пятница, 26 июля 13 г.
  3. 3. usbmuxd http://cgit.sukimashita.com/usbmuxd.git/ A socket daemon to multiplex connections from and to iOS devices. Mac OS, Linux: /var/run/usbmuxd Windows: localhost:27015 пятница, 26 июля 13 г.
  4. 4. iTunes пятница, 26 июля 13 г.
  5. 5. Apple Mobile Device Support пятница, 26 июля 13 г.
  6. 6. Socat - http://www.dest-unreach.org/socat/ $ brew install socat sudo mv /var/run/usbmuxd /var/run/usbmuxx sudo socat -t100 -x -v UNIX-LISTEN:/var/run/ usbmuxd,mode=777,reuseaddr,fork UNIX-CONNECT:/var/run/usbmuxx > ~/ Desktop/usbmuxd.log 2>&1 Sniffing пятница, 26 июля 13 г.
  7. 7. > 2013/07/03 18:05:32.872128 length=513 from=0 to=512 01 02 00 00 01 00 00 00 08 00 00 00 f8 00 00 00 ................ 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 <?xml version="1 2e 30 22 20 65 6e 63 6f 64 69 6e 67 3d 22 55 54 .0" encoding="UT 46 2d 38 22 3f 3e 0a F-8"?>. 3c 21 44 4f 43 54 59 50 45 20 70 6c 69 73 74 20 <!DOCTYPE plist 50 55 42 4c 49 43 20 22 2d 2f 2f 41 70 70 6c 65 PUBLIC "-//Apple 2f 2f 44 54 44 20 50 4c 49 53 54 20 31 2e 30 2f //DTD PLIST 1.0/ 2f 45 4e 22 20 22 68 74 74 70 3a 2f 2f 77 77 77 /EN" "http://www 2e 61 70 70 6c 65 2e 63 6f 6d 2f 44 54 44 73 2f .apple.com/DTDs/ 50 72 6f 70 65 72 74 79 4c 69 73 74 2d 31 2e 30 PropertyList-1.0 2e 64 74 64 22 3e 0a .dtd">. 3c 70 6c 69 73 74 20 76 65 72 73 69 6f 6e 3d 22 <plist version=" 31 2e 30 22 3e 0a 1.0">. 3c 64 69 63 74 3e 0a <dict>. 09 3c 6b 65 79 3e 42 75 6e 64 6c 65 49 44 3c 2f .<key>BundleID</ 6b 65 79 3e 0a key>. 09 3c 73 74 72 69 6e 67 3e 63 6f 6d 2e 61 70 70 .<string>com.app 6c 65 2e 64 74 2e 58 63 6f 64 65 3c 2f 73 74 72 le.dt.Xcode</str 69 6e 67 3e 0a ing>. 09 3c 6b 65 79 3e 43 6c 69 65 6e 74 56 65 72 73 .<key>ClientVers 69 6f 6e 53 74 72 69 6e 67 3c 2f 6b 65 79 3e 0a ionString</key>. 09 3c 73 74 72 69 6e 67 3e 75 73 62 6d 75 78 64 .<string>usbmuxd 2d 33 31 37 3c 2f 73 74 72 69 6e 67 3e 0a -317</string>. 09 3c 6b 65 79 3e 43 6f 6e 6e 54 79 70 65 3c 2f .<key>ConnType</ 6b 65 79 3e 0a key>. 09 3c 69 6e 74 65 67 65 72 3e 30 3c 2f 69 6e 74 .<integer>0</int 65 67 65 72 3e 0a eger>. 09 3c 6b 65 79 3e 4d 65 73 73 61 67 65 54 79 70 .<key>MessageTyp 65 3c 2f 6b 65 79 3e 0a e</key>. 09 3c 73 74 72 69 6e 67 3e 4c 69 73 74 65 6e 3c .<string>Listen< 2f 73 74 72 69 6e 67 3e 0a /string>. 09 3c 6b 65 79 3e 50 72 6f 67 4e 61 6d 65 3c 2f .<key>ProgName</ 6b 65 79 3e 0a key>. 09 3c 73 74 72 69 6e 67 3e 58 63 6f 64 65 3c 2f .<string>Xcode</ 73 74 72 69 6e 67 3e 0a string>. 09 3c 6b 65 79 3e 6b 4c 69 62 55 53 42 4d 75 78 .<key>kLibUSBMux 56 65 72 73 69 6f 6e 3c 2f 6b 65 79 3e 0a Version</key>. 09 3c 69 6e 74 65 67 65 72 3e 33 3c 2f 69 6e 74 .<integer>3</int 65 67 65 72 3e 0a eger>. 3c 2f 64 69 63 74 3e 0a </dict>. 3c 2f 70 6c 69 73 74 3e 0a </plist>. -- < 2013/07/03 18:05:32.874439 length=294 from=0 to=293 26 01 00 00 01 00 00 00 08 00 00 00 f8 00 00 00 &............... 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 <?xml version="1 2e 30 22 20 65 6e 63 6f 64 69 6e 67 3d 22 55 54 .0" encoding="UT 46 2d 38 22 3f 3e 0a F-8"?>. 3c 21 44 4f 43 54 59 50 45 20 70 6c 69 73 74 20 <!DOCTYPE plist 50 55 42 4c 49 43 20 22 2d 2f 2f 41 70 70 6c 65 PUBLIC "-//Apple 2f 2f 44 54 44 20 50 4c 49 53 54 20 31 2e 30 2f //DTD PLIST 1.0/ 2f 45 4e 22 20 22 68 74 74 70 3a 2f 2f 77 77 77 /EN" "http://www 2e 61 70 70 6c 65 2e 63 6f 6d 2f 44 54 44 73 2f .apple.com/DTDs/ 50 72 6f 70 65 72 74 79 4c 69 73 74 2d 31 2e 30 PropertyList-1.0 Typical log пятница, 26 июля 13 г.
  8. 8. Packet analyzer: https://github.com/storoj/idevice-packet-analyzer cd /path/to/packet/analyzer bash ioslog2html.sh /path/to/usbmuxd.log /path/to/usbmuxd.html Help is on the way пятница, 26 июля 13 г.
  9. 9. Pretty log пятница, 26 июля 13 г.
  10. 10. #include <libimobiledevice/libimobiledevice.h> #include <libimobiledevice/lockdown.h> #include <libimobiledevice/screenshotr.h> int main(int argc, char **argv) { ! idevice_t device = NULL; ! lockdownd_client_t lckd = NULL; ! screenshotr_client_t shotr = NULL; ! lockdownd_service_descriptor_t service = NULL; ! const char *udid = "your udid here"; ! if (IDEVICE_E_SUCCESS != idevice_new(&device, udid)) { ! ! return -1; ! } ! if (LOCKDOWN_E_SUCCESS != lockdownd_client_new_with_handshake(device, &lckd, NULL)) { ! ! return -1; ! } ! if (LOCKDOWN_E_SUCCESS != lockdownd_start_service(lckd, "com.apple.mobile.screenshotr", &service)) { ! ! return -1; ! } ! if (screenshotr_client_new(device, service, &shotr) != SCREENSHOTR_E_SUCCESS) { ! ! return -1; ! } ! if (screenshotr_take_screenshot(shotr, &imgdata, &imgsize) == SCREENSHOTR_E_SUCCESS) { ! ! // screenshot taken ! } ! // ... } Screnshotter client пятница, 26 июля 13 г.
  11. 11. $ idevicescreenshot Could not start screenshotr service! Remember that you have to mount the Developer disk image on your device if you want to use the screenshotr service. $ ideviceinfo | grep ProductVersion | awk '{ print $2 }' 6.1.3 $ export DeviceSupport=/Applications/Xcode.app/Contents/Developer/ Platforms/iPhoneOS.platform/DeviceSupport/ $ ideviceimagemounter “$DeviceSupport/6.1 (10B141)/DeveloperDiskImage.dmg” $ idevicescreenshot Screenshot saved to screenshot-2013-06-13-07-40-00.tiff Screenshot пятница, 26 июля 13 г.
  12. 12. $ ls /Applications/Xcode.app/Contents/Developer/Platforms/ iPhoneOS.platform/DeviceSupport/ 4.2 5.0 6.0 4.3 5.1 6.1 (10B141) DeveloperDiskImage.dmg DeveloperDiskImage.dmg.signature Developer Images пятница, 26 июля 13 г.
  13. 13. Developer Images No developer image Developer image mounted пятница, 26 июля 13 г.
  14. 14. Screenshotr service пятница, 26 июля 13 г.
  15. 15. Official http://www.libimobiledevice.org/ http://cgit.sukimashita.com/libimobiledevice.git/ VS project https://github.com/storoj/libimobiledevice-win32 Mac OSX binaries https://github.com/benvium/libimobiledevice-macosx Libimobiledevice пятница, 26 июля 13 г.

×