Osegi
Donanım·2 dk okuma

Switch 2 dok hilesi: 40 euroluk USB-C hub Nintendo dokunu taklit etti

40 euroluk bir USB-C hub Switch 2'yi şarj ediyordu ama televizyona görüntü vermiyordu. Eklenen yaklaşık 540 bayt kod onu resmi dok gibi davrandırdı.

A Nintendo Switch 2 connected to a TV through a small USB-C hub and cables on a desk
Görsel: Хабр

Switch 2 sıradan bir USB-C hub'dan şarj olur, hatta DisplayPort Alt Mode'a bile girer, ama televizyonda görüntü çıkmaz. Projenin yazarı, seyahatte taşıması zor ve kırılgan duran resmi doku bırakıp elindeki hub'ı konsola dok diye tanıtmayı denedi. Sonuç, 40 euroluk bir hub'ın firmware'ine yama yapmak oldu.

Switch 2 neden normal USB-C hub ile çalışmıyor?

Orijinal firmware ile Switch şaşırtıcı derecede ileri gidiyor: güç pazarlığı yapıyor, DisplayPort Alt Mode'a giriyor, pin assignment D'yi ayarlıyor. Sonra hiçbir şey olmuyor. WITRN K2 adlı USB-PD sniffer'ı kabloya takınca nedeni görüldü. Resmi dok kendini Nintendo cihazı olarak tanıtıyor (VID 057E, ürün 2062), DisplayPort'un yanında kendi SVID'i olan 057E'yi duyuruyor ve DP ayarından sonra üreticiye özel mesajlarla konuşuyor. İstek 057E0001 artı komut numarası, cevap ise 057E0041 ile başlıyor.

Hub, Cable Matters 7-in-1 modeli. PD denetleyicisi VL103 (8051 çekirdekli, 32 KiB firmware), DP'den HDMI'ya çeviren çip ise RTD2142. Yazar, firmware'deki boş alana yaklaşık 540 bayt 8051 kodu ekledi. Bu kod konsola resmi dok gibi cevap veriyor, gerisini stok koda bırakıyor. Değişiklikler tek tek denendi: 15 V / 2,8 A teklifi (stok hub 2,53 A veriyordu), resmi dokun tam kimliği. Yalnızca Nintendo VID'i yetmedi, Switch kimliği daha geniş kontrol ediyor. Yaklaşık 3 saniyelik bekleme v7 ile kalktı.

Sürüm cevapları resmi dokdan kopyalandı. Hub'da bunlara karşılık gelen gerçek bir şey yok, tanınmayan komutlar hâlâ stok “Not supported” cevabını alıyor. Yazar analizde Ghidra, SDCC ve uCsim kullandı, Claude ve GPT'den de yoğun yardım aldı.

HDR'de renkler neden soluk çıktı?

TV modu çalıştı ama HDR açıkken renkler belirgin biçimde solgundu. Aynı monitör ve aynı oyunda resmi dok normal görüntü veriyordu. Yazar ekranı, RGB aralığını, hub'ın kendisini (Linux PC aynı hub'dan HDR'ı doğru veriyor) ve PD denetleyicisini eledi. Geriye RTD2142 kaldı: HDMI tarafındaki AVI InfoFrame'in renk ölçümü alanları BT.709 diyordu. Çipin niyeti uygun değildi ama firmware'i imzasız ve flashrom ile yazılabiliyordu. Orijinal başlığa göre HDR için 108 bayt gerekti.

Göz atmaya değer uygulamalar

SUMO: sayı bulmacası

Doğru kareleri seçin, toplayın, hedefe ulaşın. Öğrenmesi kolay, ustalaşması zor. Ücretsiz, her yaşa uygun.

Dialo: konuşarak dil öğrenin

Yapay zekâ sohbet partneriyle konuşun; her cümleniz düzeltilip kendi dilinizde açıklanarak geri gelsin. 9 dil, A1'den C2'ye.

Etiketler:nintendo switch 2usb-c hubfirmwareusb-pdreverse engineeringhdr

Aynı günden diğer haberler

Tümünü gör →

Daha fazla: Donanım

Tümünü gör →