Canon EOS 5D Mark III | 1/4sec | F/8.0 | 16.0mm | ISO-100




안녕하세요, 남두오성입니다.


미커넥터를 통해 스마트싱스에 샤오미 IoT 제품들을 연결시킬때


( 미커넥터 설치 & 설명 : https://hospital82.tistory.com/60 )


Wifi 기반의 아이템들은 해당 아이템의 IP와 토큰이 있어야 합니다.


이걸 뽑아내는 방법이 아이폰, 안드로이드에 모두 있습니다.


(아이폰 버전 : https://hospital82.tistory.com/42 )



이번에는 안드로이드 버전을 알아보겠습니다.




이걸 왜 하느냐??



최근 발매된 샤오미 공기측정기가 접속이 자주 떨어져 버린다는 이슈가 있었는데,


현재까지....나오는 원인이


"한 아이디로 여러 기기에 앱을 깔고 접속을 번갈아서 할 경우 아이템이 오프라인으로"


된다는 겁니다.


이걸 제가 공감하는게...


제가 쓰고 있는 미리모트, 스마트커넥트(와이파이버전) 이 모두 동일증상이었거든요.


한 기기로만 미 홈 접속을 하고나서부터 이런 오프라인 증상이 없어졌습니다.



하나로만 하세요 ㅎㅎㅎㅎ



그래서 아이폰은 아이폰, 안드로이드는 안드로이드로 토큰추출하는 법을 알아보다가


안드로이드로 추출하는 법을 알게 된 것입니다.



자...그럼 시작해 봅시다!!




1. 기존 미홈 앱 삭제 & 5.0 버전 설치



미홈 앱을 삭제합니다.


왜냐면 토큰 추출에 필요한 앱은 5.0 버전 이거든요.


(그보다 상위 버전은 토큰추출 불가능)



그리고 5.0 버전을 설치합니다.


APK 파일을 받는 링크 여기에 첨부합니다.


https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-31-release/mihome-5-0-31-android-apk-download/ )


여기 파일을 받아서, 휴대폰에 넣은 후, 이 패키지를 설치해 주세요.


그리고 앱을 실행시켜 로그인 & 아이템 등록된 것 확인해 주세요~


(기존에 등록된 상태가 다 로드 됩니다.)




2. 안드로이드 휴대폰 개발자 모드 전환 & USB 디버깅 활성화



개발자 모드를 활성화 시켜야 합니다.


안드로이드 설정 화면을 열어서


설정 >> 휴대전화정보 >> 소프트웨어정보 >> 빌드번호 를 광클합니다.


9번인가...10번인가를 클릭하면 개발자모드가 활성화 됩니다.









이제 개발자 메뉴로 들어가야 합니다.


개발자 메뉴는


휴대전화정보 메뉴 바로 아래에 생깁니다.




USB 디버깅 메뉴를 활성화 시켜 줍니다.





3. JAVA 설치 & miToolKit 다운로드



이제 PC에 필요 프로그램들을 깔아 줘야 합니다.


가장 먼저 필요한 것은 JAVA 입니다.


(이미 깔려 있으시면 패스~)


자바 설치 파일 링크는 여기에 있습니다.


https://www.oracle.com/technetwork/java/javase/downloads/index.html )


자바를 설치하고,


미툴킷은 다운로드 받아 줘야 합니다.



미툴킷 다운로드 링크는 여기에 있습니다.


https://github.com/ultrara1n/MiToolkit/releases )


툴킷은 인스톨은 안해도 되네요.



자...이제부터가 시작입니다.



4. PC와 스마트폰을 연결하고, 미툴킷으로 miio2.db 파일 추출



스마트폰과 PC를 케이블로 연결해 주시고, USB 디버깅 허가해 주세요.



툴킷을 CMD 로 진행할 예정입니다.


편하게 토큰추출하는 프로그램도 있기는 한데,


이건 백업 비밀번호 (뒤에 나옵니다)를 안넣어야 추출이 되거든요.


근데, 스마트폰이 암호화 되어 있으면 무조건 비밀번호를 넣어야 합니다.


(아마도 이런 분들이 많으실 듯...)


그래서 그냥 커맨드 창으로 뽑아내겠습니다.


가장 먼저, 커맨드 창을 열어 주세요.


( 검색에서 CMD 로 검색해서 프로그램 돌리셔도 되고, 저는 ComEmu 라는 프로그램을 사용합니다.)


(컴에뮤 다운로드 링크 : https://conemu.github.io/ )



미툴킷을 다운로드 받아서 저장해 놓은 폴더에서 adb/32 폴더 까지 진입해 줍니다.



여기에서, 32 폴더의 위치를 복사해 줘야 합니다.


위치 복사 하는 법은 아래 스샷을 참조해 주세요.





ComEmu로 들어가서,


1. 32 폴더가 있는 주소로 커맨드를 이동해 줍니다.


2. 해당 폴더에서 자바 명령어를 실행시켜야 합니다.


   - 명령어 : adb backup -f backup.ab -apk com.xiaomi.smarthome





이렇게 하면, 폰에서 백업 화면이 뜹니다.


백업을 진행해 주는데요, 이 백업에 비밀번호를 걸어줘야 합니다.


(폰이 암호화 상태가 아니면 비밀번호가 없어도 되지만, 제 폰은 암호화 상태인지라...)






3. 32 폴더 안에 보면 backup.ab 파일이 생성되어 있습니다.


  이 파일을 miToolKit 폴더로 옮깁니다.




miToolKit 폴더에 abe.jar / backup.ab파일이 같이 있도록 만들어 주는 과정입니다.



4. 이제 다시 ComEmu로 돌아가서 미 툴킷 이 있는 위치로 이동합니다.


   cd ..  <== 이게 한 폴더 위단계로 올라가는 명령어 입니다. 이걸 두번 입력해 주면 됩니다.


이제 미툴킷 위치에서 아래 명령어를 입력해 줍니다.


   명령어 :  java -jar abe.jar unpack backup.ab backup.tar



그러면, 비밀번호를 입력하라고 나오는데, 아까 백업할 때 휴대폰에 입력한 비밀번호를 입력!!





이 과정이 성공하면, backup.tar 파일이 생성되어 있습니다.



이걸 압축을 풀어 줍니다.



아래 스크린샷을 보시면 miio2.db 파일이 있는 것을 확인할 수 있습니다.




이제 거의 다 왔습니다!!!




5. DB 검색해서 토큰, IP 추출!!



DB를 검색하는 프로그램들 중 사용중인 것을 꺼내시면 됩니다.


저의 경우에는....DB Browser for SQLite 를 사용 합니다.


( 다운로드 및 설치는 이전글 참조 : https://hospital82.tistory.com/42 )



해당 프로그램을 열어서 miio2,db 파일을 열어 주세요.



SQL 실행 탭으로 이동한 다음,


쿼리를 입력합니다.


쿼리는 다음과 같습니다.


SELECT name, localIP, token, model FROM devicerecord

where localIP like "192%"


(T.M.I ... miio 데이터 파일에서 아이피가 192로 시작하는 녀석들을 골라내서 출력하라는 뜻...)



이렇게 하면 아래쪽에 샤오미 아이템 리스트가 주르르륵~~~!!!


토큰도 32자리로 나와 있고, 아이피도 나와 있어서


이 리스트 그래도 미커넥터에 밀어넣어 주시면 완벽!!







처음에만 길어보이지, 막상 해보면 금방금방 하실 수 있습니다!!


안드로이드 루팅도 필요 없으니, 이 방법으로 토큰 뽑기 도전해 보심이 어떨런지요~

BELATED ARTICLES

more

COMMENT

  • 이찬영 2019.07.15 17:57 안녕하세요 해당게시글 잘봤습니다.
    샤오미 및 기타 IOT관련해서 전문가 수준의 지식을 보유하신거같아 한가지 문의를 드리고자 댓글남깁니다.

    다름이 아니오라 회사내에서 샤오미 제품을 활용하여 종합적으로 온도측정을 할 수 있는 시스템을 구축하고 있는데요.
    미홈 어플로는 온도측정 관련 데이터 추출에 한계가 있어 고민중이었는데 스마트싱크를 이용하면 데이터 추출부분이 원활하게 진행될지 문의드립니다.(월별온도표 등 엑셀느낌으로뽑고자합니다.)
    또 한가지 더 문의 드리자면 도어센서를 활용해서 좌변기칸 이용여부를 알수 있는 시스템도 구축 하려하는데 제품 추천주시면 감사드리겠습니다.
    답변 주시면 많은 도움이 될것 같습니다.잘부탁드리겠습니다.
    그럼 수고하세요.
  • 남두오성 남두오성 2019.09.18 12:42 신고 답변이 많이 늦었습니다. 죄송해요.

    도커를 통해서 미커넥터 - 마리아DB로 데이터 축적 하시면 데이터 추출이 더 용이 하실껍니다.
    (CSV 등의 파일포멧으로도 추출 될꺼예요...아마)

    도어센서를 활용한 좌변기 이용여부.....는
    혹시 좌변기에 도어센서를 달아둔다는 말씀이신지....
    잘 상상이 안가네요 ㅎㅎ