ipod IDPS认证
我按以下步骤开始IPOD IDPS:1. 检测到Acc power 3.3V后,等待80ms
2.写同步字节0xFF ( bps=19200)
3.等待20ms
4.发送0xFF 0x55 0x04 0x00 0x38 0x00 0x00 0xC4
从串口调试助手中读到iphone TX 出来的是0xFF 0xFF 0x55 0x04 0x00 0x38 0x00 0x00 0xC4
奇怪怎么返回的字节就是我发送的字节.
我在想是不是以下原因:
1.Trabsaction ID 不对, 虽然开始是从0x000开始
2.实际等待时间不是80ms或20ms
3.checksum不对
有没有别的地方没想到,有哪位指示一下为谢! 以上补充一点:4.可能与coprocessor2.0芯片有关, 我的板上是有的.但以上问题之闪没有对此芯片进行任何读写操作 找到问题点,是checksum算错了.只发送了一个startIDPS , ipod 回应成功0x00.我想一步一步做IDPS和AUTH. 现在已可完成IDPS,并返回0x00成功状态,并且IPOD已发出了0X14 要求授权, 只是发了三次(每次15s) 后我没有给出响应,它就发出了0x19,显示没有授权. 以下接着做Auth.但在IDPS 部份只是基本实现. 你也玩这个,有时间我们交流一下。 我也做了一个产品,IPOD&IPHONE douck 产品。目前已通过apple认证 IPOD认证,板子有画,但一直没弄软件,膜拜下! 4楼软件是你写吗? 可以的话我也想弄弄!!! 楼上诸位,我也刚开始做MFi的东东。。能否交请教一下。谢谢。我们公司已经加入MFi组织了。
我的QQ是:26803385 在IDPS 成功后, 现在可以读出CP证书, 并将它传给IPOD, 并且ipod回应0x16 , ACK=0. 并给出口令. 现在已将口令传给了CP,并得到了数字签名.传给IPOD后. 过1分钟左右,并没回0x19.而是回0x14 再要求授权. bjash你好!
有没有联系方式啊?
关于IDPS的问题请教下,谢谢。
我QQ:124150901 楼上,有什么问题讲出来吧,大家一起讨论。我刚刚做完了苹果的idps认证,有一些经验教训可以互相借鉴啊 回复【11楼】mingyuexin1981
-----------------------------------------------------------------------
我现在
1、发送startIDPS
2、收到ACK status 0x00
3、发送SetFIDTokenValues
4、收到RetFIDTokenValueAcks 不过IdentifyToken的status为0x01
不知是什么问题?
另:没有授权IC,IDPS可以成功么? 没有IC idps同样可以成功的。但就是不能完成认证的所有步骤。我的软件是自已写的,一个产品开发了半年。终于成功。 又有问题:
ipod 返回IDPSStatus的status为0x02:
one or more required token-value fields were missing.IDPS failed
我设置了三个token:
IdentifyToken
SetAccCapsToken
AccInfoToken MARK IPOD是哪個機型 ,ipod 3TH才會支持IDPS ,一般IPOD流程是先發送 FF 55 04 00 38 00 00 checksum 如果回就 為04 的話說明不支持IDPS 这种情况下就要用indentifydevicelingoes 的方式去完成所有流程。 一直在学习ipod idps认证
三问题
1:什么是TransactionID,
2:为什么要先发送同步字节0xFF
3:10pin 和20pin 是怎么用的啊,是不是ipod检测到10pin 20pin为低附件开始发送 startidps 回复【17楼】liaojinwei88
-----------------------------------------------------------------------
我的是5G nano,支持IDPS的
还有个问题:IDPS可以禁止authentication过程么?
identify token中应该是有控制位的,
不过我试过,不行,identify token无法识别 回复【18楼】shu577
-----------------------------------------------------------------------
1:什么是TransactionID,
相当于每个命令的序列号
2:为什么要先发送同步字节0xFF
好像用于唤醒ipod和波特率同步
3:10pin 和20pin 是怎么用的啊,是不是ipod检测到10pin 20pin为低附件开始发送 startidps
10pin是识别脚,20pin是检测脚,手册上说是检测到pin13为高开始发送命令 1。TransactionID 是IPOD或者IPHONE使用指令的流水号,
2。0xff 是IPOD&IPHONE为了校验你发送指令使用的波特率及同步。
3。10脚接一个电阻,根据手册你不一样的外围设备使用不一样的电阻,仔细看手册。20脚可跟30PIN相连,或者接地。
4 PIN13是IPOD&IPHONE向外供电一个脚,电压为3。3V。当IPOD通过检测10脚有一个电阻,然后PIN13才开始输出电压。 bjash
应该完成所有流程了。 他最后一步证书校验步骤完成就算完成了。 IdentifyToken的 bit 1:0 为授权控制位,不过只有 10 --> 识别后马上授权
没有其他选项,郁闷了!
怎样跳过authentication?
只操作无需授权的指令? 回复【23楼】dhdahai
-----------------------------------------------------------------------
在你進行IDPS動作時候,就設定為識別不作證書校驗處理。但是在這種情況下,有很多指令是不支持使用的。
並不是說跳過授權就能夠使用所有指令。
不知你要做哪方面的東西,如果單獨只是為了消除彈出不支持圖標 ,不需要軟件照樣能夠處理掉。 回复【24楼】liaojinwei88
-----------------------------------------------------------------------
=====>不知你要做哪方面的東西
我现在只做音频那一块的应用,无需授权的指令应该是够用了。
=====>在你進行IDPS動作時候,就設定為識別不作證書校驗處理
现在的问题是在IDPS过程中,设置了不做证书校验
即将IdentifyToken的DeviceOptions-->0x00000000,DeviveID--->0x00000000
但是无法完成IDPS(0x3A命令返回0x01,提示IdentifyToken识别失败)
不知是不支持这样操作,还是我的设置问题? 肯定是你設定的問題,把你發送的,setfidtokenvalue發送的碼,貼上來我幫你看一下。
send_char_com(0xff); //setfidtokenvalue one
send_char_com(0x55);
checksum=0;
send_char_com(0x75); //receive number
send_char_com(0x00);//
send_char_com(0x39);// SetFIDtoken command
send_char_com(transactionid2);//transaction ID
send_char_com(transactionid3);
transactionid3++;
send_char_com(0x09); // send item number
send_char_com(0x0e); //length item0
send_char_com(0x00); //infobyteone
send_char_com(0x00); //infobytetwo
send_char_com(0x03); //numlingoes 0xa4
send_char_com(0x00);//general lingo
send_char_com(0x02); //simple lingo
send_char_com(0x03);// display lingo
// send_char_com(0x04); //extended interface lingo
send_char_com(0x00);//device option
send_char_com(0x00);
send_char_com(0x00);
send_char_com(0x06);
send_char_com(0x00);// device ID
send_char_com(0x00);
send_char_com(0x02);
send_char_com(0x00);
send_char_com(0x0a); //length item1
send_char_com(0x00); //infobyteone
send_char_com(0x01); //infobytetwo 0x22
send_char_com(0x00); //accCapsbitmask
send_char_com(0x00);
send_char_com(0x00);
send_char_com(0x00);
send_char_com(0x00);
send_char_com(0x00);
send_char_com(0x00);
send_char_com(0x01);
send_char_com(0x1b); //length item2
send_char_com(0x00); //infobyteone
send_char_com(0x02); //infobytetwo 0x26
send_char_com(0x01); //name "speaker"
//Speaker for IPOD&IPHONE
send_char_com(0x53); //S
send_char_com(0x70); //p
send_char_com(0x65); //e
send_char_com(0x61); //a
send_char_com(0x6b); //k
send_char_com(0x65); //e
send_char_com(0x72); //r
send_char_com(0x20); //space
send_char_com(0x66); //f
send_char_com(0x6f); //0
send_char_com(0x72); //r
send_char_com(0x20); //space
send_char_com(0x49); //I
send_char_com(0x50); //P
send_char_com(0x4f); //O
send_char_com(0x44); //D
send_char_com(0x26); //&
send_char_com(0x49); //I
send_char_com(0x50); //P
send_char_com(0x48); //H
send_char_com(0x4f); //O
send_char_com(0x4e); //N
send_char_com(0x45); //E
send_char_com(0x00); //nul
send_char_com(0x06); //length item2
send_char_com(0x00); //infobyteone
send_char_com(0x02); //infobytetwo
send_char_com(0x04); //firmware version
send_char_com(0x01);
send_char_com(0x00);
send_char_com(0x00);
send_char_com(0x06); //length item2
send_char_com(0x00); //infobyteone
send_char_com(0x02); //infobytetwo
send_char_com(0x05); //hardware version
send_char_com(0x01);
send_char_com(0x00); //1c
send_char_com(0x00);
send_char_com(0x0b); //length item2
send_char_com(0x00); //infobyteone
send_char_com(0x02); //infobytetwo
send_char_com(0x07); //model number
//
send_char_com(0x53);
send_char_com(0x50);
send_char_com(0x2d);
send_char_com(0x42);
send_char_com(0x42);
send_char_com(0x31);
send_char_com(0x31);
send_char_com(0x00); // 117
send_char_com(0x07); //addRF certifications
send_char_com(0x00); //infobyteone
send_char_com(0x02); //infobytetwo
send_char_com(0x0c); // RF certifications
send_char_com(0x00);
send_char_com(0x00);
send_char_com(0x00);
send_char_com(0x03); //iphone 3g &iphone 3gs & iphone & iphone 4g & ipad RF certification
send_char_com(0x05); //length item2
send_char_com(0x00); //infobyteone
send_char_com(0x03); //infobytetwo
send_char_com(0x03);
send_char_com(0x01);
send_char_com(0x01);
checksum=~checksum+1;
send_char_com(checksum); 按照我上面發送的指令作一下修改應該就能夠成功。 回复【27楼】liaojinwei88
-----------------------------------------------------------------------
多谢回复!
send_char_com(0x00);//device option
send_char_com(0x00);
send_char_com(0x00);
send_char_com(0x06);
send_char_com(0x00);// device ID
send_char_com(0x00);
send_char_com(0x02);
send_char_com(0x00);
你的这两项设置,是要求验证的。我这样设的话也可以idps成功。
不过我不想验证,当我把device option 和 device ID全改为0(不要求验证)就无法成功。 Iphone开发参考 Liaojinwei说得没错,我在最后得到CP的数字签容名,竟然ipod又给0X14要求授权. 因为我把checksum弄错了, 纠正后终于授权成功. 现在只是在需要IDPS时OK . 后面要做的是:兼容各种IPOD, 即纠错处理.二是增加稳定性,有时需要多插两下才成功.可能是在一些分步骤上,时间没处理好.我有一个问题,应该在apple网站上如果有交年费的, 可以进入PORTAL得到支持文档, 和例子代码.如IDPS,AUTH. SHU577和dhdahai,如果你们看一下MFi Accessory Firmware Specification R41 文档, 有详细 谁能给讲一下这些人在讨论什么?
用串口控制ipod放歌?不认证不也可以吗?还是说要用串口传输图片之类的复杂数据? 回复【32楼】flyunlimit 飞行无极限
-----------------------------------------------------------------------
呵呵,我是想用串口控制ipod放歌。
不过看到最新的文档都改成idps了,所以想用idps,又想跳过auth
但不成功。。。
所以想看看有没有人这么做? 回复【31楼】bjash
-----------------------------------------------------------------------
看样子苹果是想先用无需授权的指令引我们上钩,再慢慢将其淘汰掉。。。 请问,我用2.0的认证,已经iPod已经接受。但是从CP内读取计算过之后的Signature送回iPod时,iPod提示命令失败。请问大致上是什么原因啊? 35楼: 1. ipod 给出的口令有没正确传给CP? (可用串口助手检查IPOD送来的20位口令,再看I2C 传送的数据是否与此一致) 2. 在CP 内部数字签名时, 先要写0x10控制字节, 再读. 此后要循环检查才能正解读出签名 现在可以做出NO IDPS AUTH. 需要加一些防错程序 各位,能否说一下mcu发完命令给ipod后,mcu怎么处理等待ack这部分吗?因为mcu还要做其它事情。
是一直等待ipod的ack,还是在中断里接收完,出来后再处理,能给个例子或说个大概流程。 认真学习! MCU 要一直做完AUTH , 再去处理其它程序. 因为在3秒内如果没有完成, ipod会显示错误.即设备不支持ipod.
在发完TX后,要在等ipod发来的回应即接收RX.这可以通过一个子程序来完成. 如果MCU在3s内只做Auth,那你的机子肯定得不到用户的认可
我的dual iPhone Dock都不会这样做.
本人一直在做这一方面的机子
从2006年做到现在, MFi, WWi, iAP over UART,iAP over Bluetooth, iAP over USB
communication with iOS Application
都是外国市面上的机子 To:【41楼】 cyan
我发了个邮件给你,你能收到吗?有些问题想请教一下。 cyan,
我不是说3s内MCU处理,是IPOD 规定在插入IPOD检测到 Acc power 后3S内必须完成认证.其实在1S内MCU基本可以完成. ipod duck mark bjash
1s内MCU完成? 可能CP没有那么快, 一般都1.3 ~ 2s之间, 我做的这中间2s内MCU也可以做其它事情. cyan
没错 3秒内认证没完成就会失败吗?ACC变高后都等了2秒,然后才开始,时间能赶得上吗?本人已经做到MCU发送签名数据,但是iPod回应失败,难道就是3秒内没完成认证过程? 回复【35楼】zerolee
-----------------------------------------------------------------------
我也遇到过这个问题,刚才想通了,原先iPod发过来的20个字节是不带TransationID,现在换成IDPS开始后,iPod发过来的20个字节带TransationID,写入CP时注意20个数据起始位置要往后移2个。生成的签名数据发给iPod才正确。明天验证。 想法是正确的,验证结果PASS。不知道多不多公司做这个iPod认证。 各位:
IPAD和IPOD以及IPHONE的30PIN座子难道不同?
发送IDPS的SetFIDTokenValues到IPOD,IPOD上能够返回RetFIDTokenValues成功。
但IPOD会提示IPOD TOUCH不支持此配件。而IPAD同样的程序,发送过去没有任何反应。能告知么? 24楼 liaojinwei88
不知你要做哪方面的東西,如果單獨只是為了消除彈出不支持圖標 ,不需要軟件照樣能夠處理掉。
liaojinwei88大侠,厉害,不认证能处理掉,使用什么办法呢? 能透露诀窍么? 这样的贴子对现在的我来说很宝贵啊,呵呵 回复【18楼】shu577
2:为什么要先发送同步字节0xff
-----------------------------------------------------------------------
自动检测波特率用的 哦 这么多人做MFI呀,一般在1.1S到1.8S完成所有事情吧 嘛 2G nano 6G nano Classic 通过USB识别和认证是不一样的吗? 2G nano 6G nano Classic 通过USB识别和认证是不一样的吗?
具体怎么做呀? IdentifyDeviceLingo命令对于串口和USB通信方法一样吗? 协议上说是IdentifyDeviceLingo命令 串口通信下可以支持lingo 00, lingo 02,等,而USB通信下只支持lingo 00。是这样的吗? IdentifyDeviceLingo命令在USB通信下使用lingo 04等命令这么办? 请高手指教! 好东西! liaojinwei88 发表于 2011-3-22 22:23 static/image/common/back.gif
你也玩这个,有时间我们交流一下。 我也做了一个产品,IPOD&IPHONE douck 产品。目前已通过apple认证 ...
我目前正在做StartIDPS这一步,是通过蓝牙向iPhone发,发送的数据是55 04 00 38 00 00 checksum,checksum位试了c4、44,但都无法收到iPhone的返回信息(ACK),是什么原因导致收不到ACK呢,还望前辈指导! 我也在做这个,IDPS这块有点麻烦 我现在也在做通过蓝牙发送StartIDPS, 遇到问题想请各位指导一下:
1发送StartIDPS(0x38) (55 04 00 38 00 01 C3), 接收返回 55 06 00 02 00 01 00 38 BF,返回正确。
2发送SetFIDTokenValues, 其中numFIDvalues=11, 发现只要Token 中包含AccessoryCapsToken 设置,accessory 就不能通过接收到任何返回,不知什么原因。AccessoryCapsToken 设置为:0x00,0x00,0x00,0x00,0x00,0xAE,0x0A,0x17
还请各位指教!
自己顶!!! 和IPHONE是一样的吗 网上就没有个demo程序吗? 没搜到 我现在正在做这个,单片机没有IIC总线,模拟了一个,一直没有ack返回,{:mad:} 我在这个贴子里面看到一个很操蛋的程序,呵呵,竟然还有这样写串口发送代码的,真大气。 您好!我是最近公司需要做一个苹果MFI配件的产品,因对这块不是特别的了解,所以想请各位高人指教,我将不胜感激!我现在就是对MFI配件产品的开发流程,开发工具及相关的开发平台,比如用什么平台,什么开发语言开发该产品等等没有一个很感性的认识,希望大家能帮帮我,或者说能提供我一些开发的资料,或者方便的话,我加你们QQ,方便更进一步的交流。我的QQ是530791244! 好多大神,膜拜! 学习一下!! 楼主: 我刚刚接触MFi这一块, 没有经验, 希望可以得到你的指导, 不胜感激. qq: 920678778 本帖最后由 dickjtk 于 2014-9-4 16:07 编辑
liaojinwei88 发表于 2011-4-23 11:55
按照我上面發送的指令作一下修改應該就能夠成功。
刚刚接触iAP2这一块, 找不着北, 希望能得到前辈的帮助,
qq: 920678778 bjash 发表于 2011-3-15 19:08
现在已可完成IDPS,并返回0x00成功状态,并且IPOD已发出了0X14 要求授权, 只是发了三次(每次15s) 后我没有给 ...
楼主交流一下呗, 我也刚刚开始接触MFi这一块, 希望可以得到指导. QQ: 920678778 cyan 发表于 2011-6-15 11:22
**** 作者被禁止或删除 内容自动屏蔽 ****
可以交流一下么~~qq: 920678778 lfxaut_111 发表于 2012-10-23 10:44
**** 作者被禁止或删除 内容自动屏蔽 ****
希望可以跟你交流学习一下, qq: 920678778 success5can 发表于 2013-4-12 18:20
**** 作者被禁止或删除 内容自动屏蔽 ****
希望可以跟你交流一下关于MFi跟iAP2相关的东西~~qq: 920678778 mingyuexin1981 发表于 2011-4-20 14:43
楼上,有什么问题讲出来吧,大家一起讨论。我刚刚做完了苹果的idps认证,有一些经验教训可以互相借鉴啊 ...
我现在也是在着手做这个东西, 需要实现iphone手机上的ipod播放的音乐通过usb传输音频流跟曲目信息到车载上,
但是也不晓得如何入手, 希望可以获得帮助, 谢谢~~~ dickjtk 发表于 2014-9-4 16:18
我现在也是在着手做这个东西, 需要实现iphone手机上的ipod播放的音乐通过usb传输音频流跟曲目信息到车载 ...
你这个是要显示ID3之类的信息吗? 请问ipod认证协处理器的ic在哪里可以买的到!谢谢 Dragontan 发表于 2015-3-9 14:26
请问ipod认证协处理器的ic在哪里可以买的到!谢谢
iap1MFI341S2313
页:
[1]