[include(틀:다른 뜻1, other1=본 문서는 주로 시계용 OS에 대해 다룹니다. 스마트폰용 OS, rd1=MIUI)] [include(틀:미 워치 시리즈)] [목차] == 개요 == Xiaomi MIUI의 파생 버전으로 Xiaomi Watch들에 적용되는 OS들. [* 단, 저사양의 시계임을 고려하여 앱은 설치할 수 없다.][*주의 Mi Fitness에서 보이는 버전은 시계 [[UI]] 버전이다.] == 종류 == 샤오미 워치들에게만 적용하고 있다. [[클로즈드 소스]]. === MIUI Watch 1.0 === MIUI Watch의 시초. [[미 워치#Mi Watch Revolve|미 워치 리볼브]]와 [[미 워치#Mi Watch Lite|미 워치 Lite]]에 탑재되어 있다. 기기별로 일부 UI 개조가 이루어 졌다. [[UI]]는 MIUI Watch 순정을 따라간다. ==== 기능 ==== * 알림 포워딩 기능 * 들어올려 켜기 기능 * 비밀번호 잠금 기능 * 화면 임시 터치 금지 기능 [*B 라이트 전용] * [[AOD|AOD ( Always On Display )]] 기능 [*A 리볼브 전용] * 알렉사 기능 [*A] * 내 스마트폰 찾기 기능 * 운동 트래킹 기능 ( 7종 [*B] 116종 [*A] ) * 음악 조정 * 운동 바로가기 버튼 [*A] * 기타 === MIUI Watch 2.0 === ==== MIUI Watch 2.0 [*A ] ==== [[미 워치#Mi Watch Revolve|미 워치 리볼브]]에 적용된 업데이트. ===== 기능 ===== * MIUI Watch 1.0의 모든 기능 * Mi Fitness와 워치간 동기화 데이터 암호화 * VPN을 통해 샤오미 서버와 동기화[* 보내는 정보 : User ID, 시계 백업 ( 시계 설정, 워치 페이스, 알람 설정 )] * HTTPS를 이용해 업데이트 데이터 수신 * AOD 상태에서도 들어올려 켜기 가능 * 카메라 원격 조정 기능 * Sleep Mode 기능 ==== MIUI Watch 2.5 ==== [[미 워치#Mi Watch Revolve|미 워치 리볼브]]와 [[미 워치#Xiaomi Watch Active S1|미 워치 Active S1]]에 탑재되어 있다. ===== 기능 ===== * MIUI Watch 2.0[* 라이트의 경우 1.0]의 모든 기능 * 저장 구조 대개편 * 블루투스를 통한 전화 수신[*C Xiaomi Watch Active, Xiaomi Watch Active S1 전용] * 블루투스를 통한 스마트폰 조작 [*C] * 비밀번호 설정시 저장데이터 암호화 [* 파일 기반 암호화] * [[UEFI]] 보안 부팅 지원 === MIUI Watch 3.0 [*A][*C] === [[미 워치#Mi Watch Revolve|미 워치 리볼브]]와 [[미 워치#Xiaomi Watch Active|미 워치 Active]]에 탑재되어 있다. ==== 기능 ==== * 암호 해싱 알고리즘 변경 ( [[SHA#s-2.1|SHA256 ( SHA-1 )]] -> [[SHA#s-2.3|SHA384 ( SHA-3 )]] ) * 음악 컨트롤 기능의 정확도 향상 * GPS 정확도 향상 * CPU 취약점 패치 [*C] * NPU 활성화. 이로써 새 암호 알고리즘과 [[Alexa]]의 빠른 처리가 가능해졌다. === MIUI Watch 4.0 [*A][*C] === 샤오미에서 자사 보안 취약점이 발견되자 긴급히 진행한 패치 ==== 기능 ==== * [[Alexa]] 서버와의 통신 암호화 * CPU 취약점 패치 [*A] * 음악 컨트롤 기능의 암호화 ( 스마트폰 <-> 시게간의 통신이 암호화되는 것이지 기능 자체가 암호화되어 숨겨지는 것은 아니다. ) * [[블루투스]] 전화의 패킷 암호화 [*C] * 오픈소스 코드를 모두 삭제하고 자사 코드로 교체 == 여담 == * [[미 워치#Mi Watch Lite|미 워치 Lite]]의 업데이트는 거의 없어 버려진것 아니냐는 이야기가 있다. 하지만 가격을 보았을 때 회사 입장에서는 적절한 판단이다. * 만들기 귀찮은지 [[미 워치]] 문서에 보면 엄청난(!) 사양을 가지고 있지만 [[애플리케이션]]의 설치를 지원하지 않는다. ( Active 시리즈 제외 ) == 기타 정보 == === 보안 부팅에 대한 인식 차이 === 원래 [[UEFI]] 표준에 등재된 Secure Boot는 '''운영체제의 디지털 서명을 검증한 뒤 부팅하는 것'''아지만, 샤오미는 조금 다른 의미를 적용하고 있다. 미 워치 시리즈의 부팅 과정은 문단 참고. UEFI는 안정성을 위해 쓰는 것 뿐이고 사실 모든 과정은 1,2차 부트로더가 모두 한다. 3 ~10번까지의 1차 부트로더에서 충분히 시계의 안정성 준비 등 모든 준비를 마치기 때문에 2차 부트로더는 설정값과 펌웨어만을 로드한다. 부팅과정에서 두번이나 검증하고, Mi 계정과도 연동하기 때문에 [[UEFI]]의 보안 부팅이 아닌, 샤오미 부트로더가 OS와 사용자를 검증한다. == 기술 정보 == === 부팅 과정 === 1. 메인보드에 전원이 들어오고 UEFI가 로드된다. [[POST]] 과정을 시행한다. 2. UEFI에서 샤오미 1차 부트로더를 로드한다. 3. 샤오미 부트로더에서 Mi 계정 인증 정보를 로드한다. [* 이게 필요한 이유가, Mi Fitness를 통한 합법적인 시계라면 앱을 통해 Mi 계정이 등록될 것 이다. 이를 통해 유령 기계를 걸러낼 수 있다.] 4. ( 라이트를 제외하고 )샤오미 서버와의 연결을 위한 [[#s-2.2.1.1|참고]] [[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. 설정값에 따라 밝기를 조정한다 [* 초기에 밝았다 변하는 이유가 이것이다.] 17. 펌웨어를 Ring 2로 호출한다 [* 초기 Active S1/S1은 펌웨어를 바로 Ring 0으로 올렸는데, 이게 CPU 취약점이었고 추후 수정되었다.] 18. 부팅이 종료된다. 2차 부트로더가 호출한 펌웨어는 2차 부트로더를 램에서 삭제하고 커널을 Ring 0에 올린 뒤 커널은 펌웨어를 Ring 3에 올린다. 펌웨어는 커널과 자신 ( 설정값 포함 )을 제외한 램 데이터를 모두 삭제한다. 잘 모르는 이를 위해 설명하자면 Ring은 CPU에서의 구역이고 Ring0은 커널, Ring1~2는 드라이버 ( 커널에서 몇가지 권한을 뺀 것 ), Ring3~는 응용 프로그램/OS[* OS가 이곳에서 실행되도 되느냐고 물어볼 수 있는데, 중요한 작업은 모두 커널 요청으로 진행한다.] === 부트로더 === ==== 리커버리 모드 ==== [[미 워치]]도 공장 출하시 설정 모드가 필요하다. 서비스 센터에서 쓰는'리커버리 접근기'를 통해 ( 충전 케이블에 부착 ) 컴퓨터와 연결하면 GUI 또는 CLI를 통해 리커버리 모드에 접근할 수 있다. 이때 롬 포팅 (!)도 할 수 있다. ||사용 가능한 기능[* 중요 기능은 '''굵게''' 표시한다.][* 위험 기능은 ''기울여'' 표시한다.]||설명|| ||'''공장 초기화'''||user 파티션을 날려서 사용자 데이터를 모두 삭제|| ||컴퓨터와 연결해 롬 포팅||컴퓨터와 연결해 커스텀 롬 ( 주로 공장에서 MIUI Watch를 포팅할 때 )을 포팅|| ||''완전한 내장 디스크 데이터 삭제''[* 공장 초기화는 user 파티션만 날리지만, 이건 system이고 뭐고 얄짤없다.]||모든 디스크 데이터를 삭제|| ||드라이버 설정||3G, 4G Network나 Alexa등의 드라이버 설정|| ||''[[UEFI]] 설정 접근''||메인보드 [[UEFI]] 설정 접근|| ||''영구 셧다운''||메인보드에 영구적인 물리적 손상을 가해( 주로 배터리에 있는 전류를 메인보드로 한번에 보내 고장내는 방법을 쓴다. ) 다시는 켜지 못하게 하는 것. 주로 영구적인 데이터 파괴가 필요할 때 쓰인다. 이때 별도의 복구 파티션 ( 메인보드가 아닌 별도 스토리지에 박혀있다. )에 특정 값이 기록되므로 이로 인한 모든 수리는 '''불가능하다''' --사실 리커버리에 들어간거 자체가 서비스 센터 직원이란 소린데...--|| ||'''장기 셧다운'''||기기를 장시간 쓰면 안 될때 ( 예를 들어 추적당할 때 ) 백업 스토리지에 부팅 가능 시점을 기록하고 그 시점이 되기 전까지 1차 부트로더에서 부팅을 거부한다.|| ==== [[UEFI]] ==== 문서 참조 [[UEFI]] ==== 1차 부트로더 ==== [[UEFI]]가 호출하는 부트로더. 이름은 Mi Watch Boot Controller(MIWBC). 부팅 과정에서 필요한 모든 보이지 않는 장치를 다 한 뒤 2차 부트로더를 호출한다. 거의 모든 사용자 인터페이스 작업 ( 예를 들어 [[커널 패닉]]이 발생했을 때, 복구모드로 시동할 때 등 )은 2차 부트로더에서 거의 이루어지므로 1차 부트로더는 거의 부팅/재부팅 할 때만 작동한다. ==== 2차 부트로더, 커널 ==== 1차 부트로더가 호출한다. 이름은 Mi Watch GUI BootLoader(MIWGUIBL). OS를 호출하고 [[커널 패닉]], 복구 모드 등의 모든 작업을 실행한다. ===== 하는 일 ===== ====== [[커널 패닉]] 복구 ====== '''[[커널 패닉]]이 없는 OS는 없다.''' 이는 MIUI Watch도 마찬가지이다. 주로 [[Alexa]]를 호출하다가 램 용량을 넘어서 발생한다. 이때는 밑 문단의 안전모드로 부팅한 뒤 램 초기화를 진행하고 재부팅 프로세스를 호출한다. ====== 안전 모드 부팅 ====== 샤오미 미 워치도 [[Alexa]], 알람, 알림, 날씨 등이 없는 완전한 OS 전용 환경이 필요하다. 이때 안전모드로 부팅시켜준다. 서비스 센터에서 사용하는 '복구 신호 전송기'라는 것이 있는데, 이걸 충전 포트에 끼우고 특정 데이터를 보내면 MIUI Watch가 강제 재부팅된다. 이때 홈 버튼과 운동 버튼을 동시에 누르면 MI 로고가 뜬 뒤 부팅 과정 15번에서 CLI와 GUI를 선택할 수 있는 창이 나온다. CLI를 선택하면 복구 신호 전송기를 이용해 컴퓨터 키보드로 명령어를 입력한다. GUI를 누르면 진짜 설정 등만 있는 화면이 뜬다. 홈 버튼을 꾹 누르면 안전 모드 나가기가 나오는데, 이때 선택하면 나갈 수 있다. ====== 펌웨어 로드 ====== 2차 부트로더가 실행되면 내장 [[Java]] 런타임이 실행된다. 이때 Java로 짜여진 MIUI Watch가 컴파일되어 실행된다. ====== 시스템 종료/재부팅/초기화 ====== 이 프로세스는 커널에서 요청해서 부트로더 ( 실질적인 커널 ) 에서 실행한다. 시스템 종료 : * 시스템 종료 요청이 들어올 경우 먼저 부트로더는 [[UEFI]]를 램에 올린다. [* 왜 올리냐고 할 수 있는데, 나중에 부팅 할 때 안정성을 보장하기 위해서다.] [[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[* '''X'''iaomi '''E'''ncrypted '''F'''ile '''S'''ystem]|| ||/user||User 데이터가 들어있는 파티션||[[exFAT]]|| ||/user/apps[*C]||애플리케이션 데이터가 들어있는 파티션||[[exFAT]]|| ||/user/set||워치 설정이 들어있는 파티션||[[exFAT]]|| * 샤오미는 부트로더가 있는 system 파티션 ( system/secure은 Decrypt한 뒤 필요 파일만 남기고 삭제한다. )은 남기고 user 파티션은 몽땅 초기화한다. == 둘러보기 == [include(틀:모바일 운영 체제)] [[분류:운영 체제]][[분류:UI]][[분류:전자기기]]