한 줄 요약

AEB는 제작자 서버를 운영하지 않습니다. 입력한 데이터는 사용자의 폰/TV에만 저장되며, 사용자가 직접 선택한 외부 서비스(Anthropic, OpenAI, Google, SmartThings)와만 통신합니다.

단말에 저장되는 정보

🔐 LLM API 키 (Claude / OpenAI / Gemini)

Android Keystore의 하드웨어-백드 키로 AES-256-GCM 암호화되어 EncryptedFile에 저장. 다른 앱이 접근할 수 없습니다.

🪪 SmartThings OAuth 토큰 (Access / Refresh)

EncryptedSharedPreferences에 저장. 키스토어로 보호되며 평문이 디스크에 남지 않습니다.

🎫 SmartThings PAT (선택 사항)

기본은 OAuth 등록 직후 메모리에서 폐기. 사용자가 "PAT 저장" 옵션을 켠 경우에만 동일하게 EncryptedSharedPreferences에 보관됩니다.

📜 로그 (Room DB)

서버 동작 로그(타임스탬프, 레벨, 요청 IP, 메시지)를 7일 동안 보관, 매일 자동 정리. 로그 화면에서 직접 삭제할 수도 있습니다.

⚙️ 앱 설정

포트 번호, 자동 시작 여부 등 일반 설정은 SharedPreferences에 평문으로 저장(민감 정보 아님).

외부로 나가는 통신

AEB가 직접 통신하는 외부 서비스는 다음뿐이며, 모두 사용자의 명시적 입력에 의해 트리거됩니다. 제작자 서버는 통신 경로에 없습니다.

🤖 사용자가 선택한 LLM 공급자

Anthropic API / OpenAI API / Google Generative AI API. 프롬프트와 응답이 해당 공급자 서버로 전송됩니다(사용자가 입력한 키로 직접 호출).

🏠 SmartThings API

OAuth 토큰으로 SmartThings의 디바이스/룰/위치 정보를 읽거나 명령을 보냅니다. 트래픽은 사용자의 SmartThings 계정 권한 내에서만 동작합니다.

↗️ Edge Driver가 요청한 외부 URL (포워딩)

Edge Driver가 /api/forward?url=…로 보낸 요청을 그대로 외부 URL로 전달합니다. AEB는 본문을 들여다보지 않습니다.

📡 mDNS (로컬 네트워크 한정)

같은 WiFi의 SmartThings 허브가 AEB를 발견할 수 있도록 _edgebridge._tcp.local을 브로드캐스트합니다. 인터넷으로 나가지 않습니다.

제작자가 수집·보관하는 정보

없습니다. AEB에는 분석 SDK, 크래시 리포팅, 텔레메트리, 광고 SDK가 포함되어 있지 않습니다. 제작자는 사용자가 누구인지·무엇을 했는지 알 수 있는 어떤 데이터도 수신하지 않습니다.

데이터 삭제

권한 사용 사유

인터넷 / WiFi 상태

외부 API 포워딩과 로컬 네트워크 상태 확인용.

포그라운드 서비스

24시간 무중단 동작을 위한 알림 표시.

부팅 시 시작

폰 재부팅 후 AEB가 자동으로 다시 켜지도록.

배터리 최적화 제외

배터리 절약 모드에서 서비스가 죽지 않도록(사용자 승인 필요).

알림

서버 상태/경고를 표시. 외부로 보내지 않습니다.

문의

문의: woobooung@gmail.com