최근 수정 시각 : 2024-10-09 05:13:45

MIUI Watch


파일:나무위키+유도.png  
은(는) 여기로 연결됩니다.
본 문서는 주로 시계용 OS에 대해 다룹니다. 스마트폰용 OS에 대한 내용은 MIUI 문서
번 문단을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
참고하십시오.
{{{#!wiki style="margin:-10px" <tablebordercolor=#fff,#1F2023><tablebgcolor=#fff,#1F2023><tablealign=center>파일:샤오미 로고.svg }}}
{{{#!wiki style="margin:0 -10px"
{{{#!folding [ 펼치기 · 접기 ]
미 워치 1세대 문서 보기 미 워치 2세대 문서 보기
미 워치 3세대 문서 보기 미 워치 4세대 문서 보기
미 워치 OS ( MIUI Watch ) 문서 보기
}}} }}} ||

1. 개요2. 종류
2.1. MIUI Watch 1.0
2.1.1. 기능
2.2. MIUI Watch 2.0
2.2.1. MIUI Watch 2.0
2.2.1.1. 기능
2.2.2. MIUI Watch 2.5
2.2.2.1. 기능
2.3. MIUI Watch 3.0
2.3.1. 기능
2.4. MIUI Watch 4.0
2.4.1. 기능
3. 여담4. 기타 정보
4.1. 보안 부팅에 대한 인식 차이
5. 기술 정보
5.1. 부팅 과정5.2. 부트로더
5.2.1. 리커버리 모드5.2.2. UEFI5.2.3. 1차 부트로더5.2.4. 2차 부트로더, 커널
5.2.4.1. 하는 일
5.2.4.1.1. 커널 패닉 복구5.2.4.1.2. 안전 모드 부팅5.2.4.1.3. 펌웨어 로드5.2.4.1.4. 시스템 종료/재부팅/초기화
6. 둘러보기

1. 개요

Xiaomi MIUI의 파생 버전으로 Xiaomi Watch들에 적용되는 OS들. [1][주의]

2. 종류

샤오미 워치들에게만 적용하고 있다. 클로즈드 소스.

2.1. MIUI Watch 1.0

MIUI Watch의 시초.
미 워치 리볼브 미 워치 Lite에 탑재되어 있다. 기기별로 일부 UI 개조가 이루어 졌다. UI는 MIUI Watch 순정을 따라간다.

2.1.1. 기능

  • 알림 포워딩 기능
  • 들어올려 켜기 기능
  • 비밀번호 잠금 기능
  • 화면 임시 터치 금지 기능 [B]
  • AOD ( Always On Display ) 기능 [A]
  • 알렉사 기능 [A]
  • 내 스마트폰 찾기 기능
  • 운동 트래킹 기능 ( 7종 [B] 116종 [A] )
  • 음악 조정
  • 운동 바로가기 버튼 [A]
  • 기타

2.2. MIUI Watch 2.0

2.2.1. MIUI Watch 2.0 [A]

미 워치 리볼브에 적용된 업데이트.
2.2.1.1. 기능
  • MIUI Watch 1.0의 모든 기능
  • Mi Fitness와 워치간 동기화 데이터 암호화
  • VPN을 통해 샤오미 서버와 동기화[10]
  • HTTPS를 이용해 업데이트 데이터 수신
  • AOD 상태에서도 들어올려 켜기 가능
  • 카메라 원격 조정 기능
  • Sleep Mode 기능

2.2.2. MIUI Watch 2.5

미 워치 리볼브 미 워치 Active S1에 탑재되어 있다.
2.2.2.1. 기능
  • MIUI Watch 2.0[11]의 모든 기능
  • 저장 구조 대개편
  • 블루투스를 통한 전화 수신[C]
  • 블루투스를 통한 스마트폰 조작 [C]
  • 비밀번호 설정시 저장데이터 암호화 [14]
  • UEFI 보안 부팅 지원

2.3. MIUI Watch 3.0 [A][C]

미 워치 리볼브 미 워치 Active에 탑재되어 있다.

2.3.1. 기능

  • 암호 해싱 알고리즘 변경 ( SHA256 ( SHA-1 ) -> SHA384 ( SHA-3 ) )
  • 음악 컨트롤 기능의 정확도 향상
  • GPS 정확도 향상
  • CPU 취약점 패치 [C]
  • NPU 활성화. 이로써 새 암호 알고리즘과 Alexa의 빠른 처리가 가능해졌다.

2.4. MIUI Watch 4.0 [A][C]

샤오미에서 자사 보안 취약점이 발견되자 긴급히 진행한 패치

2.4.1. 기능

  • Alexa 서버와의 통신 암호화
  • CPU 취약점 패치 [A]
  • 음악 컨트롤 기능의 암호화 ( 스마트폰 <-> 시게간의 통신이 암호화되는 것이지 기능 자체가 암호화되어 숨겨지는 것은 아니다. )
  • 블루투스 전화의 패킷 암호화 [C]
  • 오픈소스 코드를 모두 삭제하고 자사 코드로 교체

3. 여담

  • 미 워치 Lite의 업데이트는 거의 없어 버려진것 아니냐는 이야기가 있다. 하지만 가격을 보았을 때 회사 입장에서는 적절한 판단이다.
  • 만들기 귀찮은지 미 워치 문서에 보면 엄청난(!) 사양을 가지고 있지만 애플리케이션의 설치를 지원하지 않는다. ( Active 시리즈 제외 )

4. 기타 정보

4.1. 보안 부팅에 대한 인식 차이

원래 UEFI 표준에 등재된 Secure Boot는 운영체제의 디지털 서명을 검증한 뒤 부팅하는 것아지만, 샤오미는 조금 다른 의미를 적용하고 있다. 미 워치 시리즈의 부팅 과정은 문단 참고.
UEFI는 안정성을 위해 쓰는 것 뿐이고 사실 모든 과정은 1,2차 부트로더가 모두 한다. 3 ~10번까지의 1차 부트로더에서 충분히 시계의 안정성 준비 등 모든 준비를 마치기 때문에 2차 부트로더는 설정값과 펌웨어만을 로드한다. 부팅과정에서 두번이나 검증하고, Mi 계정과도 연동하기 때문에 UEFI의 보안 부팅이 아닌, 샤오미 부트로더가 OS와 사용자를 검증한다.

5. 기술 정보

5.1. 부팅 과정

1. 메인보드에 전원이 들어오고 UEFI가 로드된다. POST 과정을 시행한다.
2. UEFI에서 샤오미 1차 부트로더를 로드한다.
3. 샤오미 부트로더에서 Mi 계정 인증 정보를 로드한다. [22]
4. ( 라이트를 제외하고 )샤오미 서버와의 연결을 위한 참고 VPN 연결을 확립한다. Mi 계정 식별자를 통해 허가된 MIUI Watch인지 확인한다.
5. 블루투스 연결 확립
6. ( 라이트를 제외하고 ) Alexa와의 연결을 확립한다.
7. ( 리볼브만 ) 3G, 4G Network 연결을 확립한다.
8. ( Active S1, S1만 ) 애플리케이션을 로드한다.
9. 1차 부트로더가 2차 부트로더를 램에 올린다.
10. 2차 부트로더가 1차 부트로더를 램에서 삭제한다.
11. 2차 부트로더가 워치 설정값을 램에 올린다. VPN을 통해 샤오미 서버에 연결해 Mi 계정 식별자를 통해 허가된 MIUI Watch인지 확인한다.
12. 램에 올려진 설정값을 바탕으로 워치 페이스/AOD를 로드한다.
13. 기타 설정값을 로딩한다.
14. MI 로고가 뜬다.
15. 화면이 켜진다
16. 설정값에 따라 밝기를 조정한다 [23]
17. 펌웨어를 Ring 2로 호출한다 [24]
18. 부팅이 종료된다. 2차 부트로더가 호출한 펌웨어는 2차 부트로더를 램에서 삭제하고 커널을 Ring 0에 올린 뒤 커널은 펌웨어를 Ring 3에 올린다. 펌웨어는 커널과 자신 ( 설정값 포함 )을 제외한 램 데이터를 모두 삭제한다.
잘 모르는 이를 위해 설명하자면 Ring은 CPU에서의 구역이고 Ring0은 커널, Ring1~2는 드라이버 ( 커널에서 몇가지 권한을 뺀 것 ), Ring3~는 응용 프로그램/OS[25]

5.2. 부트로더

5.2.1. 리커버리 모드

미 워치도 공장 출하시 설정 모드가 필요하다.
서비스 센터에서 쓰는'리커버리 접근기'를 통해 ( 충전 케이블에 부착 ) 컴퓨터와 연결하면 GUI 또는 CLI를 통해 리커버리 모드에 접근할 수 있다. 이때 롬 포팅 (!)도 할 수 있다.
사용 가능한 기능[26][27] 설명
공장 초기화 user 파티션을 날려서 사용자 데이터를 모두 삭제
컴퓨터와 연결해 롬 포팅 컴퓨터와 연결해 커스텀 롬 ( 주로 공장에서 MIUI Watch를 포팅할 때 )을 포팅
완전한 내장 디스크 데이터 삭제[28] 모든 디스크 데이터를 삭제
드라이버 설정 3G, 4G Network나 Alexa등의 드라이버 설정
UEFI 설정 접근 메인보드 UEFI 설정 접근
영구 셧다운 메인보드에 영구적인 물리적 손상을 가해( 주로 배터리에 있는 전류를 메인보드로 한번에 보내 고장내는 방법을 쓴다. ) 다시는 켜지 못하게 하는 것. 주로 영구적인 데이터 파괴가 필요할 때 쓰인다. 이때 별도의 복구 파티션 ( 메인보드가 아닌 별도 스토리지에 박혀있다. )에 특정 값이 기록되므로 이로 인한 모든 수리는 불가능하다 사실 리커버리에 들어간거 자체가 서비스 센터 직원이란 소린데...
장기 셧다운 기기를 장시간 쓰면 안 될때 ( 예를 들어 추적당할 때 ) 백업 스토리지에 부팅 가능 시점을 기록하고 그 시점이 되기 전까지 1차 부트로더에서 부팅을 거부한다.

5.2.2. UEFI

문서 참조 UEFI

5.2.3. 1차 부트로더

UEFI가 호출하는 부트로더. 이름은 Mi Watch Boot Controller(MIWBC).
부팅 과정에서 필요한 모든 보이지 않는 장치를 다 한 뒤 2차 부트로더를 호출한다.
거의 모든 사용자 인터페이스 작업 ( 예를 들어 커널 패닉이 발생했을 때, 복구모드로 시동할 때 등 )은 2차 부트로더에서 거의 이루어지므로 1차 부트로더는 거의 부팅/재부팅 할 때만 작동한다.

5.2.4. 2차 부트로더, 커널

1차 부트로더가 호출한다. 이름은 Mi Watch GUI BootLoader(MIWGUIBL).
OS를 호출하고 커널 패닉, 복구 모드 등의 모든 작업을 실행한다.
5.2.4.1. 하는 일
5.2.4.1.1. 커널 패닉 복구
커널 패닉이 없는 OS는 없다. 이는 MIUI Watch도 마찬가지이다. 주로 Alexa를 호출하다가 램 용량을 넘어서 발생한다.
이때는 밑 문단의 안전모드로 부팅한 뒤 램 초기화를 진행하고 재부팅 프로세스를 호출한다.
5.2.4.1.2. 안전 모드 부팅
샤오미 미 워치도 Alexa, 알람, 알림, 날씨 등이 없는 완전한 OS 전용 환경이 필요하다. 이때 안전모드로 부팅시켜준다.
서비스 센터에서 사용하는 '복구 신호 전송기'라는 것이 있는데, 이걸 충전 포트에 끼우고 특정 데이터를 보내면 MIUI Watch가 강제 재부팅된다. 이때 홈 버튼과 운동 버튼을 동시에 누르면 MI 로고가 뜬 뒤 부팅 과정 15번에서 CLI와 GUI를 선택할 수 있는 창이 나온다. CLI를 선택하면 복구 신호 전송기를 이용해 컴퓨터 키보드로 명령어를 입력한다.
GUI를 누르면 진짜 설정 등만 있는 화면이 뜬다. 홈 버튼을 꾹 누르면 안전 모드 나가기가 나오는데, 이때 선택하면 나갈 수 있다.
5.2.4.1.3. 펌웨어 로드
2차 부트로더가 실행되면 내장 Java 런타임이 실행된다. 이때 Java로 짜여진 MIUI Watch가 컴파일되어 실행된다.
5.2.4.1.4. 시스템 종료/재부팅/초기화
이 프로세스는 커널에서 요청해서 부트로더 ( 실질적인 커널 ) 에서 실행한다.
시스템 종료 :
  • 시스템 종료 요청이 들어올 경우 먼저 부트로더는 UEFI를 램에 올린다. [29] UEFI가 이상 없으면 바로 램의 데이터를 모두 삭제하고 전원을 차단한다.
재부팅은 또 다르다.
  • 먼저 부트로더는 UEFI를 램에 올린다. 이후 UEFI를 실행하고 램을 지운 뒤 UEFI를 통해 1차 부트로더를 호출해 부팅한다.
초기화를 위해서는 MIUI Watch의 파티션 구조에 대해 알 필요가 있다.
파티션 용도 포맷
/(루트) 말 그대로 최상위 파티션 exFAT
/boot 1차 부트로더가 들어있는 파티션 FAT32
/system MIUI Watch가 들어있는 파티션 exFAT
/system/safe Safe Mode가 들어있는 파티션 exFAT
/system/boot 2차 부트로더가 들어있는 파티션 ext4
/system/secure[A] 암호화된 정보가 들어있는 곳 XEFS[31]
/user User 데이터가 들어있는 파티션 exFAT
/user/apps[C] 애플리케이션 데이터가 들어있는 파티션 exFAT
/user/set 워치 설정이 들어있는 파티션 exFAT
  • 샤오미는 부트로더가 있는 system 파티션 ( system/secure은 Decrypt한 뒤 필요 파일만 남기고 삭제한다. )은 남기고 user 파티션은 몽땅 초기화한다.

6. 둘러보기

모바일 운영 체제
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px);"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px; word-break: keep-all;"
이름 개발사
파일:안드로이드(운영체제) 로고.svg 파일:안드로이드(운영체제) 로고 컬러 화이트.svg Android 구글
파일:Wear OS 로고.svg Wear OS*
파일:WearOS Powered by Samsung 로고.svg 파일:WearOS Powered by Samsung 로고 화이트.svg Wear OS Powered by Samsung* 삼성전자, 구글
파일:Tizen 로고.png 파일:Tizen 로고 다크.png 타이젠 삼성전자, 인텔
파일:webOS 로고.svg 파일:webOS 로고 컬러 화이트.svg webOS LG전자
파일:HarmonyOS 로고.svg 파일:HarmonyOS 로고 컬러 화이트.svg HarmonyOS 화웨이
파일:Xiaomi_hyperos_블랙.svg 파일:Xiaomi_hyperos.svg Xiaomi HyperOS 샤오미
파일:fitbitOS_logo.png FitbitOS* 핏빗
파일:Sailfish OS 로고.svg 파일:Sailfish OS 로고 화이트.svg Sailfish OS 욜라
파일:KaiOS 로고.svg 파일:KaiOS 로고 다크.svg KaiOS** KaiOS 테크놀로지
파일:PureOS 로고.png 파일:PureOS 로고 화이트.png PureOS Purism
파일:샤오미.png MIUI Watch* 샤오미
파일:postmarketOS 로고.svg postmarketOS postmarketOS 오픈소스 커뮤니티
파일:iOS 로고.svg 파일:iOS 로고 화이트.svg iOS Apple
파일:iPadOS 워드마크.svg 파일:iPadOS 워드마크 화이트.svg iPadOS
파일:watchOS 로고.svg 파일:watchOS 로고 화이트.svg watchOS*
파일:visionOS 워드마크.svg 파일:visionOS 워드마크 화이트.svg visionOS*
*: 웨어러블용 운영 체제
**: 피처폰용 운영 체제
개발을 중단한 모바일 운영 체제 }}}}}}}}}



[1] 단, 저사양의 시계임을 고려하여 앱은 설치할 수 없다. [주의] Mi Fitness에서 보이는 버전은 시계 UI 버전이다. [B] 라이트 전용 [A] 리볼브 전용 [A] [B] [A] [A] [A] [10] 보내는 정보 : User ID, 시계 백업 ( 시계 설정, 워치 페이스, 알람 설정 ) [11] 라이트의 경우 1.0 [C] Xiaomi Watch Active, Xiaomi Watch Active S1 전용 [C] [14] 파일 기반 암호화 [A] [C] [C] [A] [C] [A] [C] [22] 이게 필요한 이유가, Mi Fitness를 통한 합법적인 시계라면 앱을 통해 Mi 계정이 등록될 것 이다. 이를 통해 유령 기계를 걸러낼 수 있다. [23] 초기에 밝았다 변하는 이유가 이것이다. [24] 초기 Active S1/S1은 펌웨어를 바로 Ring 0으로 올렸는데, 이게 CPU 취약점이었고 추후 수정되었다. [25] OS가 이곳에서 실행되도 되느냐고 물어볼 수 있는데, 중요한 작업은 모두 커널 요청으로 진행한다. [26] 중요 기능은 굵게 표시한다. [27] 위험 기능은 기울여 표시한다. [28] 공장 초기화는 user 파티션만 날리지만, 이건 system이고 뭐고 얄짤없다. [29] 왜 올리냐고 할 수 있는데, 나중에 부팅 할 때 안정성을 보장하기 위해서다. [A] [31] Xiaomi Encrypted File System [C]