|
|||||||||
|
|||||||||
|
||||
|
The new Apple Universal Dock (with the IR receiver in front) alone doesn't enable the video out.
The Chip containing/sending the key certificate to activate the video out is in fact only in the Apple Video Cable and not in the Dock. Last edited by Former Bender; 05-26-2008 at 04:46 AM. |
|
|||
|
Has anyone checked the difference between the two types of video cables. Here could be another problem. Are the chip sets just to enable the video, or to tell the type of output? I have not found a pin out for component off the dock plug. Are the video pin outs combined? I have an iTouch and have a need to be able to output both types of video. Would like to build an all in one "dock".
|
| Sponsored links Remove advertisements | |
|
|
|
|
|
||||
|
The trick resides in the IAPd and its framework.
It is responsible and manages devices connected to the Dock connector. Quote:
Doing a patch to simulate the presence of a Composite Video Cable or Component Video Cable is the way to go. Last edited by Former Bender; 06-07-2008 at 11:52 AM. |
|
|||
|
i propose that:
1. We drop the idea that we can make a cable on the grounds that 1. we need chips 2. we need apple branded chips 3. not many people have chips (let alone apple chips) just lying around 2. We turn this tread into a software modification thread -> What do you think. now thats enough lets get to some code! here is an otool of the iap binary # otool -vVt iapd |grep Video 00006b90 e59f2270 ldr r2, [pc, #624] ;[0x00006e08] = 0x000b4ab8 (* "kIapSimpleRemoteButtonTypeVideo") 00008db8 059f3034 ldreq r3, [pc, #52] ;[0x00008df4] = 0x00108af0 (@* "com.apple.mobileipod-VideoPlayer") 0000d360 e59f2118 ldr r2, [pc, #280] ;[0x0000d480] = 0x00108d00 (@* "Audio/Video") 0000d384 e59f20f4 ldr r2, [pc, #244] ;[0x0000d480] = 0x00108d00 (@* "Audio/Video") 0000d534 e59f317c ldr r3, [pc, #380] ;[0x0000d6b8] = 0x00108d00 (@* "Audio/Video") 0000d554 e59f215c ldr r2, [pc, #348] ;[0x0000d6b8] = 0x00108d00 (@* "Audio/Video") 0000d578 e59f2138 ldr r2, [pc, #312] ;[0x0000d6b8] = 0x00108d00 (@* "Audio/Video") 0000e0fc e59f1060 ldr r1, [pc, #96] ;[0x0000e164] = _kIAPVideoTVOutSystem 0000e104 e59f205c ldr r2, [pc, #92] ;[0x0000e168] = _kIAPVideoTVOutSystem_NTSC 0000e114 e59f1048 ldr r1, [pc, #72] ;[0x0000e164] = _kIAPVideoTVOutSystem 0000e11c e59f2048 ldr r2, [pc, #72] ;[0x0000e16c] = _kIAPVideoTVOutSystem_PAL 0000e12c e59f1030 ldr r1, [pc, #48] ;[0x0000e164] = _kIAPVideoTVOutSystem 0000e134 e59f2034 ldr r2, [pc, #52] ;[0x0000e170] = _kIAPVideoTVOutSystem_SECAM 0000e1ac e59f1048 ldr r1, [pc, #72] ;[0x0000e1fc] = _kIAPVideoTVOutAspectRatio 0000e1b4 e59f2044 ldr r2, [pc, #68] ;[0x0000e200] = _kIAPVideoTVOutAspectRatio_4_3 0000e1c4 e59f1030 ldr r1, [pc, #48] ;[0x0000e1fc] = _kIAPVideoTVOutAspectRatio 0000e1cc e59f2030 ldr r2, [pc, #48] ;[0x0000e204] = _kIAPVideoTVOutAspectRatio_16_9 0000e290 e59f1078 ldr r1, [pc, #120] ;[0x0000e310] = _kIAPVideoTVOutSignal 0000e298 e59f2074 ldr r2, [pc, #116] ;[0x0000e314] = _kIAPVideoTVOutSignal_None 0000e2a8 e59f1060 ldr r1, [pc, #96] ;[0x0000e310] = _kIAPVideoTVOutSignal 0000e2b0 e59f2060 ldr r2, [pc, #96] ;[0x0000e318] = _kIAPVideoTVOutSignal_Composite 0000e2c0 e59f1048 ldr r1, [pc, #72] ;[0x0000e310] = _kIAPVideoTVOutSignal 0000e2c8 e59f204c ldr r2, [pc, #76] ;[0x0000e31c] = _kIAPVideoTVOutSignal_SVideo 0000e2d8 e59f1030 ldr r1, [pc, #48] ;[0x0000e310] = _kIAPVideoTVOutSignal 0000e2e0 e59f2038 ldr r2, [pc, #56] ;[0x0000e320] = _kIAPVideoTVOutSignal_Component 0000e35c e59f1048 ldr r1, [pc, #72] ;[0x0000e3ac] = _kIAPVideoTVOutCaptioning 0000e364 e59f2044 ldr r2, [pc, #68] ;[0x0000e3b0] = _kIAPVideoTVOutCaptioning_Off 0000e374 e59f1030 ldr r1, [pc, #48] ;[0x0000e3ac] = _kIAPVideoTVOutCaptioning 0000e37c e59f2030 ldr r2, [pc, #48] ;[0x0000e3b4] = _kIAPVideoTVOutCaptioning_On 0000e3f0 e59f1048 ldr r1, [pc, #72] ;[0x0000e440] = _kIAPVideoTVOutFitSystem 0000e3f8 e59f2044 ldr r2, [pc, #68] ;[0x0000e444] = _kIAPVideoTVOutFitSystem_FullScreen 0000e408 e59f1030 ldr r1, [pc, #48] ;[0x0000e440] = _kIAPVideoTVOutFitSystem 0000e410 e59f2030 ldr r2, [pc, #48] ;[0x0000e448] = _kIAPVideoTVOutFitSystem_WideScreen 0000e494 e59f104c ldr r1, [pc, #76] ;[0x0000e4e8] = _kIAPVideoTVOut 0000e49c e59f2048 ldr r2, [pc, #72] ;[0x0000e4ec] = _kIAPVideoTVOut_Off 0000e4b0 e59f1030 ldr r1, [pc, #48] ;[0x0000e4e8] = _kIAPVideoTVOut 0000e4b8 e59f2030 ldr r2, [pc, #48] ;[0x0000e4f0] = _kIAPVideoTVOut_On 0000e53c e59f3038 ldr r3, [pc, #56] ;[0x0000e57c] = _kIAPVideoTVOutAuthorized 0000e550 159f3028 ldrne r3, [pc, #40] ;[0x0000e580] = _kIAPVideoTVOutAuthorized_On 0000e554 059f3028 ldreq r3, [pc, #40] ;[0x0000e584] = _kIAPVideoTVOutAuthorized_Off 0000e784 e59f002c ldr r0, [pc, #44] ;[0x0000e7b8] = 0x00108e00 (@* "SystemStatus::VideoOut settings %@") 0000ecec e59f0088 ldr r0, [pc, #136] ;[0x0000ed7c] = 0x00108e70 (@* "LogVideoEvents") note the VideoTVOut functions and especially the authorized | on | off functions (they are function names arent they) now all we need to do is reverse engineer a new IAP binary but patched thats where my skill ends -> im a linux guy not a mac head (will that get me thorwn out of here ? )Food for thought.... |
|
|||
|
Note this is /System/Library/Framework/IAP.framework/IAP
also i didnt explain this properly: once we patch this we (will get a tv out signal) may even get it on pin 8! (the same pin as all other accessories) and obviously this will make the iphone able to be retro fitted with the old vaccessories that are currently blocked! |
| Sponsored links Remove advertisements | |
|
|
|
|
|
|||
|
Good News!
(and bad news) here is how i went compiling the following: (yes i do have GCC on my iphone )test.c : main() { kIAPVideoTVOutAuthorized_On(); KIAPVideoTVOut_On(); } # gcc test.c -framework IAP compiles!, but #./a.out segfaults |
|
||||
|
The thread will remain because we still need to make a cable after patching the iapd and/or its framework.
![]() After testing different things, i can say that iapd is not required once the connected device on the dock connector is declared to SpringBoard. You can rename iapd and kill it once the Phone-Touch proposes you to use the TV-Out feature. The only way to reset the dock detection is to respring/kill Springboard or restart. |
|
|||
|
Communication log posted by ridax "visualization":
FF 55 03 00 01 02 FA FF 55 03 00 0F 00 EE FF 55 03 00 0F 03 EB FF 55 02 00 09 F5 FF 55 02 00 0D F1 FF 55 0E 00 13 00 00 00 0D 00 00 00 02 00 00 00 10 C0 FF 55 04 00 15 01 00 E6 FF 55 3C 00 18 F0 0D 00 06 00 10 30 57 7D 8A D6 0E 47 04 79 FA 27 A9 C8 2B E8 33 00 10 8B D0 DA 19 EE 0C 0F E5 6D 47 F8 FB 75 1C 18 EE 00 10 F9 29 21 16 40 91 32 5B 30 DA 61 64 9B 16 F5 F8 CD FF 55 06 03 0E 04 00 FD 01 E7 FF 55 06 03 08 00 00 00 10 DF FF 55 03 00 01 02 FA FF 55 03 00 0F 00 EE FF 55 03 00 0F 03 EB FF 55 02 00 09 F5 FF 55 02 00 0D F1 FF 55 0E 00 13 00 00 00 0D 00 00 00 02 00 00 00 10 C0 FF 55 04 00 15 01 00 E6 FF 55 3C 00 18 F0 0D 00 06 00 10 76 FC 53 C7 0C 05 1F FD 15 BB 04 E3 17 85 D4 93 00 10 00 4F DB CF B4 A0 22 68 39 AF C0 73 7B DD 8A 34 00 10 87 FB C7 B4 98 59 40 D9 0F F4 78 AE A0 91 EA AE 05 FF 55 06 03 0E 04 00 00 01 E4 FF 55 06 03 08 00 00 00 10 DF FF 55 03 00 01 02 FA FF 55 03 00 0F 00 EE FF 55 03 00 0F 03 EB FF 55 02 00 09 F5 FF 55 02 00 0D F1 FF 55 0E 00 13 00 00 00 0D 00 00 00 02 00 00 00 10 C0 FF 55 04 00 15 01 00 E6 FF 55 3C 00 18 F0 0D 00 06 00 10 74 79 A7 28 69 DE 96 9D 80 DD A5 29 8E 25 B3 E5 00 10 64 AB B0 5F 96 CF 0D B5 13 79 79 9E AB 3E 09 C0 00 10 A0 D2 86 C2 D7 F0 B0 FB BB FA A8 E2 24 D4 D9 FA FD FF 55 06 03 0E 04 00 FE 01 E6 FF 55 06 03 08 00 00 00 10 DF FF 55 03 00 01 02 FA FF 55 03 00 0F 00 EE FF 55 03 00 0F 03 EB FF 55 02 00 09 F5 FF 55 02 00 0D F1 FF 55 0E 00 13 00 00 00 0D 00 00 00 02 00 00 00 10 C0 FF 55 04 00 15 01 00 E6 FF 55 3C 00 18 F0 0D 00 06 00 10 16 1A C8 A1 93 77 54 4F 78 A2 0C 62 09 FD 19 27 00 10 A5 17 10 AC 77 55 54 D8 FF B5 89 F7 0B 24 22 0E 00 10 70 BC 62 AA 57 E6 8D D4 79 62 4C E7 4F 07 33 CE 27 FF 55 06 03 0E 04 00 81 01 63 FF 55 06 03 08 00 00 00 10 DF So, assuming that a green commands are acks from the the V164, only one 'blue' byte (and checksum, of course) changes. Just FYI
|
| Sponsored links Remove advertisements | |
|
|
|
|
|
|||
|
Quote:
-> so you might be able to use old cables, or making your own would only be as hard as connecting video out to a cut-in-half AV cable... So do you think a fair plan of action is to first patch iapd, then work out where the video is comming from -> going against what i just said, people with the cable (ill never hand over AU 70 bucks to those rascals): what pins are present, keeping in mind that half of em will be the charging circuit. |
![]() |
| Bookmarks |
| Thread Tools | |
| Display Modes | |
|
|
|
|