Flash Tool 분석

출처 : http://en.t-firefly.com/doc/product/info/263.html

FireFly RK3399 -> Flash Image -> Linux

오픈소스는 두 종류가 있음

  • rkflashtool(멍령 실행) : https://github.com/Galland/rkflashtool_rk3066
  • rkflashkit(명령실행 + GUI) : https://github.com/linuxerwang/rkflashkit

A. rkflashtool

  • 그래도 명령어 실행만 하는 rkflashtool가 조금 더 간단 할 것 같음
  • 공식 사이트에 있는 링크를 보면 RK3066을 지원 한다고 돼있음
  • RK3066, RK3318지원도 있지만 RK3399는 지원 한다고 안나와있음

B. rkflashkit

  • 어쩔 수 없이 rkflashkit으로 분석
  • 2017년 11월 11일에 RK3399 지원 커밋(49d21c7)이 있음
  • Python과 GTK2로 개발 되어 있다고 함

rkflashkit 설치

install

git clone https://github.com/linuxerwang/rkflashkit
cd rkflashkit
./waf debian

오류와 해결

  • Arch Linux + Python + GTK2 가상환경 문제로 빌드 오류가 너무 많이 남
  • GTK가 꼭 필요한게 아니니 CLI 소스를 분석 하려 함
  • ./src/rkflashkit/climain.py파일이 있음
  • 다음 코드를 소스 맨 밑에 두고 python climain.py로 실행 하면 됨
    if __name__ == "__main__":
      # execute only if run as a script
      _main = CliMain()
      _main.main(sys.argv)
    

본격 분석

  • Python 코드이기 때문에 분석에 큰 어려움이 없음
  • 소스를 타고 들어가면 rktalk.py를 참조 하게 됨

Vendor/Product ID : 2207:330C

  • USB_CMD : 31Byte
ADD ID
0 U
1 S
2 B
3 C
4 (CID)
5  
6  
7  
8  
9  
10  
11  
12 (FLAG)
13 (COMMAND_0)
14 (COMMAND_1)
15 (COMMAND_2)
16 (COMMAND_3)
17 (OFFSET_0)
18 (OFFSET_1)
19 (OFFSET_2)
20 (OFFSET_3)
21  
22  
23 (SIZE)
24  
25  
26  
27  
28  
29  
30  
31