Geri qayıt
iPod Classic-in sənədləşdirilməmiş Mikey çipinin tərs mühəndisliyi
SiTech AI Team2 წთ. საკითხავი

iPod Classic-in sənədləşdirilməmiş Mikey çipinin tərs mühəndisliyi

Apple-ın naqilli qulaqlıqlarındakı pult Rockbox altında heç vaxt işləmirdi. Bir həvəskar qulaqlıq yuvasının arxasındakı sənədləşdirilməmiş Mikey çipini araşdırdı, rejim registrinin 256 dəyərini yoxladı və üç düyməni də işə saldı.

Apple-ın naqilli qulaqlıqlarındakı pult Rockbox işlədən iPod Classic-də heç vaxt işləməyib: ortadakı oynat və dayandır düyməsi ilə səs düyməsi bu oyunçu ailəsinin heç birində reaksiya vermir. Layihənin audio sürücüsü bunu şərhdə etiraf edir və aksesuarın tanınması ilə pult düymələrinin dəstəyini açıq tapşırıqlar kimi göstərirdi. Yeddinci nəsil iPod Classic-də Rockbox işlədən bir həvəskar ikisini də bağlamağı qərara aldı.

Adı Mikey olan çip

Qulaqlıq yuvasına Apple-ın proqram təminatının Mikey adlandırdığı kiçik ayrıca nəzarətçi xidmət edir. O, I2C 0 şinində 0x72 ünvanında oturur, 8 registr təqdim edir və iki iş görür: qulaqlıq mikrofonunu qidalandırır və pultun düymələrini deşifrə edir. Rockbox çipin varlığını bilirdi, amma ondan yalnız mikrofonun bias gərginliyini qaldırmaq üçün istifadə edirdi. Qalanı heç vaxt sənədləşdirilmədi: freemyipod icmasında nə Mikey sürücüsü, nə registr cədvəli var, Rockbox-ın Gerritində yarımçıq cəhd tapılmadı.

2010 qeydləri və registrlərin yoxlanması

Yeganə əvvəlki iş, iPod shuffle 3G-nin qulaqlıq pultu haqqında David Carne-in 2010-cu il yazısı idi. Carne-in ölçmələri pultun seriyal protokolla danışdığı fikrini dağıtdı: orta düymə mikrofon xəttinin düz qısa qapanmasıdır, səsin qaldırılması və salınması isə həmin xətti təxminən 2,08 voltdan 1,68 və 1,52 volta salan sabit rezistiv yüklərdir. Yeganə «ağıllı» hissə açılışdan 8,1 millisaniyə sonra gələn ultrasəs identifikasiya chirp-idir və oyunçu ona 4,8 millisaniyəlik impulsla cavab verir.

iPod Classic-də Rockbox tərs mühəndislik ekranı

Yuva nəzarətçisinə debugger qoşmaq mümkün olmadığı üçün müəllif öz ekranını Rockbox-ın içində qurdu: ekran hər 20 millisaniyədə bütün 8 registri oxuyur, hər dəyişikliyi /.rockbox/mikey.log faylına yazır, avtomatik rejim isə 0-cı registri bütün 256 dəyərdən keçirir. Cavab 0x2f oldu: aşağı üç bit yazma yolundakı eyni mikrofon bias-ını daşıyır, 0x28 detektoru silahlandırır, səs və orta düymə hadisələri isə 5-ci və 4-cü registrlərdə müəyyən edilmiş səviyyələr kimi görünür.

Aparat yalan danışır

Gündəlik istifadə daha qəribə bir şey ortaya çıxardı. Düymə fəaliyyəti olmadan təxminən beş saniyə keçəndən sonra çipin hadisə mühərriki yuxuya gedir: basma 4-cü registri yenə dərhal dəyişir, amma buraxma 1,7-1,8 saniyə gecikmə ilə bildirilir.

Buna görə sürücü orta düyməni yalnız klik kimi emal edir və hər basmada sabit 60 millisaniyəlik impuls göndərir. Dəyişiklik upstream-ə Gerrit 7677 nömrəsi ilə, «ipod6g: Add inline earphone remote support» adı ilə göndərildi: 8 faylda 318 sətir əlavə edən bir commit və hələ baxış mərhələsindədir. Sürücü ilə hazır Rockbox imici, ipod6g-mikey-v1, Classic 6G və yeddinci nəsildə işləyir.

SSiTech

SiTech — AI ilə gücləndirilmiş veb hazırlanması

Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.