Commit Graph

4 Commits (77d962bcdf9eb3cf566eb81f1b3e3c3145f3dc76)

Author SHA1 Message Date
RyuJongJin f92f801e7a WIP X-plore 비교 5-1 ② 원격 썸네일 (관리자 지시 10/21): WebDAV · SFTP · SMB · FTP 의 그림 (30MB 아래) · 동영상을 X-plore 모양 목록에서 작은 그림으로 - 환경 설정 > 파일 탐색기 "원격 썸네일" (Wi-Fi 에서만 (처음 값) · 늘 · 받지 않음) · 캐시 상한 (처음 200MB, 넘으면 오래 쓰지 않은 것부터) · [캐시 지우기]. 동시에 2개, 화면에서 사라진 줄은 시작하지 않음, 같은 것은 한 번. FFmpeg 가 이 기기 안 스트리밍 다리 (127.0.0.1, Range) 에서 일부만 읽음 - WebDAV 도 Range 로 (모르는 서버는 받으며 건너뜀), 비밀번호는 명령 줄에 넣지 않음. "Wi-Fi 에서만" = Android 의 데이터 요금제 판단 (isActiveNetworkMetered) - 내 판단: VPN 은 그 아래 망을 따름 (집 Wi-Fi 위의 Tailscale 은 받음, 모바일 데이터 위는 받지 않음), PC 는 늘 받음 · 시험 (동시 수 · 보이는 줄 · 상한 · 망 · Range 206/200 · 실제 FFmpeg 썸네일) (검토 대기)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 02:51:45 +09:00
RyuJongJin b10158b46b WIP Android: 작업 알림 서비스 specialUse 설명을 실제 하는 일대로 · 망 종류를 ConnectivityManager 로 판단 - 권한 1개 추가 (관리자 판단) (검토 대기)
28 의 APK 점검 · 관리자 지시 (10/19):
1. KeepAliveService 의 PROPERTY_SPECIAL_USE_FGS_SUBTYPE 설명: "동기화 · 변환 · 다운로드" 만 적혀 있던 것을 실제로 하는 일 모두로
   (실시간 폴더 동기화 · MKV 변환 · AI 자막 · 다운로드 · 복사/이동 · 사용자의 SFTP/SMB/FTP/WebDAV 서버 전송 · 읽기 전용 Wi-Fi 공유, 알림에 무엇이 도는지 보임).
2. 망 종류 판단 (관리자 판단): 인터페이스 이름 (rmnet · ccmni …) 대신 Android 의 ConnectivityManager · NetworkCapabilities 로
   주소마다 wifi · ethernet · cellular · vpn 을 알아 (MainActivity "netKinds"), Wi-Fi 공유 주소 · SMB 찾기는 Wi-Fi · 유선만 쓴다.
   모바일 데이터 · VPN 은 뺀다. Tailscale (100.64/10) 은 VPN 이어도 설정 "Tailscale 에서도 열기" 대로 (통신사 CGNAT = cellular 는 뺀다).
   판단하지 못하면 (Android 가 아님 · 오류 · 종류를 모르는 주소 - 예: 휴대폰 핫스팟) 예전의 이름 방식.
   **권한 1개 추가 (관리자 판단): ACCESS_NETWORK_STATE** - 일반 권한 (사용자에게 묻지 않음), 망의 종류만 본다.
   릴리스 노트 초안 (위키 릴리스\다음판_노트_초안 · release\RELEASE_NOTES_draft_next.md) 에도 적음.
usesCleartextTraffic 은 그대로 (관리자: Android 는 IP 범위로 줄일 수 없고 http NAS 사용자가 있음).

시험: net_security_test (새 1: 종류가 이름보다 먼저 · 모르는 주소는 이름 · Tailscale 설정 · CGNAT) · lan_scan · smb_find · mdns_smb 13 통과, analyze 문제 없음,
APK 빌드 (Kotlin 컴파일) 성공. 실제 기기 (Wi-Fi + 모바일 데이터 동시 · VPN · Tailscale) 확인은 테스터 몫.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 21:51:53 +09:00
RyuJongJin 4ae6845513 WIP 새 네트워크 기능 보안 고침: 원격 이름 경로 벗어나기 · FTPS 주입 · Wi-Fi 공유는 Wi-Fi · 유선 주소에만 · 찾기 범위 · SMB 강제 DNS (검토 대기)
관리자 지시 2 (10/18, SFTP · SMB · FTP · Wi-Fi 공유 · 스트리밍 다리 · mDNS/훑기 검토) 의 고침:
1 (P0, 로컬 데이터) 악성 · 탈취된 서버가 목록 이름을 "..\..\x" 로 보내면 임시 사본이 앱 임시 폴더 밖에 쓰이고 맞추기 (--delete) 가 위 폴더를 지울 수 있었다
  → vList: 그 폴더 바로 아래의 평범한 이름만 (".." · "." · "\" · NUL · 다른 폴더 버림, 모든 원격 목록이 거침) · DavPath.parse 는 ".." 마디 거부 · vLocalCopy 는 임시 폴더 안인지 확인 (서버에 묻기 전에)
2 FTPS 명시: 234 뒤에 평문으로 끼워 넣은 줄이 있으면 끊는다 (STARTTLS 주입)
3 Wi-Fi 공유: 0.0.0.0 이 아니라 화면에 보이는 Wi-Fi · 유선 · Tailscale 주소에만 따로 연다. 모바일 데이터 (rmnet · ccmni 등 - 통신사 10.x · 100.x) · 가상 어댑터 (WSL · Hyper-V · VirtualBox · VMware · Docker) · 다른 VPN 은 뺀다.
  주소가 없으면 켜지 않고 알림. 캡처에서도 172.24.240.1 (WSL) · 192.168.56.1 (VirtualBox) 이 주소 목록에 보였음.
4 SMB 찾기: Wi-Fi · 유선 연결만 훑는다 (isLanInterfaceName - 3 과 같은 기준)
5 SMB: 서버 이름을 FTP · SFTP 와 같은 DNS 설정 (강제 DNS) 으로 풀어 주소로 넘긴다 (Android 다리의 시스템 DNS 로 새지 않게)
8 FTP: \r · \n · NUL 이 든 명령은 보내지 않는다 (이름으로 명령 끼워 넣기)
11 mDNS: 사설망 주소만 받는다
15 [마스터 초기화] 확인 글에 SFTP · SMB · FTP · SFTP 키도 (실제로 지우는 것과 같게)
같이: Wi-Fi 공유 캡처 시험 (integration_test/windows_wifi_shot_test.dart) - 시험용 주소는 WifiShare.debugAddresses 로 (1차 캡처에서 화면이 다시 그려지지 않아 이 PC 의 실제 망 주소가 찍혔음)

남김 (보고서에): 6 SMB 서명 필수 · 암호화 안 될 때 표시 (Kotlin · 실기기), 7 FTPS 사설 CA 체인의 지문 고정 (사설 CA 서버 시험 필요), 10 Wi-Fi 공유 동기 IO.
괜찮음: 9 원격 임시 사본은 정리 창 "작업 임시 파일" 이 지움, 비밀 값 기록 · 설정 · 백업 · 오류 · 알림 · 경로 복사 없음, 인증서 · 호스트 키 건너뛰기 없음, 다리는 127.0.0.1 · 비밀 주소.

시험: test/net_security_test.dart (새 7) + 전체 902 통과 (17 건너뜀), analyze 문제 없음, l10n 빠짐 0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 02:29:58 +09:00
RyuJongJin b6e47178e3 WIP X-plore j · P3 도우미 (미연결, 15 에게 넘김) (검토 대기)
관리자 지시 (10/18): j (SMB 자동 찾기) 와 P3 의 해시 · 16진 보기 · 폴더 속성은 15 가 탐색기 · SMB 추가 창에 연결한다.
cd 가 만든 도우미와 시험만 넣는다 (탐색기 · 설정에는 아직 연결 안 함).
- lib/core/lan_scan.dart: 사설 IPv4 /24 를 445 포트 연결 시도로 훑기 (보내는 것 없음, 64개 동시, 취소 · 진행), 역방향 이름.
  Tailscale 100.64/10 은 넓어 훑지 않음. test/lan_scan_test.dart (이 기기의 열린 · 닫힌 포트).
- lib/ui/file_tools.dart: MD5 · SHA-256 (조각 읽기 · 취소 · 붙여 넣은 값과 비교), 16진 보기 ([더 읽기]), 폴더 속성 (링크 · junction 은 따라가지 않음).
  test/file_tools_test.dart. 번역 en · ja · zh-Hans.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 00:28:55 +09:00