본문 바로가기

지이노/ReView & Using

Xiaomi(샤오미) 장치 Token(토큰) 얻기 - 루팅 안드로이드







Home Assistant (이하 HA)는 샤오미 장비들을 공식지원 하지만


각 장비의 IP 뿐 만 아니라 Token(이하 토큰) 값도 알아야 한다.


토큰 값은 어떻에 알아내야 하는 걸까?


단순히 MiHome 앱에서는 확인을 할 수가 없다.


그래서 오늘은 샤오미 장비의 토큰 값을 추출하는 방법을 포스팅 하려고 한다.


미리 말하지만 이 글은 예전에 내가 카페에 적었던 글을 다시 적는 것이므로 오해 금지.


퍼온 글 아니다.






1. 준비물 / 추출방법


우선 루팅된 안드로이드 디바이스가 필요하다.


디바이스라고 하는 이유는 폰이 아니어도 패드나 PC에 가상 안드로이드 설치를 해도 무방하기 때문이다.


또 루트권한이 이 있는 파일탐색기와 DB를 열어볼 수 있는 어플이 필요하다.


방식은 이렇다.


MiHome 앱에 등록된 장비를 저장하는 DB를 추출하고 그 DB를 열어서 원하는 장비의 토큰 값을 알아내는 방식이다.


간단하다.


절대 어렵지 않으므로 팔로미






2. aSQLiteManager 다운받기


Google PlayStore에서 "aSQLiteManager" 라는 어플을 다운받는다.


DB 파일을 보기 위한 어플이므로 이번 작업에서 가장 중요한 어플이 되시겠다.



나는 이미 다운 받았기 때문에 열기로 표시되지만 설치를 누르면 된다.


스샷 찍는다고 삭제하기 귀찮았다.






3. miio2.db 추출하기


앞서 말한 루트권한을 갖는 파일탐색기가 필요하다.


내가 사용할 파일탐색기는 RootExplorer를 선택했다.


딱히 이 어플이 아니어도 자신이 사용하기 편한 어플을 사용하면 되므로 중요치는 않다.



파일탐색기를 실행해서 루트 권한을 준다.


다음 아래 경로를 찾아 이동하도록 하자.


/data/data/com.xiaomi.smarthome/databases/


위 경로로 이동하면 miio2.db라는 파일이 있다.


이 파일을 복사해서 쉽게 엑세스 가능한 위치에 붙여 넣는다.


내 경우엔 aSQLiteManager로 검색하기 쉬운 'downloads' 폴더에 넣었다.






4. 토큰 확인하기


준비가 끝났으니 aSQLiteManager를 실행한다.



실행된 어플에서 'OPEN DATABASE'를 터치한다.


파일을 선택하게 되어 있는데 이때, 앞에서 옮겨둔 miio2.db 파일을 선택한다.



db 파일을 선택하면 위와 같은 화면으로 이동한다.


여기서 'devicerecord'를 터치해서 다음 화면으로 넘어간다.



이동 된 화면을 보면 위와 같은 페이지로 이동한다.


이 페이지의 표를 왼쪽으로 밀어보면서 위를 확인하면 localIP가 있는데 이게 각 장비의 IP이다.


그 옆에 mac은 장비의 MAC 어드레스 이다.


IP 혹은 MAC을 보고 내가 찾고자 하는 장비가 몇 번째 줄인지 확인하고 계속 밀어본다.



끝까지 밀어보면 token 이라는 칸이 보인다.


앞서 확인한 내 장비가 있는 칸에 적혀있는 토큰 값이 내가 원하는 토큰 값이므로 잘 옮겨 적는다.


토큰을 확보했으므로 샤오미 장비를 HA에 연결하는데 사용한다.


그 내용은 다른 포스팅으로 다뤄보겠다.






5. 마치며


샤오미 장비의 토큰을 확보하는 방법은 이것 뿐이 아니라 여러가지 있다.


아이폰으로 확인하는 방법도 있고 그 외 몇 가지 방법이 있는 것으로 안다.


나에게 가장 편한 방법은 안드로이드였다.


계속 사용하고 있고 집에 굴러다니는 안드로이드 장비도 많고 PC에 가상 OS로 설치해도 되고...


제일 발에 치여서 이 방법을 선택했다.


어렵지도 않다.