隱私權政策
生效日:2026 年 9 月 13 日|最後更新:2026 年 9 月 13 日
這份文件描述 Dietosaur 這個 app 實際上做了什麼,不是描述它打算做什麼。每一句都對得上程式碼;如果哪一句跟實際行為不符,那是缺陷,請告訴我們。
先講三件最重要的
- 照片在進入 app 的那一刻就被拿掉所有中繼資料,包括 GPS 座標。所以「你在哪裡吃的」這件事從來沒有離開過你的手機。
- 沒有任何分析、追蹤、廣告或當機回報 SDK。數量是零,不是「很少」。
- 你可以在 app 裡刪掉整個帳號,而且是真的刪:雲端的照片先被刪光,成功之後才刪資料列,沒有保留期、沒有「軟刪除」、沒有留一份做分析。
誰在蒐集
Dietosaur 由個人開發與營運,是這些資料的蒐集者與保有者。聯絡方式:support@coyotech.app。
我們蒐集什麼,為什麼
帳號
你用 Google 登入。我們從 Google 拿到的是一組專屬於這個 app 的識別碼,以及你的電子郵件地址。我們從來沒有、也不可能有你的 Google 密碼。帳號存在的唯一理由,是讓你的飲食紀錄能跨裝置同步、以及在你換手機之後回得來。
你的飲食紀錄
菜名、份量倍數、每份的熱量與蛋白質/碳水/脂肪、你吃的時間、以及你對估算做的修正。這些就是這個 app 的內容本身。
餐點照片
你拍的或從相簿選的原圖。保留原圖而不是縮圖,是為了日後能用更好的模型重新估算同一張照片。
照片的中繼資料在進入 app 的當下就被剝掉——EXIF 與 XMP 的每一個區段都被丟棄,包含 GPS 座標、相機型號、拍攝時間。唯一留下來的是「方向」,不然側拍的照片會顯示成躺著的。剝除發生在照片送去估算之前、也在存進雲端之前,所以那兩個地方從來沒有收過你的位置。
這件事在 2026 年 9 月 13 日之前並不成立:在那之前,從相簿選的照片會帶著 EXIF 一起送出。這個缺陷已經修好,而我們把它寫在這裡而不是安靜地改掉,因為一份不敢講自己修過什麼的政策沒有可信度。修正之前這個 app 從未公開發行,使用者只有開發者本人與一個測試帳號。
使用量
每一次估算的發生時間、用掉的模型 token 數、以及呼叫了哪個模型版本。這是我們付錢的憑據,也是判斷服務有沒有被濫用的唯一依據。它同時也是「你在什麼時候吃東西」的紀錄,所以刪帳號的時候它跟其他東西一起刪,不會被留下來當統計。
我們沒有蒐集什麼
- 位置。app 沒有要求位置權限,照片的 GPS 也在進入時就被移除。
- 體重、身高、年齡、性別,或任何身體測量值。
- 通訊錄、簡訊、通話紀錄、其他 app 的資料。
- 廣告識別碼,或任何形式的跨 app 追蹤。
- 付款資訊。這個服務目前不收費,我們沒有你的卡號,也沒有處理付款的管道。
- 分析、行為事件、當機回報。整個程式碼裡沒有任何一個這類套件。
資料會送到哪裡
Google Gemini(估算)
要把一張照片變成熱量數字,照片本身與一段固定的提示文字會送到 Google 的 Gemini API。如果你修正過菜名,那些字也會一起送去。
送出去的內容裡沒有任何指向你的東西:沒有帳號識別碼、沒有登入 token、沒有裝置識別碼、沒有 IP 以外的任何識別資訊。Gemini 收到的是一張照片跟一段提示,不知道是誰吃的。
而且只有估算會送。恐龍在日記頁說的那句話,在 2026 年 9 月 13 日之前也是模型生成的,所以那一餐的名稱、熱量、你當天的總熱量與餐數都會送去 Google。現在那句話是在你手機上組出來的,不連網也會說話——為了讓恐龍講話,已經沒有任何東西離開你的手機。
Google 收到之後怎麼處理,適用 Google 的 Gemini API 附加條款。我們用的是付費方案,依該條款,Google 不會用你的提示或回應來改進它的產品,也沒有例行的人工審閱;Google 只會為了偵測濫用、維護服務安全以及法規要求的目的短期留存這些內容,而那份暫存可能位於任何國家。
這一段跟方案綁在一起,所以值得把反面也講清楚:免費方案的 Gemini API,Google 會用提示與回應來改進產品,而且人工審閱者可能讀到(Google 說會先切斷與帳號、金鑰、專案的關聯)。我們不打算換到免費方案;如果哪天換了,這一頁會先改。
Google Cloud Storage(照片)
照片的位元組不經過我們的伺服器:app 跟 Google 的儲存空間直接傳,用的是我們簽發、只對單一檔案有效、且只活 5 到 15 分鐘的臨時網址。那個儲存空間在平台層級被設定成永遠不可能公開——就算有人設錯權限,Google 也會拒絕。
我們自己的伺服器
飲食紀錄與帳號資料存在我們自己的資料庫。除了上面兩項,沒有其他第三方會收到任何東西。
你的資料存在美國
伺服器與照片儲存空間都位於 Google Cloud 的 us-central1(美國愛荷華州)。也就是說,你的飲食紀錄與照片會傳輸到台灣以外並儲存在美國。
這是成本上的取捨而不是偏好:這個服務目前跑在 Google 的免費額度機器上,而那個規格只存在於美國的幾個區域。使用這個 app 即表示你同意這項國際傳輸。如果這對你不可接受,這個 app 不適合你,我們寧可你現在就知道。
存多久
沒有任何自動刪除,也沒有任何自動保留。你的資料存在,直到你把它刪掉。沒有排程工作、沒有生命週期規則、沒有「保留 90 天」這種東西。
刪掉一餐
那一餐的照片會先從雲端刪除,接著它的紀錄列被刪掉。照片沒有復原期——「軟刪除」已經關閉,版本控制也沒有開,所以刪掉就是刪掉。
有一件事會留下來:一筆刪除紀錄,內容是「某一餐在某個時間被刪除了」——沒有菜名、沒有數字、沒有照片。它存在的理由是你的其他裝置要靠它才知道那一餐已經不在了,否則下次同步又會把它長回來。這筆紀錄會在你刪除整個帳號時一起消失。
另外,如果同一道菜你在別餐也吃過,那道菜的名稱與營養數字會留著,因為還有一餐正在用它。
刪掉整個帳號
在 app 的「帳號」頁面就可以做。順序是刻意的:先把你在雲端的照片全部刪光,全部成功之後才刪帳號。如果有任何一張刪不掉,整個動作就停下來、什麼都不刪,並且告訴你資料都還在。因為一旦帳號沒了,那些照片就再也沒有任何東西指得到它們。
帳號刪掉之後,伺服器上跟你有關的每一張表都會跟著清空:登入工作階段、使用量紀錄、飲食紀錄、菜色、估算、刪除紀錄。同一時間,這支手機上的本機日記、照片檔案,以及這個 app 寫進健康連結(Health Connect)的營養紀錄也會被刪掉。
這個動作無法復原,而且我們也沒有能力幫你復原。
登入狀態
登入憑證最多 30 天,其中短期憑證只有 15 分鐘。按下登出的當下,伺服器端的憑證就立刻失效,不是等它自己過期。
我們怎麼保護這些資料
- 所有連線都是 HTTPS,憑證自動更新。
- 登入憑證在伺服器上只存雜湊值(SHA-256),不存原文——就算整個資料庫外流,也無法拿去重放登入。
- 所有密鑰存在 Google Secret Manager,不在程式碼裡、不在映像檔裡、不在機器的中繼資料裡。
- 照片儲存空間關閉物件層級 ACL、強制禁止公開存取,每一次讀取都是一個只對單一檔案有效、幾分鐘就失效的簽章網址。
- 伺服器沒有任何私鑰檔案:簽發網址是透過 Google 的 IAM 服務以機器自己的身分簽的。
- 機器的 SSH 只能透過 Google 的 IAP 通道進入,對網際網路完全關閉。
- 正式版 app 不會把任何東西寫進手機的系統日誌。
- 手機上的登入憑證放在 Android Keystore 加密的儲存區,且排除在雲端備份與換機轉移之外。
我們做不到的事,一起寫在這裡
這個服務跑在一台機器上,資料庫沒有備份,也沒有任何東西在監看它是否活著。設計上你的手機才是資料的正本、伺服器只是副本,所以這不會讓你失去日記——但如果那台機器壞掉,伺服器上的那一份可能就沒了,而你手機上的那一份還在。
我們寧可把這件事寫出來,也不想寫「我們採用業界標準的安全措施」這種沒有內容的句子。
你的權利
依中華民國《個人資料保護法》第 3 條,你對自己的個人資料可以行使下列權利,且不得預先拋棄:
- 查詢、閱覽、複製——目前 app 內沒有匯出功能,來信我們會提供。
- 補充或更正——每一餐的估算都可以直接在 app 裡修改。
- 請求停止蒐集、處理或利用。
- 請求刪除——app 的「帳號」頁面隨時可以自己執行;沒有 app 也可以,見刪除帳號。
兒童
這個服務不是設計給 13 歲以下兒童使用的,我們也沒有刻意蒐集他們的資料。如果你是家長並發現孩子建立了帳號,來信我們會刪除。
這個網站本身
你正在看的這幾頁是純靜態網頁:沒有 cookie、沒有分析、沒有第三方元件,也不會在你的瀏覽器裡留下任何東西。
政策變更
修改時會更新頁面上的日期。如果變更會影響我們怎麼處理你的資料,我們會在 app 裡告訴你,而不是只改網頁。
Dietosaur