KOI · 私隱
私隱政策
本政策說明 KOI Keyboard 實際處理哪些資料。每一項都與 app 及後端的實作相符,並非套用範本填空。
生效日期:2026 年 9 月 20 日
一分鐘概要
- 你打的字不會離開裝置,除非你主動開啟 KOI Agent 並送出請求。
- KOI 沒有加入任何分析、崩潰回報或廣告追蹤工具。
- KOI 不會讀取你的廣告識別碼或裝置識別碼。
- 學習紀錄與設定儲存在裝置上;如果你開啟同步,則儲存於你自己的私人 iCloud。
- 我們不會出售你的資料,也不會將它用於廣告。
以下逐項說明。
我們不收集的資料
這一節比「我們收集什麼」更重要,所以放在前面。在 KOI 的程式碼裡,找不到以下任何一項:
- 分析或使用統計 SDK(例如 Firebase Analytics、Mixpanel、Amplitude)
- 崩潰回報 SDK(例如 Crashlytics、Sentry)
- 廣告或歸因 SDK(例如 AppsFlyer、Adjust、Facebook SDK)
- 廣告識別碼(IDFA)、供應商識別碼(IDFV)或 App 追蹤透明度(ATT)請求
- 按鍵記錄——KOI 不會逐鍵記下你按過什麼
- 瀏覽或讀取通訊錄、相片庫、位置或行事曆——KOI 無法瀏覽或讀取你的相片庫
你打的字
KOI 的輸入引擎完全在你的裝置上運作。拆碼、產生候選字、排序、學習——全部屬本機運算,這部分的程式碼沒有任何網絡功能。
你選過的字會讓 KOI 學習你的習慣,令下次輸入同一串碼時排得更前。這些學習紀錄存放在 app 的共用容器 group.com.rainsday.koikeyboard 之內,只有 KOI 讀取得到。
刪除 KOI 時,這些本機資料會一併移除。
「完整取用」權限
iOS 的規定是:鍵盤擴充功能如果沒有開啟「允許完整取用」,便沒有網絡能力,亦不能使用 KOI 的共用容器。KOI 只會將權限用於以下明確功能:
- 連接 KOI Agent(AI 功能)
- 由剪貼簿貼上文字到 AI 輸入框——只有在你按下「貼上」的一刻才會讀取剪貼簿
- 更新手寫辨識模型(基本模型已經內建,不更新一樣可用)
- 將生成圖片寫入 KOI app 的本機共用圖片庫,方便 host app 稍後顯示
不開啟這項權限,KOI 的五種輸入法、候選字、學習、手寫、符號與游標操作全部照常運作。你失去的只有上述功能。
開啟權限本身不會觸發任何資料傳送。傳送只會在你主動使用相關功能時發生。
KOI Agent 實際傳送什麼
當你開啟 KOI Agent 並送出請求,以下資料會傳送至 KOI 的伺服器(Google Cloud Functions,位於 asia-east1):
- 你輸入的指令文字
- 目前輸入框的 context。KOI 會按以下次序分配上限:已選文字、選取範圍或游標之前的文字,最後是之後的文字。
- 合併後的 context 上限為 2,000 個 Unicode scalar values 及 4,000 個 UTF-8 bytes。KOI Agent 畫面顯示的預覽,與該次操作實際送出的 context 完全相同。
- 同一次對話之中先前的來回內容
- 一個安裝識別碼(見下文「識別碼」一節)與一個 Firebase App Check 驗證權杖
只有你明確按下 Agent 操作,例如「送出」、快捷操作、「重試」、確認較高 Credits 請求或「自由創作」後,KOI 才會送出 context。單純開啟 Agent 或查看預覽不會傳送。
不會傳送的項目:截圖(KOI 沒有截圖功能)、你的剪貼簿內容(除非你自己按下「貼上」)、通訊錄,以及目前正在編輯的輸入框以外的內容。
KOI 無法瀏覽或讀取你的相片庫;只有你在 KOI app 明確按下「儲存到相片」時,app 才會用 add-only 權限加入該張圖片,亦無法查看已有相片。
伺服器的記錄只保留請求層面的資料:請求編號、路徑、狀態碼、耗時、由哪個模型處理、處理階段。指令內容與周邊文字不會寫入記錄。
第三方服務
以下是 KOI 實際接觸到的第三方。請留意「在裝置上」與「經網絡」的分別。
| 服務 | 用途 | 資料去向 |
|---|---|---|
| Google ML Kit Digital Ink | 手寫辨識 | 在裝置上運行,模型內建於 app,不會傳出筆跡 |
| Firebase App Check(經 Apple DeviceCheck) | 阻止伺服器被濫用 | 裝置驗證權杖 |
| Firebase Authentication | 選用的「以 Apple 帳戶登入」 | 見「帳戶與識別碼」 |
| Firebase Cloud Functions / Firestore | AI 請求處理、Credits 帳目 | 見「KOI Agent」與「購買」 |
| Cloudflare Workers | 為 Life Time Plus 的 AI 中文改錯請求提供驗證及轉送 | 原句、候選字與會員驗證資料;文字不寫入 KOI 的 Worker 記錄或快取 |
| TypeSafe Jev | 為 Life Time Plus 的 AI 中文改錯選擇合適候選字 | 原句及由本機字碼產生的候選字 |
| RevenueCat | 訂閱與購買狀態管理 | 見「購買」 |
| OpenRouter | 將 AI 請求轉送到模型供應商 | 你的指令與周邊文字 |
| Anthropic | 文字模型(Claude) | 你的指令與周邊文字 |
| OpenAI | 圖像生成模型 | 你的圖像指令 |
| Brave Search | 生成圖片時的參考資料搜尋 | 由伺服器產生的搜尋字詞 |
| Apple | App Store、以 Apple 帳戶登入、DeviceCheck、iCloud | 由 Apple 的私隱政策管轄 |
iCloud 同步
跨裝置同步預設關閉。開啟之前,KOI 會要求你確認目前登入的 iCloud 帳戶。
同步的資料寫入你自己的私人 iCloud 資料庫(容器 iCloud.com.rainsday.koikeyboard),並且使用 CloudKit 的加密欄位——金鑰繫於你的 iCloud 鑰匙圈,Apple 與 KOI 開發者都無法讀取內容。
同步屬手動觸發,不會在背景自動運行。有兩項設定永遠不會同步:同步開關本身,以及輸入診斷開關。
帳戶與識別碼
安裝識別碼:KOI 會產生一個隨機 UUID 來識別安裝。它不是裝置識別碼,不會跨 app 追蹤你,重新安裝 app 便會換成新的。伺服器收到之後,會先用一個保密的 pepper 做 SHA-256 雜湊,其後只以雜湊值作速率限制與購買綁定。
以 Apple 帳戶登入:屬選用功能,只有在你希望跨裝置保留購買紀錄時才需要。KOI 向 Apple 索取的範圍只有姓名,並無索取電郵地址。Apple 只會在首次授權時提供姓名;KOI 會將姓名交給 Firebase Authentication 建立或更新登入帳戶。KOI 自己的 Firestore 帳戶及購買記錄只存 Firebase UID、範圍雜湊值、購買資料與時間戳,不另存姓名或電郵。
AI 中文改錯:此實驗功能目前只供 Life Time Plus 使用。鍵盤會把當前完整句子及由本機字碼產生的有限候選字,經 Cloudflare Workers 傳送到 TypeSafe Jev 作語意選擇。Cloudflare 的會員驗證快取只保存雜湊後的會員決定,最多 60 秒,不包含輸入文字;KOI 的 Worker 不會把句子寫入記錄或持久儲存。TypeSafe Jev 對資料的處理由其私隱政策及服務條款管轄。
後端資料庫(Firestore)拒絕一切用戶端直接讀寫,所有寫入都經伺服器程式碼處理。
購買
所有付款由 Apple 處理。KOI 看不到你的信用卡、付款方式或帳單地址。
購買狀態經 RevenueCat 管理。RevenueCat 會將購買事件傳送到 KOI 的伺服器,內容包括:購買者識別碼、產品編號、交易編號、原始交易編號、購買時間、到期時間、週期類型、取消原因、商店與環境(正式或沙盒)。
這些資料用來判斷你是否擁有 Plus 權限並計算 Credits 餘額,不會用於其他用途。
保留期限
- AI 請求記錄:只有請求層面的中繼資料,不含內容。
- 生成圖片時的參考圖快取:伺服器記憶體內保留 10 分鐘,上限 24 項。
- 沙盒環境的操作紀錄:24 小時。
- Credits 帳目與購買紀錄:保留至帳戶關閉,因為需要處理退款、爭議與權限判斷。
- 本機學習紀錄與設定:保留在你的裝置上,刪除 app 即告消失。
兒童
KOI 並非針對 13 歲以下兒童設計,亦不會刻意收集他們的個人資料。如果你認為有兒童向我們提供了個人資料,請聯絡我們,我們會予以刪除。
你的選擇與權利
- 不使用 AI:不開啟 KOI Agent,就不會有任何文字傳出裝置。你亦可以在設定中關閉整個 AI 功能。
- 不開啟完整取用:輸入法的核心功能照常運作。
- 不同步:預設本來就不同步,開啟之後亦可隨時關閉。
- 刪除本機資料:刪除 app 即會清除裝置上的學習紀錄與設定。
- 刪除 iCloud 資料:在 iOS 設定 → 你的 Apple 帳戶 → iCloud 之中管理。
- 刪除伺服器資料:電郵至 privacy@rainsday.com。請留意,已完成的購買紀錄可能需要保留,以符合稅務與會計要求。
政策更新
如果 KOI 處理資料的方式有所改變,本頁會隨之更新,並且一併修改頁頂的生效日期。涉及重大改變時,我們會在 app 內告知。
聯絡
- 私隱查詢:privacy@rainsday.com
- 一般支援:support@rainsday.com