From 8f6fcdd9ed0eeb0b8d4673d87b6fc832a7395981 Mon Sep 17 00:00:00 2001 From: RyuJongJin <266630912+RyuJongJin@users.noreply.github.com> Date: Wed, 21 Oct 2026 12:50:23 +0900 Subject: [PATCH] =?UTF-8?q?WIP=20X-plore=20=EB=B9=84=EA=B5=90=205-2=20?= =?UTF-8?q?=EC=8B=9C=EC=8A=A4=ED=85=9C=20=ED=8F=B4=EB=8D=94=20=EB=B3=B4?= =?UTF-8?q?=EA=B8=B0=20(Shizuku=20=C2=B7=20=EC=9D=BD=EA=B8=B0=20=EC=A0=84?= =?UTF-8?q?=EC=9A=A9)=20(=EA=B2=80=ED=86=A0=20=EB=8C=80=EA=B8=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 관리자 결정 10/21: 1단계는 Shizuku 만 · 읽기 전용 · 처음 끔 · 경고 두 번 (켤 때 · 앱을 켠 뒤 처음 열 때). - Shizuku API 13.1.5 (MIT - 3a 지시의 "Apache-2.0" 이 아니라 실제 라이선스는 MIT, 고지에 MIT 원문) - shz://sys/<기기 경로>: 목록 · 정보 · 내용 읽기 (임시로 받아 읽고 지움) 만, 쓰기 · 지우기 · 옮기기 · 새 폴더는 막음 - 셸 명령은 고정된 셋 (목록 · stat · cat), 경로는 절대 경로만 · 따옴표 처리 - 탐색기 탭 [시스템 (읽기 전용)] → Android 폴더, 주황 띠, 꺼짐 · 허락 없음 안내 - 내 판단: Shizuku API 13 의 newProcess 는 숨겨져 있어 반사로 부름 (널리 쓰는 방법, 버전이 바뀌면 다시 확인) - 내 판단: 시스템 폴더 오류 띠에는 [서버 설정 고치기] 를 두지 않음 Co-Authored-By: Claude Opus 5.5 --- android/app/build.gradle.kts | 3 + android/app/src/main/AndroidManifest.xml | 7 + .../kotlin/com/jj/jj_mkvmaker/MainActivity.kt | 32 +++ .../com/jj/jj_mkvmaker/ShizukuBridge.kt | 81 ++++++ assets/l10n/en.json | 17 ++ assets/l10n/ja.json | 17 ++ assets/l10n/zh-Hans.json | 17 ++ assets/licenses/SHIZUKU_LICENSE.txt | 24 ++ .../licenses/THIRD_PARTY_NOTICES_ANDROID.txt | 2 + lib/app/settings.dart | 5 + lib/core/shizuku.dart | 144 +++++++++++ lib/core/vfs.dart | 31 ++- lib/ui/explorer_page.dart | 78 +++++- lib/ui/license_texts.dart | 2 + lib/ui/settings_page.dart | 46 ++++ test/shizuku_test.dart | 236 ++++++++++++++++++ 16 files changed, 730 insertions(+), 12 deletions(-) create mode 100644 android/app/src/main/kotlin/com/jj/jj_mkvmaker/ShizukuBridge.kt create mode 100644 assets/licenses/SHIZUKU_LICENSE.txt create mode 100644 lib/core/shizuku.dart create mode 100644 test/shizuku_test.dart diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index d22ec95..5a24cbc 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -110,4 +110,7 @@ dependencies { implementation("androidx.webkit:webkit:1.12.0") // 88: Android SMB (SMB2 · SMB3, SMB1 없음) - Apache-2.0. 고지: THIRD_PARTY_NOTICES_ANDROID · 라이선스 화면 implementation("com.hierynomus:smbj:0.15.0") + // X-plore 비교 5-2 시스템 폴더 보기 (Shizuku, 읽기 전용) - MIT (POM · 저장소 LICENSE). 고지: THIRD_PARTY_NOTICES_ANDROID · 라이선스 화면 + implementation("dev.rikka.shizuku:api:13.1.5") + implementation("dev.rikka.shizuku:provider:13.1.5") } diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index ada7aba..578b62e 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -152,6 +152,13 @@ + +