T1Bridge
Apple의 T1 iBridge에 대한 오픈 소스 Linux 지원 프로젝트입니다. 목표는 단순히 지문 인증 기능뿐만 아니라, 디스플레이, 카메라, Touch ID, 센서 및 장치 수명 주기 등 T1이 처리하는 모든 기능을 직접적으로 지원하는 것입니다.
현재 커버리지와 남은 작업 목록은 아래에 기재되어 있습니다.
[!CAUTION]
Mac을 지우거나 파티셔닝하기 전에 중단하세요: Apple EFI 데이터를 보존해야 합니다.
Touch ID는 이 Mac의 원래 EFI/APPLE/EMBEDDEDOS/FDRData가 필요합니다.
Linux를 설치하거나 어떤 파티션이든 포맷하기 전에 Apple EFI 파티션을 유지하고 다른 장치에 별도로 백업하세요. 백업 데이터에 해당 경로가 실제로 포함되어 있는지 확인해야 합니다. 리눅스 부팅 파일만 보관하는 것으로는 충분하지 않습니다.
이 데이터 또는 일치하는 백업 없이는 T1Bridge가 Touch ID를 설정할 수 없습니다.
지문 재등록, 이 패키지 재설치, 또는 다른 Mac의 백업으로는 이를 대체할 수 없습니다.
이미 삭제했나요? 복구가 가능합니다: 이 Mac에 macOS를 복원하고 첫 부팅을 완료하여 기기별 EFI 데이터가 재생성되도록 하세요. 단순히 설치 프로그램을 다운로드하거나 Recovery로 부팅하는 것만으로는 충분하지 않습니다.
그런 다음 Linux로 돌아가기 전에 EFI/APPLE/EMBEDDEDOS/FDRData를 확인하고 백업하세요. macOS 복원 전에 리눅스 데이터를 백업하세요. 복원은 이 데이터를 지울 수 있습니다.
linux.standardagents.ai에서 공식 서명된 패키지를 설치하십시오.
소스 빌드, GitHub 인증 또는 다운로드 토큰이 필요하지 않습니다.
지원되는 하드웨어
테이블
| MacBook Pro | 모델 식별자 | 하드웨어 테스트 |
|---|
| 2016, 13인치 Touch Bar 탑재 | MacBookPro13,2 | 🟢 테스터 확인: Touch Bar, Touch ID 및 재부팅 지속성; 제한 사항은 아래 참조 |
| ... | | |
MacBookPro13,3의 성공은 두 대의 기기에서 확인되었습니다. 한 MacBookPro13,2 테스터는 공식 v0.1.1 패키지에서 Touch Bar 제어, 두 손가락 등록/검증(enrollment/verification), 재부팅 지속성(reboot persistence) 및 구성된 PAM 소비자(PAM consumers)를 확인했습니다. 카메라 스트리밍과 시스템 절전 모드 진입/해제(system sleep/wake)는 테스트되지 않았습니다. 또 다른 MacBookPro14,3 테스터는 비공개 T1 링크에서 xART를 허용한 후 및 전체 종료/전원 켜기(full shutdown/power-on) 과정에서 패키지 빌드를 교체하거나 저장된 데이터를 초기화하지 않고 등록(enrollment)이 가능함을 확인했습니다. 이는 해당 모델의 모든 기능을 확립하는 것은 아닙니다. 버전 0.1.10은 합성 스토리지(synthetic storage)로 재현된 자동 가져오기 샌드박스 실패 문제를 수정했으며, 보고 기기에서의 확인이 보류 중입니다. 명시적인 동일 기기 백업 가져오기(same-machine backup import)는 해당 리포터들에게 작동합니다.
한 MacBookPro14,2 테스터는 v0.1.1에서 Touch Bar, 등록/검증(enrollment/verification), sudo 및 잠금 인증(lock authentication)을 보고했으며, 제어 기능은 재부팅 후에도 지속되었습니다. 카메라 캡처는 테스트되지 않았으며, 덮개 열림 시 검은 화면이 남았고, 지속적인 keybag 릴레이 재시작 루프는 계속 조사 중입니다.
테스터들의 보고는 GitHub 이슈를 통해 환영합니다. 모델, 커널/패키지 버전, 그리고 어떤 기능이 작동하거나 실패하는지를 포함하되, 시리얼 번호나 기기별 EFI 데이터는 포함하지 마십시오.
T2 Mac, Apple Silicon, 그리고 Touch Bar가 없는 모델은 본 프로젝트의 하드웨어 범위 밖에 있습니다. 현재 설치 가능한 공식 패키지는 Omarchy를 포함한 x86_64 Arch Linux 및 Arch 기반 배포판에 한해서만 (systemd 256 이상) 지원됩니다. 아직 공식 Ubuntu, Mint, Debian 또는 Fedora 패키지는 없습니다. 소스 코드는 데스크톱 중립적이며, 다른 배포판을 지원하려면 해당 Arch 패키지를 설치하는 것이 아니라 패키징 및 검증 과정이 필요합니다. 지원되는 버전을 참조하십시오.
T1 기능 지원
🟢 사용 가능 · 🟡 부분적 / 통합 필요 · 🔴 작동하지 않거나 구현되지 않음
이 상태는 현재 커버리지를 설명하는 것이며, 모든 모델과 커널 조합에 대해 테스트되었다는 주장은 아닙니다. 누락된 T1 기능은 여전히 범위 내에 있습니다.
| 기능 | 현재 상태 | 세부 정보 |
|---|
| Touch Bar 디스플레이 및 터치 입력 | 🟢 사용 가능 | 기본 렌더러, Escape 키, 하드웨어 제어, 그리고 Fn을 누른 상태에서의 F1–F12. 이는 노트북의 메인 GPU/디스플레이가 아닌 Touch Bar 디스플레이입니다. |
| ... | | |
| Wi-Fi, Bluetooth, 스피커, 내부 키보드/트랙패드, GPU 전환 및 호스트 전체 전원 관리는 T1Bridge와 별개입니다. 호스트 절전 모드/깨어남 중 T1 자체 기능의 복구는 범위 내에 있습니다. 관련 없는 GPU, 펌웨어 또는 플랫폼 일시 중지 문제를 해결하는 것은 아닙니다. 이것은 완전한 MacBook 하드웨어 활성화 번들은 아닙니다. | | |
사용자 지정 Touch Bar UI 사용해 보기
별도의 Standard Agents touchbar-doom 패키지는 비표준 Touch Bar UI를 시도하고 싶은 Omarchy 사용자들을 위한 선택적 데모입니다. 이 패키지는 T1Bridge의 특권이 없는 렌더러 인터페이스를 통해 파노라마 게임 뷰, 레이블링된 HUD, 무기 아트워크 및 음소거 토글을 갖춘 플레이 가능한 Doom을 실행합니다.
패키지를 설치하고 Doom 공유웨어 게임 데이터를 공급하려면 [설치 지침]을 따르십시오. 애플리케이션 런처에서 Touch Bar Doom을 열거나 touchbar-doom launch를 실행하십시오. 이전 렌더러로 복원하려면 가장 왼쪽의 QUIT을 누르거나 Fn 키를 누르십시오.
이는 T1Bridge에 번들되어 있거나 기본적으로 설치되는 것이 아닙니다. 이를 설치한다고 해서 활성 렌더러가 변경되지는 않으며, 실행하는 것은 명시적인 사용자 행동입니다. 게임 플레이는 Quit 또는 Fn이 해제될 때까지 키보드를 점유합니다. 작동하는 T1Bridge Touch Bar가 먼저 필요하며, 데모는 하드웨어 드라이버를 설치하지 않습니다.
공식 패키지 설치
[!CAUTION]
계속하기 전에: Apple EFI 파티션을 보존하고 외부 백업에 EFI/APPLE/EMBEDDEDOS/FDRData가 포함되어 있는지 확인하십시오. 이 Mac의 데이터 없이는 Touch ID 설정이 작동하지 않습니다. 파티션을 포맷하지 마십시오.
이미 누락된 경우, 완전한 첫 부팅을 통해 macOS를 복원한 다음, Linux로 돌아가기 전에 재생성된 EFI 데이터를 보존하고 백업하십시오.
작동하는 비밀번호 로그인 상태를 유지하고 디스크를 백업하십시오.
1. 서명 키 신뢰하기
일반 계정에서 실행합니다:
key_dir=$(mktemp -d)
curl -fSLo "$key_dir/t1bridge-signing-key.asc" \
https://linux.standardagents.ai/arch/standardagents/x86_64/t1bridge-signing-key.asc
...
**주요 지문(primary fingerprint)**이 정확히 다음 값인지 확인하십시오:
35B166F78B063B04DE1E3D913E6C4216EB03D371
일치한 후에만 다음을 실행하십시오:
sudo pacman-key --add "$key_dir/t1bridge-signing-key.asc"
sudo pacman-key --lsign-key 35B166F78B063B04DE1E3D913E6C4216EB03D371
2. 저장소 추가 및 설치
기존 저장소를 보존하면서 이 블록을 /etc/pacman.conf에 한 번 추가하십시오:
[standardagents]
SigLevel = Required DatabaseRequired
Server = https://linux.standardagents.ai/arch/$repo/$arch
해당 파일에서 $repo와 $arch를 리터럴로 유지하십시오. 표준 Arch linux 커널의 경우:
sudo pacman -Syu --needed linux-headers t1bridge t1bridge-dkms libfprint-t1bridge fprintd-t1bridge
커널이 linux가 아닌 경우, 해당 커널과 일치하는 헤더 패키지를 사용하십시오. 이는 일반적인 시스템 업그레이드를 수행합니다. 재부팅하기 전에 DKMS와 initramfs/UKI 생성이 성공했는지 확인하고, 서명 또는 종속성 오류를 우회하지 마십시오.
[!NOTE]
Omarchy에서는 이 pacman -Syu가 Omarchy 자체의 업데이트 가드에 의해 차단됩니다. 이 가드는 시스템 업그레이드가 omarchy update의 스냅샷(snapshot), 키링(keyring), 마이그레이션 단계(migration steps)를 우회하는 것을 막기 위해 존재합니다. 먼저 Omarchy를 통해 시스템 업그레이드를 실행한 다음, -u 옵션을 반복하지 않고 이 패키지들을 설치하십시오:
omarchy update
sudo pacman -S --needed linux-headers t1bridge t1bridge-dkms libfprint-t1bridge fprintd-t1bridge
>
> `omarchy update`는 이미 데이터베이스를 동기화하고 기존 패키지를 업그레이드했으므로, 그 직후의 단순한 `-S --needed` 설치는 부분적인 업그레이드가 아닙니다. 가드를 우회하기 위해 단독으로 `pacman -Sy` (업그레이드 없는 동기화)를 실행하지 마십시오. Arch에서는 이는 불균일하게 업그레이드된 시스템 전반에 걸쳐 종속성 버전이 일치하지 않는 위험을 초래할 수 있습니다. 정말로 하나의 결합된 명령어가 필요하다면, `sudo env OMARCHY_ALLOW_DIRECT_PACMAN=1 pacman -Syu --needed ...`가 해당 호출에 대해서만 가드를 우회합니다.
| 공식 패키지 | 용도 |
| :--- | :--- |
| `t1bridge` | 서비스, 가져오기(importer), Touch ID 브로커 및 기본 Touch Bar 기능 |
| ... | |
지문 인식 패키지는 배포판(distro)의 libfprint/fprintd를 시스템 전체에서 대체하며 반드시 쌍을 이루어 유지되어야 합니다. Touch Bar 또는 카메라 전용 사용의 경우, 해당 두 패키지를 생략하십시오.
### 3. 하드웨어 지원 활성화
여전히 일반 계정에서:
```bash
sudo systemd-sysusers /usr/lib/sysusers.d/t1bridge.conf
sudo systemd-tmpfiles --create /usr/lib/tmpfiles.d/t1bridge.conf
sudo usermod -aG t1bridge "$(id -un)"
...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
모듈을 로드하고 그룹 멤버십을 새로 고치려면 재부팅하십시오. 그런 다음, 로컬 그래픽 세션에서:
systemctl --user daemon-reload
systemctl --user enable --now t1-touchbar.service
sudo t1bridge status
각 상태 행을 확인하십시오. keybag: not-enrolled는 첫 등록 전에 정상입니다. 프라이빗 네트워크 및 xART 서비스는 장치와 함께 시작되므로, keybag 릴레이를 무조건 부팅 서비스로 활성화하거나 경쟁하는 T1 드라이버에 대해 hot-swap으로 설정하지 마십시오.
4. Touch ID 설정
[!중요]
등록 전에 프라이빗 xART 방화벽 전제 조건을 확인하십시오.
실행 중인 서비스가 T1이 해당 서비스에 연결할 수 있음을 증명하지는 않습니다. 기본 거부(default-deny) 방화벽은 검증된 피어로부터 발견된 T1 링크에서만 인바운드 IPv6 TCP 61500 포트를 허용해야 합니다. 방화벽 설정을 참조하십시오. 이 포트를 Wi-Fi/LAN에서 열거나 방화벽을 비활성화하지 마십시오.
이 Mac의 보존된 Apple EFI 파티션이 연결되어 있고 리더가 유휴 상태일 때:
sudo systemctl start t1bridge-import.service
sudo systemctl status t1bridge-import.service --no-pager
대신 복사된 백업을 사용하려면 백업 가져오기를 참조하십시오. 성공적으로 가져온 후, 작동하는 Polkit 에이전트가 있는 그래픽 데스크톱 세션 내 터미널에서 일반 계정으로 등록하고 확인하십시오:
fprintd-list "$(id -un)"
fprintd-enroll -f right-index-finger
fprintd-verify -f right-index-finger
등록 시간 초과는 xART가 작동하더라도 Polkit 권한 부족을 의미할 수 있습니다. 방화벽 규칙을 변경하기 전에 등록 문제 해결을 참조하십시오.
이미 등록된 지문이 있는 경우, 다시 등록하는 대신 기존의 것을 확인하십시오. 올바른 지문 레이블을 선택하고 등록 과정 동안 반복적으로 들어 올리거나 터치하십시오. enroll-completed를 요구한 다음 verify-match를 실행하십시오.
등록 과정이 자동으로 sudo, Polkit 또는 잠금 화면 로그인을 활성화하지 않습니다.
비밀번호 접근 및 루트 복구 셸을 유지하기 위해 배포판별로 안전한 PAM 설정을 따르십시오. 이 일치하는 지문 쌍을 대체하는 데스크톱 설정 마법사를 맹목적으로 실행하지 마십시오.
Omarchy의 Quickshell 잠금 화면의 경우, 등록된 지문을 확인한 후 Touch ID 잠금 해제 단계를 따르십시오. 데스크톱 제어 및 HUD의 경우, 선택적 통합의 자동 세션 시작을 완료하십시오.
데스크톱 제공업체, 제거 및 복구에 대해서는 수동 설정을 참조하고, 시작 및 인증 다이어그램은 Touch ID 작동 방식을 참조하십시오.
패키지 경계
T1Bridge는 T1 하드웨어 지원, 보호된 기기 데이터 가져오기 및 복구, 지문 백엔드, 기본 Touch Bar를 소유합니다. 핵심 코어는 데스크톱 통합이나 별도로 패키징된 libfprint/fprintd 통합에 의존하지 않습니다.
표준 fprintd 도구는 지문 관리를 제공합니다. 재사용 가능한 관리 TUI와 기본 데스크톱 제어 공급업체는 별도의 선택적 패키지로 계획되어 있습니다. 배포판 통합은 설치 프로그램 보존, 자동 설정, 메뉴, 테마 및 HUD 통합을 담당합니다. 사용자 지정 Touch Bar 렌더러는 번들된 프리셋이 아닌 사용자가 선택한 프로그램으로 유지됩니다.
기여 및 보안
개발 및 버그 보고는 기여하기를 참조하고, 비공개 취약점 보고는 보안 보고를 참조하십시오.
가져오기, Touch ID 또는 Touch Bar 오류의 경우, 선택적 공유 진단(opt-in shareable diagnostics)을 참조하십시오.
Andrew Boyd가 유지 관리합니다.