Skip to content

TinyAgent Alpha 7 — Fix Fedora initial setup permissions

Pre-release
Pre-release

Choose a tag to compare

@GPLaider GPLaider released this 16 Sep 05:05
· 13 commits to main since this release

TinyAgent 0.0.1 Alpha 7

alpha.6에서 환경 준비가 AccessDeniedException으로 실패하는 문제를 수정한 Android
ARM64 프리릴리스입니다. 앱을 삭제하지 말고 이 APK로 업데이트한 뒤 환경 준비 다시 시도를
누르세요. 기존 실패 파일을 검사하고 이어서 복구합니다.

설치 파일

  • 파일: TinyAgent-0.0.1-alpha.7-android-arm64.apk
  • 패키지: io.github.gplaider.tinyagent
  • 버전: 0.0.1-alpha.7, versionCode 11
  • 지원: Android 11 이상, minSdk 30, targetSdk 36, arm64-v8a
  • 크기: 145275239 bytes
  • SHA-256: 7f60c131837a98e93f45da524edfad83dbc2d1a59e7a22f8dc343f66f03343c2
  • 서명 인증서 SHA-256: c34483dc3b7228cede2e128ccd66cab193e78804686a58ea25ba318568afc9d2

원인과 수정

Fedora의 usr/bin은 읽기 전용 권한 0555입니다. alpha.6의 새 최초 설치 복구 경로가
Java에서 이 폴더로 파일을 옮기면서 실패했습니다. 앞선 임시 root 검증이 실제 Fedora의
권한을 보존하지 않아 놓친 결함입니다.

이제 검증한 목적지에 파일을 게시할 때만 소유자 쓰기 비트를 잠시 추가하고 성공·실패 후
원래 권한으로 복원합니다. 심볼릭 링크·알 수 없는 파일·이미 시작한 root 거부와 해시 검사,
atomic move, 파일·directory fsync는 유지합니다. 앱 데이터 초기화나 기기 권한 변경은 필요 없습니다.

alpha.6의 모델 관리 뒤로가기 수정과 기존 파일 첨부·작업 폴더 기능은 유지합니다.
GUI·Fedora·dnfast 바이너리·native 자산은 alpha.6과 동일합니다.

확인한 범위

  • Spacewar(Nothing Phone 1 A063)·Pacman(Nothing Phone 2a A142)의 별도 debug 앱에서 실제
    Fedora 이미지로 동일한 실패를 재현했습니다. 실패 root를 삭제하지 않고 수정 APK로 업데이트하여
    33개 파일 해시 일치와 usr/bin=0555 권한 복원을 확인했습니다.
  • 두 기기의 별도 빈 Fedora root에서 실제 LocalLinuxRuntime.prepare도 끝까지 통과했습니다.
    dnfast 목록 갱신·개발 도구 RPM 설치·Git과 OpenCode 실행 확인·harness 배치를 포함합니다.
    운영 root의 초기화나 production 앱의 clean first-install을 수행한 검사는 아닙니다.
  • 최종 생산 APK를 두 기기에 adb install -r로 업데이트하여 UID·최초 설치 시각 유지와
    설치 APK 해시를 확인했습니다. 모델 관리 뒤로가기 → 같은 세션 복귀를 각각 3회 확인했고,
    Pacman의 가장자리 제스처와 공급자 연결 화면 뒤로가기도 통과했습니다.
  • 임시 무효 테스트 연결을 제거하고 무료 모델 선택·기존 Big Pickle·기존 세션을 복원했습니다.
    설정의 공급자·모델 상세 뒤로가기도 확인했고, 현재 앱 PID의 제한된 최근 로그에서
    fatal/JavaScript 오류 일치는 0개였습니다. 실제 API 키나 모델 요청은 사용하지 않았습니다.
  • Windows 36개·Linux 비특권 UID 65534의 42개 초기 설치 검사 통과. 15개 sync 중단 지점,
    심볼릭 링크 3개, 읽기 전용 디렉터리·실제 rename 실패·권한 복원·재시도를 포함합니다.
  • clean 빌드·release lint 통과: 오류 0, 경고 59.
  • 생산 v2 서명·16 KiB ZIP 정렬·GUI 952개·runtime 2개 및 고정 native/license 검사 통과.

원인과 앞선 검증 누락은 docs/DNFAST-PERMISSIONS-20260916.md, 기기별 결과는
evidence/dnfast-permissions-20260916.json에 기록합니다.

남은 범위

APK 교체 후 미완료 RPM 거래를 이전의 정확한 실행환경으로 복구하는 동선, ARM 거래 중단·복구의
전체 조합, 동일 조건의 dnfast/dnf5 성능 비교는 완료하지 않았습니다. 전체 7개 journey × 3회
정식 release gate 통과를 주장하지 않습니다. 강제 종료가 일시적 chmod와 복원 사이에 발생하면
소유자 쓰기 비트가 남을 수 있으며, 별도 영속 권한 journal은 이번 수정에 포함하지 않습니다.

소스 ZIP의 SOURCE-SNAPSHOT.json은 Git export 파일 바이트와 APK 해시를 연결합니다.
작업 트리의 clean task로 빌드해 고정한 APK이며 clean checkout 재현 빌드 검증은 아닙니다.
고정 후에는 debug 전용 검증 probe·호스트 테스트·문서·증거만 수정했으며 생산 소스는 그대로입니다.