Skip to content

Adiciona suporte ao Attack Shark K86 (3151:4015 / 3151:4011) - #4

Open
irythill wants to merge 1 commit into
EricOFreitas:mainfrom
irythill:suporte-k86
Open

irythill wants to merge 1 commit into
EricOFreitas:mainfrom
irythill:suporte-k86

Conversation

@irythill

@irythill irythill commented Sep 5, 2026

Copy link
Copy Markdown

O protocolo da tela foi reversado no K86 pelo AttackManatee, mas o xshark só procurava os PIDs do X85 Pro. Na prática, num K86 era preciso passar XSHARK_PRODUCT_IDS=0x4015,0x4011 a cada invocação (inclusive dentro da unit do systemd, que não herda a variável).

O que muda

  • PRODUCT_IDS passa a incluir 0x4015 (cabo) e 0x4011 (receptor 2.4G)
  • Novo PRODUCT_NAMES: o probe informa modelo e modo em vez de cair em "modo desconhecido" para qualquer PID fora do X85 Pro
  • README: a linha do K86 sai de "↗ via AttackManatee" para o estado real

Validação

Testado ao vivo num K86 pelo cabo USB (Arch Linux, kernel 7.1.9, hidapi 1.0.9).

Antes (sem a env var, o teclado nem era encontrado; com ela):

Encontrado 3151:4015 (modo desconhecido) — 14 interface(s)

Depois, sem env var nenhuma:

Encontrado 3151:4015 (K86, cabo USB) — 14 interface(s):
  iface= 2  usage_page=0xffff  usage=0x0002  path=/dev/hidraw6
Canal vendor (tela): /dev/hidraw6

O canal vendor aparece exatamente onde o find_vendor_path() espera (maior interface_number, usage page 0xFFFF / usage 0x0002), e o set-time (opcode 0x28) atualiza o relógio da tela corretamente — confirmado visualmente. O pacote gerado:

28 00 00 00 00 00 00 d7 07 ea 09 05 10 21 29

Também rodando de hora em hora pelo xshark-synctime.timer sem falhas.

Fora do escopo deste PR

O set-gif não foi testado no K86, então não mexi nos defaults de --width/--height. A geometria da tela do K86 ainda está por confirmar: este README citava 240×135 e o projeto shark-k86-mac cita 128×128. Deixei essa divergência anotada no README em vez de chutar um valor. Posso testar e mandar num PR separado, se ajudar.

Nota sobre a udev rule

Não alterei tools/99-attackshark.rules (ela documenta os PIDs do X85 Pro no comentário), mas vale um registro: nesta máquina o TAG+="uaccess" não concede ACL em nós hidraw, nem forçando udevadm trigger -c add — o getfacl não mostra entrada nenhuma e o device fica inacessível com 0660. Acabei usando MODE="0660", GROUP="wheel". É exatamente a ressalva que o seu comentário já antecipa; talvez valha promover a variante com grupo a padrão documentado, já que a 0666 é bem permissiva para uma máquina de trabalho.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MLUUTgcuEE5DcZPxSaPpaH

O protocolo da tela foi reversado no K86 pelo AttackManatee, mas o xshark
so procurava os PIDs do X85 Pro — no K86 era preciso usar a variavel
XSHARK_PRODUCT_IDS a cada invocacao.

- PRODUCT_IDS passa a incluir 0x4015 (cabo) e 0x4011 (receptor 2.4G)
- Novo PRODUCT_NAMES: o `probe` agora informa modelo e modo em vez de
  "modo desconhecido" para qualquer PID fora do X85 Pro
- README: linha do K86 atualizada para o estado real

Validado ao vivo num K86 (cabo USB, Arch Linux, kernel 7.1.9): o canal
vendor aparece em iface=2 usage_page=0xffff usage=0x0002 e o `set-time`
(opcode 0x28) atualiza o relogio da tela corretamente.

O `set-gif` NAO foi testado neste modelo: a geometria da tela do K86 ainda
precisa ser confirmada, entao nao mexi nos defaults de --width/--height.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MLUUTgcuEE5DcZPxSaPpaH
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant