
Odysseus는 GrapheneOS에서 일상용 사용자 계정을 만들고, 선택한 앱만 남긴 뒤 그 계정에서 앱 설치를 막는 앱이다. 브라우저 없이 지도·메시지·비밀번호 관리자 같은 스마트폰 기능을 쓰려는 사람을 위한 도구로, 설정에는 GrapheneOS 기기와 USB-C 케이블, ADB가 설치된 컴퓨터가 필요하다.
작동 방식과 설치 전 준비
Odysseus에서 Owner는 기기의 관리 계정으로, 일상용 계정을 만들고 그 계정의 앱을 추가하거나 업데이트한다. Owner는 제한 없이 기기를 관리한다. 일상용 계정은 선택적 시스템 앱 없이 만들어지므로 GrapheneOS의 기본 브라우저인 Vanadium이 포함되지 않는다. 기본으로 제공되는 앱은 App Store, Contacts, Files, Settings, Phone이다. Owner에서 원하는 앱을 추가한 뒤 일상용 계정의 앱 설치를 끄면 그 계정 안에서는 앱을 더 설치할 수 없다.
일상용 계정이 처음 시작될 때 Odysseus는 그 계정에서 Private Space와 디버깅 기능을 막고 앱 아이콘을 숨긴다. 제한을 끄는 Odysseus 화면도 일상용 계정에는 없다. 이 설정은 GrapheneOS의 개선된 사용자 프로필을 바탕으로 한다.
시작하려면 GrapheneOS 기기, USB-C 케이블, ADB가 설치된 컴퓨터가 필요하다. 먼저 중요한 데이터를 기기 밖에 백업해야 한다. Android에서 기기 소유자를 설정하려면 기기에 계정, 다른 사용자, Private Space가 없어야 한다. 가장 확실한 방법은 초기화다. 초기화하지 않는다면 모든 계정과 다른 사용자, Owner의 Private Space를 삭제해야 한다. Owner만 사용한다면 설정에서 모든 계정과 Private Space를 제거하면 된다.
Owner 비밀번호가 일상용 계정의 제한을 지키므로 쉽게 알아낼 수 없는 비밀번호를 정해야 한다. 신뢰하는 사람에게 설정을 부탁하거나, 비밀번호를 나눠 서로 절반씩 기억하는 방법이 제시돼 있다. 불편한 곳에 긴 비밀번호를 보관하거나 외워 두는 방법도 있다. 비밀번호 일부를 외우고 그 부분은 다른 사람과 공유하지 않는 방안도 고려할 수 있다. 비밀번호를 잃어버리면 초기화 외에는 복구 방법이 없다. 설정이 끝날 때까지 Owner 비밀번호를 간단하게 유지할 수도 있다. 자동 재부팅 뒤에는 일상용 계정으로 전환하기 전에 Owner를 잠금 해제해야 하므로, 자동 재부팅 시간을 평소 휴대전화를 사용하지 않는 시간보다 길게 설정하는 것이 좋다.
설치와 계정 설정
Odysseus의 다운로드 안내에서 앱을 받거나 GitHub 릴리스를 이용할 수 있다. Obtainium을 통한 추가 링크도 제공한다. 내려받은 파일은 AppVerifier로 확인할 수 있다. 안내된 식별자와 인증서 지문은 다음과 같다.
org.getflourish.odysseus FE:BB:57:70:19:90:D1:36:89:6A:ED:E8:DA:8B:3F:9D:62:C1:3F:0D:20:D2:AD:3B:E7:77:68:2A:B3:96:63:B0
설정은 다음 순서로 진행한다.
- Owner에 Odysseus를 설치한다.
- 설정 → 휴대전화 정보에서 빌드 번호를 일곱 번 누르고 PIN이나 비밀번호를 입력해 개발자 옵션을 켠다.
- 설정 → 시스템 → 개발자 옵션에서 USB 디버깅을 켠다.
- 휴대전화를 컴퓨터에 연결하고, 기기에 USB 디버깅 허용 창이 나타나면 허용을 누른다.
- 컴퓨터에서 터미널을 연다. Windows에서는 명령 프롬프트를 사용한다. Odysseus 화면에 표시된 다음 명령을 실행한다.
adb shell dpm set-device-owner org.getflourish.odysseus/.Receiver
Odysseus에 “Device owner: active”라고 표시되면 기기 소유자로 설정된 것이다.
- 설정 → 시스템 → 개발자 옵션에서 개발자 옵션을 끈다. USB 디버깅도 함께 꺼진다.
- Odysseus의 Create user에서 “user” 같은 이름을 입력하고 Create를 누른다.
- Owner에서 설정 → 시스템 → 사용자 → 일상용 계정 → 사용 가능한 앱 설치로 들어가 필요한 앱을 선택한다. 오류를 피하려면 Vanadium을 제외한 GrapheneOS 기본 앱을 모두 설치하는 것이 권장된다. 예를 들어 Camera가 없으면 Signal에서 사진을 찍을 수 없다. 새 사용자에게는 앱 설치가 이미 허용돼 있으므로 이 단계에서 설치 허용을 따로 켤 필요는 없다. 나중에 앱을 추가할 수도 있다.
- 일상용 계정으로 전환해 초기 설정을 마친다. 화면 위에서 두 번 아래로 쓸어내리고 사용자 아이콘을 누르면 전환할 수 있다. 계정의 App Store에서 Vanadium Config와 Vanadium System WebView가 설치돼 있는지 확인하고, 없다면 설치한다. WebView를 쓰는 앱에는 이 구성요소가 필요하다.
- Owner로 돌아와 설정 → 시스템 → 사용자 → 일상용 계정에서 App installs and updates를 Disabled로 바꾼다.
- 일상용 계정에서 Odysseus 아이콘이 홈 화면에서 사라졌는지, 설정 → 앱에서 Odysseus를 삭제할 수 없는지, Private Space를 설정할 수 없는지 확인한다. 하나라도 확인에 실패하면 Owner로 돌아가 일상용 계정을 삭제하고 다시 만들어야 한다.
설정 과정에서 set-device-owner 명령이 계정이나 사용자 관련 오류로 실패하면 계정, 다른 사용자 또는 Private Space가 남아 있는지 확인해 제거한 뒤 다시 실행한다. 초기화 뒤 설정하는 것이 확실한 방법이다. ADB에서 기기를 찾지 못하거나 인증되지 않았다고 나오면 케이블 연결과 USB 디버깅 상태를 확인한다. 케이블을 뺐다가 다시 연결하고, 기기에 표시되는 허용 요청을 누른다.
앱 관리와 제한 해제
일상용 계정에 앱을 추가하려면 Owner에 먼저 앱을 설치한다. Owner의 설정 → 시스템 → 사용자 → 일상용 계정에서 App installs and updates를 Enabled로 바꾸고, Install available apps를 눌러 앱을 선택한다. 일상용 계정으로 전환하기 전에 설정을 다시 Disabled로 돌려야 한다.
앱을 업데이트할 때는 Owner에서 업데이트하면 된다. 두 사용자는 설치된 앱의 사본을 공유하므로 일상용 계정에도 업데이트가 적용된다. 앱 업데이트를 받기 위해 App installs and updates를 켤 필요는 없다. 이 설정은 일상용 계정에서 직접 설치나 업데이트를 시작하는 것만 막는다.
제한을 해제하려면 Owner에서 설정 → 시스템 → 사용자 → 일상용 계정 → 사용자 삭제로 일상용 계정을 삭제한 뒤, Odysseus를 열어 Deactivate를 누른다. 그다음 Odysseus를 삭제할 수 있다. 일상용 계정을 삭제하지 않고 Deactivate만 누르면 제한은 그대로 남는다. Odysseus가 해당 계정의 프로필 소유자로 남아 그 계정에서 삭제할 수 없기 때문이다. 계정을 삭제해야 제한이 제거된다.
사용상 한계와 보안 안내
시스템 앱을 일상용 계정에서 빼면 다른 앱의 기능이 깨질 수 있다. 브라우저가 없으므로 보통 브라우저에서 열리는 링크도 열리지 않는다. Vanadium Config와 Vanadium System WebView를 설치하면 WebView가 필요한 앱은 작동하지만, 내장 브라우저가 있는 앱으로는 웹을 탐색할 수 있을 수도 있다. 앱을 고를 때 이를 고려해야 한다. 앱이 필요한 사이트를 넘어 다른 웹사이트까지 열 수 있다면 해당 앱 개발자에게 Android 보안 모범 사례를 따르도록 요청하는 방안이 안내돼 있다. 두 구성요소를 설치하지 않으면 내장 브라우저는 페이지를 불러오지 못하지만 WebView가 필요한 앱도 작동하지 않는다. Private Space는 모든 사용자 계정에서 사용할 수 없다.
제작자에 따르면 Odysseus는 AI를 사용해 개발했으며 Claude Opus 5.5로 개발하고 GPT-6 Astra와 Opus 5.5로 코드를 검토했다. Odysseus의 AI 보안 검토에서는 다른 앱이 기기 소유자 권한을 사용하는 방법이나 네트워크 접근이 발견되지 않았고, 사소한 신뢰성 문제가 발견됐다. 제작자는 그중 대부분이 수정됐거나 중요하지 않은 것으로 확인됐다고 설명하며 추가 검토를 환영한다고 밝혔다. 이는 제작자가 소개한 검토 결과다.
제작자는 Odysseus가 Android에서 기기를 제한하는 의도된 방법을 사용하고, 권한을 요청하지 않으며 네트워크 접근이나 원격 측정(telemetry)이 없다고 설명한다. 다만 Odysseus와 일반적인 기기 소유자 앱은 Android에서 큰 권한을 부여받으므로 앱을 신뢰해야 하는 위험이 있다. Odysseus는 개인정보 안내에 열거된 일부 권한만 사용하며, 설정을 되돌릴 수 있다고 제작자는 말한다. APK가 정식 Odysseus인지 SHA256 서명 인증서로 확인하고, 재현 가능한 빌드로 소스 코드와 배포 APK가 일치하는지 확인할 수 있다.
현재 설정에는 ADB가 필요하다. 향후 GrapheneOS에 따라 초기 기기 설정 중 QR 코드 프로비저닝으로 ADB 없이 설치하고 Odysseus를 기기 소유자로 지정하도록 앱이 업데이트될 가능성이 있다고 제작자는 설명한다. 관련 GrapheneOS 이슈와 이전 시도(종료됨)가 공개돼 있다. 이슈에 반응을 남겨 지지를 표시할 수 있지만, 의미 있는 내용이 있을 때만 댓글을 달아 달라는 안내도 있다.
iPhone이나 iPad에서 비슷한 설정을 하려면 Apple Configurator로 기기를 관리하고 브라우저를 제거한 뒤 새 앱 설치를 막는 방법이 소개돼 있다. 최초 설정에는 macOS 기기와 iPhone 또는 iPad 초기화가 필요하다. 초기화 없이 설정할 수 있다고 주장하는 새 앱이 출시됐다는 언급도 있지만, 제작자는 그 앱을 전혀 살펴보지 않았으며 추천하지 않는다고 밝혔다.
Odysseus는 Android 17 기반 GrapheneOS에서 작동한다고 안내돼 있다. 제작자는 단순한 앱이라 업데이트가 많이 필요하지 않을 것이라고 설명하며, 업데이트 뒤 문제가 생기면 이슈를 등록해 달라고 요청한다. 지원은 최선의 노력으로 제공되며 사용 중 문제에 대한 책임은 지지 않는다는 고지도 있다. GrapheneOS 포럼 토론에서도 의견을 나눌 수 있다.
Odysseus는 CC0 1.0에 따라 퍼블릭 도메인으로 공개됐다. 자세한 내용은 LICENSE에서 확인할 수 있다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요