Site Tools


hacking:start

This is an old revision of the document!


Start Page for Vesper Hacking

Information regarding reverse engineering the hardware and software of the Cortex system. An attempt to identify and describe any useful interfaces, documented and hidden. Including any ethernet between the Hub and Handset, NMEA, etc.

Other Examples of Garmin Hacking, most positive.

FCC Hardware Images

Source

Interfaces

NMEA

tba

Ethernet (WiFi)

Open Ports

M1 Hub

H1 Handset

Poking around, found only 1 port from 1-9999 open

It's ADB 3794


⏺ Bash(~/Library/Android/sdk/platform-tools/adb -s 192.168.123.27:3794 shell id 2>&1
      ~/Library/Android/sdk/platform-tools/adb -s 192.168.123.27:3794 shell getprop ro.build.version.release 2>&1
      ~/Library/Android/sdk/platform-tools/adb -s 192.168.123.27:3794 shell getprop ro.product.model 2>&1)
  ⎿  uid=2000(shell) gid=2000(shell) groups=1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats) context=u:r:shell:s0
     5.1.1
     MSM8916 for arm64

                                                                                                                                                                             12:56 AM claude-sonnet-4-6
⏺ We're in. Android 5.1.1 on MSM8916 — exactly the H1. Let's grab everything useful right now.

⏺ Bash(~/Library/Android/sdk/platform-tools/adb -s 192.168.123.27:3794 shell "getprop ro.serialno; getprop ro.product.model; getprop ro.product.name; getprop ro.build.display.id; getprop
      ro.build.description; getprop ro.debuggable; getprop service.adb.tcp.port; getprop ro.hardware" 2>&1)
  ⎿  233010105152063609
     MSM8916 for arm64
     msm8916_64
     msm8916_64-userdebug 5.1.1 VM-2.1.18 eng.androidbuild.20231019.011103 test-keys
     msm8916_64-userdebug 5.1.1 VM-2.1.18 eng.androidbuild.20231019.011103 test-keys
     1
     3794
     qcom

⏺ Bash(~/Library/Android/sdk/platform-tools/adb -s 192.168.123.27:3794 shell "pm list packages | grep -E 'blades|handset|cortex|needle|crush'" 2>&1)
  ⎿  package:com.blades.narsilpackage:com.handsetfinaltest

                                                                                                                                                                             12:57 AM claude-sonnet-4-6
⏺ Interesting — com.blades.needle isn't there, it's com.blades.narsil. And com.handsetfinaltest is confirmed present. Let's dig deeper.

⏺ Bash(~/Library/Android/sdk/platform-tools/adb -s 192.168.123.27:3794 pull /system/app/Narsil/Narsil.apk /Users/chow/Documents/SynologyDrive/Projects/boat/Cortex\ Hacking/cortex-apk-tinker/h1_narsil.apk
      2>&1 &
      ~/Library/Android/sdk/platform-tools/adb -s 192.168.123.27:3794 pull /system/app/Handsetfinaltest/Handsetfinaltest.apk /Users/chow/Documents/SynologyDrive/Projects/boat/Cortex\
      Hacking/cortex-apk-tinker/h1_handsetfinaltest.apk 2>&1 &
      wait)
  ⎿  /system/app/Handsetfinaltest/Handsetfinaltest.apk: 1 file pulled, 0 skipped. 0.5 MB/s (6350691 bytes in 11.438s)
     /system/app/Narsil/Narsil.apk: 1 file pulled, 0 skipped. 0.6 MB/s (19418640 bytes in 31.617s)

                                                                                                                                                                             01:04 AM claude-sonnet-4-6
⏺ Both pulled. While we have shell access, let's grab more useful info in parallel.

⏺ Bash(~/Library/Android/sdk/platform-tools/adb -s 192.168.123.27:3794 shell "ip addr show; echo '---'; ip route show" 2>&1)
  ⎿  1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
         link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
         inet 127.0.0.1/8 scope host lo
            valid_lft forever preferred_lft forever
         inet6 ::1/128 scope host
            valid_lft forever preferred_lft forever
     2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN
         link/ether de:7c:8e:41:13:e5 brd ff:ff:ff:ff:ff:ff
     3: sit0: <NOARP> mtu 1480 qdisc noop state DOWN
         link/sit 0.0.0.0 brd 0.0.0.0
     4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
         link/ether 00:d0:ca:02:04:86 brd ff:ff:ff:ff:ff:ff
         inet 192.168.123.27/24 brd 192.168.123.255 scope global wlan0
            valid_lft forever preferred_lft forever
         inet6 fe80::2d0:caff:fe02:486/64 scope link
            valid_lft forever preferred_lft forever
     5: p2p0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
         link/ether 02:d0:ca:02:04:86 brd ff:ff:ff:ff:ff:ff
     ---
     192.168.123.0/24 dev wlan0  proto kernel  scope link  src 192.168.123.27  metric 304

⏺ Bash(~/Library/Android/sdk/platform-tools/adb -s 192.168.123.27:3794 shell "netstat -tlnp 2>/dev/null || cat /proc/net/tcp" 2>&1)
  ⎿  Proto Recv-Q Send-Q Local Address          Foreign Address        State
      tcp       0      0 0.0.0.0:3794           0.0.0.0:*              LISTEN
      tcp       0     95 192.168.123.27:3794    192.168.1.62:55552     ESTABLISHED
      udp       0      0 0.0.0.0:53435          0.0.0.0:*              CLOSE
      udp       0      0 0.0.0.0:5353           0.0.0.0:*              CLOSE
     udp6       0      0 :::48031               :::*                   CLOSE
     udp6       0      0 :::15056               :::*                   CLOSE
     udp6       0      0 :::5353                :::*                   CLOSE
     udp6       0      0 :::55049               :::*                   CLOSE
     
 
hacking/start.1779690303.txt.gz · Last modified: by instantchow