결과 — 2차 납땜과 JIG로 regular Odin 연결을 만들었고 stock firmware flash에서 PASS를 확인했다. 다만 수정한 Sensor Hub firmware는 boot되지 않았다.
1차 실패를 기준으로 장비와 절차를 다시 만들었다
실패한 1차에 교훈을 얻어 2차에 들어가기 위해 갖가지 제품을 구매하였다.
단순히 좋은 인두를 산 것이 아니라 1차에서 변수가 되었던 부분을 각각 고정했다.
- 온도 조절이 되는 soldering iron
- 충분한 flux와 IPA 세척
- 더 얇고 다루기 쉬운 wire
- microscope로 pad와 trace 상태 확인
- multimeter로 단선·short 확인
- 작업 중 board와 wire가 움직이지 않게 하는 고정 구조
JIG를 만들었다
최종 목표는 한 번 예쁘게 납땜하는 것이 아니라, 손상 위험을 줄이고 같은 연결을 반복해서 사용할 수 있게 만드는 것이었다. 그래서 watch와 cable을 고정하고 USB·charging line이 당겨지지 않도록 JIG를 만들었다.
JIG는 작업 보조물이 아니라 testbed의 일부였다. wire가 움직여 pad를 다시 뜯는 것을 막고, Download Mode 진입과 flash를 반복할 수 있게 했다.
2차 납땜
2차에서는 pad를 세척하고 flux를 바른 뒤, pad와 wire에 필요한 만큼만 solder를 묻혀 짧게 가열했다. 1차에서 gold plating과 함께 손상된 DATA−는 남아 있는 trace를 찾아 복구했다.
확인 순서는 다음과 같았다.
- 현미경으로 bridge와 pad 들뜸을 확인한다.
- multimeter로 GND, 5V, DATA+, DATA−를 다시 측정한다.
- PC 연결 전에 power short 여부를 확인한다.
- USB Download Mode 진입을 확인한다.
- Odin에서 device가 인식되는지 확인한다.
USB Download Mode와 Odin
연결이 살아난 뒤 regular Odin에서 firmware를 넣었다.
1. Watch를 USB Download Mode로 진입 2. PC에서 Odin 연결 확인 3. 대상 firmware file 선택 4. Flash 시작 5. Odin PASS 확인
2차 납땜과 JIG를 통한 hardware 연결은 성공했고, stock firmware flash에서 Odin PASS를 확인했다.
이 지점에서 “netOdin 밖의 반복 가능한 flash 경로를 확보한다”는 초기 testbed 목표는 달성했다.
실제 작업과 flash 결과
수정 firmware는 모두 boot에 실패했다
그 다음 실제 연구 대상인 Sensor Hub firmware를 수정해 넣었다. 수정 범위를 달리해 원인을 분리하려 했다.
실험 | 변경 범위 | 결과 |
Sensor Hub firmware 교체 | 분석한 firmware 영역 | boot 실패 |
single byte 수정 | 한 byte만 변경 | boot 실패 |
string section 수정 | 동작과 무관해 보이는 string | boot 실패 |
string 한 부분만 바꿔도 boot되지 않았다는 점은 ODR 코드의 기능 오류가 아니라, image integrity나 Samsung 고유의 검증·packaging 문제일 가능성을 강하게 만들었다. 앞서 AOSP
avbtool digest가 Samsung firmware와 맞지 않았던 문제와도 다시 연결됐다.어디까지 성공했고, 어디에서 막혔는가
항목 | 결과 |
실험용 Watch 확보와 OEM Unlock | 성공 |
동일 version·size의 kernel source/build | 성공 |
sysfs → SSP → CIPC → CHUB 경로 추적 | 성공 |
SM-R910 schematic 확보와 접점 분석 | 성공 |
cover-open charging 문제의 구리선 검증 | 성공 |
2차 납땜과 DATA− 복구 | 성공 |
JIG 제작 | 성공 |
regular Odin 연결과 stock firmware PASS | 성공 |
Sensor Hub firmware에서 LSM6DSO ODR 설정 위치 추적 | 성공 |
수정 Sensor Hub firmware boot | 실패 |
실제 ODR 변경 후 sensor measurement | 미완료 |
결론
처음에는 센서 샘플링 레이트를 바꾸는 kernel driver 한 곳을 찾는 문제라고 생각했다. 실제로는 boot image repack, AVB와 Samsung digest, kernel source version, SSP, CIPC, MMIO, Device Tree, Sensor Hub firmware, schematic, 납땜, JIG, Odin이 전부 연결된 문제였다.
중간에 잘못 본 경로도 많았다. 공개 IIO driver를 오래 추적했고, AOSP 도구로 Samsung image를 그대로 설명하려 했고, netOdin을 반복해서 시도했다. 하지만 각각의 실패가 다음 질문을 만들었다.
거의 8개월간의 인턴 생활이 끝이났다.
최종 목표를 완전히 끝내지는 못했다. 그래도 “왜 안 되는지 모르는 상태”에서 멈춘 것은 아니었다. hardware flash path를 실제로 만들었고, ODR를 설정하는 firmware code까지 찾았으며, 마지막 장애물이 수정 image의 boot 검증이라는 곳까지 문제를 좁혔다.
이 시리즈는 성공한 결과만 압축한 글이 아니라, 질문을 세우고 틀린 가설을 버리고 다음 실험을 만드는 과정 전체를 남긴 기록이다.