Chính sách quyền riêng tư
Quản lý chi tiêu - Money Spending là sổ thu chi cá nhân: khoản chi, khoản thu, chuyển tiền giữa các ví của chính bạn, ngân sách, mục tiêu tiết kiệm, kế hoạch, khoản định kỳ và ghi chú, trong một hoặc nhiều sổ. Mọi thứ nằm trên máy bạn. Ứng dụng không có máy chủ của chúng tôi, không có tài khoản để đăng nhập và không gửi dữ liệu của bạn đi đâu cả.
1. Chúng tôi thu thập gì
Không gì cả. Không tài khoản, không máy chủ nhận dữ liệu, không mã thiết bị, không mã quảng cáo, không công cụ phân tích từ xa, không quảng cáo.
Bản phát hành trên Google Play không khai quyền truy cập Internet. Thư viện thanh toán của Google có khai quyền này, và tệp cấu hình của ứng dụng gỡ nó ra trở lại. Nghĩa là rất cụ thể: ứng dụng không thể tự gửi bất cứ thứ gì đi bất cứ đâu – kể cả nếu một ngày nào đó có lỗi lập trình muốn làm thế, hệ điều hành cũng chặn.
Không dữ liệu nào rời khỏi máy, trừ khi chính bạn đưa nó đi: một tệp sao lưu bạn lưu ra hay chia sẻ (mục 6), bản sao lưu tự động vào thư mục bạn tự chọn (mục 6), hoặc dữ liệu thô bạn chủ động chia sẻ từ màn Cứu sổ (mục 6). Đọc chữ trên ảnh hoá đơn, mã hoá, khoá app và widget đều chạy ngay trên máy.
2. Không có kết nối ngân hàng nào
Đây là điều dễ hiểu sai nhất về một ứng dụng tiền, nên nói thẳng: Quản lý chi tiêu - Money Spending không kết nối với ngân hàng, ví điện tử hay thẻ của bạn theo bất cứ cách nào. Không đọc tin nhắn SMS, không đọc thông báo của app ngân hàng, không nhập khẩu sao kê tự động, không hỏi mật khẩu hay OTP của bạn.
Những cái bạn thấy trong app – ví, tài khoản, thẻ, số dư, hạn mức, khoản nợ – là những con số bạn tự gõ vào. Số dư là số bạn khai lúc đầu cộng với các giao dịch bạn nhập. Nếu nó khác số dư thật ở ngân hàng, đó là vì bạn chưa nhập đủ, không phải vì app lấy sai.
3. Dữ liệu nằm trên máy bạn
| Dữ liệu | Mục đích | Lưu ở đâu |
|---|---|---|
| Sổ: tên, biểu tượng, màu của từng sổ bạn tạo (bản miễn phí một sổ, Premium tới năm sổ) | Tách chi tiêu gia đình, quầy hàng, chuyến đi… | Cơ sở dữ liệu SQLite trong vùng dữ liệu riêng của ứng dụng trên máy bạn |
| Giao dịch: loại (chi / thu / chuyển), số tiền, ví, danh mục, thời điểm, ghi chú, nhãn, và nếu đến từ hoá đơn thì tên cửa hàng và các món bạn đã xác nhận | Ghi sổ, tính số dư và báo cáo | Cơ sở dữ liệu trên máy bạn |
| Ví và tài khoản: tên, loại, tiền tệ, số dư đầu, hạn mức thẻ và ngày sao kê / ngày đến hạn nếu bạn khai | Phân nhóm sổ và tính số dư từng ví | Trên máy bạn |
| Danh mục, nhãn, ngân sách, mục tiêu tiết kiệm, kế hoạch, khoản định kỳ, bản nháp chờ xác nhận, mẫu nhập nhanh, ghi chú, bộ lọc đã lưu | Tổ chức sổ theo cách của bạn | Trên máy bạn |
| Ảnh hoá đơn bạn giữ cùng một khoản, ảnh bạn thêm vào ghi chú (mục 5) | Để bạn mở lại xem | Thư mục ảnh riêng của ứng dụng trên máy bạn – không nằm trong thư viện ảnh |
| Lịch sử sao lưu: các bản chụp sổ do app tự giữ (mục 6) | Đường quay lại sau một lần khôi phục hay nhập nhầm | Thư mục riêng của ứng dụng trên máy bạn |
| Số liệu cho widget: tên sổ, đã chi hôm nay, còn lại của ngân sách tháng (mục 8) | Để widget vẽ được mà không phải mở sổ | Vùng cài đặt riêng của ứng dụng trên máy bạn |
| Khoá mã hoá sổ, khi bạn bật mã hoá (mục 7) | Mở các dòng đã mã hoá | Kho khoá Android (Android Keystore) và một tệp khoá đã được bọc, trên máy bạn |
| Cài đặt: tiền tệ, ngày bắt đầu kỳ, ngôn ngữ, bảng màu, khoá app và thời gian hỏi lại, con mắt giấu số tiền, chế độ giấu số tiền trong thông báo, thư mục sao lưu tự động bạn đã chọn, lịch nhắc đã đặt | Giữ lựa chọn của bạn giữa các lần mở | Trên máy bạn |
| Quyền lợi bản trả phí | Mở khoá tính năng đã mua | Hỏi Google Play ngay trên máy; bản xác nhận gần nhất được giữ trên máy để dùng khi không hỏi được Play |
Sổ mẫu (hai tháng chi tiêu của một gia đình, chỉ để xem) được dựng trong bộ nhớ mỗi lần bạn mở nó, không ghi xuống máy, không trộn vào sổ của bạn và không đi vào tệp sao lưu nào.
Gỡ ứng dụng là xoá toàn bộ phần dữ liệu trên. Thứ còn lại chỉ là những tệp chính bạn đã lưu ra ngoài: tệp sao lưu bạn xuất, và các bản sao lưu tự động trong thư mục bạn chọn (mục 6). Chúng tôi không giữ bản sao nào, vì chưa bao giờ nhận được.
4. Quyền ứng dụng xin và lý do
| Quyền | Dùng để làm gì |
|---|---|
| Thông báo (POST_NOTIFICATIONS) | Hiện lời nhắc hoá đơn định kỳ và các cảnh báo bạn tự đặt (vượt ngân sách, số dư thấp). Từ chối quyền này thì app vẫn ghi sổ bình thường, chỉ là không nhắc được. |
| Chạy lại sau khi khởi động máy (RECEIVE_BOOT_COMPLETED) | Đặt lại các lời nhắc sau khi bạn tắt rồi bật máy, hoặc sau khi đổi giờ / múi giờ. |
| Rung (VIBRATE) | Rung khi thông báo hiện ra. |
| Sinh trắc học (USE_BIOMETRIC) | Chỉ dùng khi bạn bật khoá app (mục 7): để gọi hộp xác thực của Android. Đây là quyền thường, không hiện hộp hỏi, không đọc được dữ liệu vân tay hay khuôn mặt. |
Đó là toàn bộ danh sách – bốn quyền, không có quyền thứ năm.
Ứng dụng không xin quyền đọc tin nhắn SMS, danh bạ, vị trí, máy ảnh, micro, ảnh, bộ nhớ hay lịch hệ thống. Chụp hoá đơn dùng ứng dụng máy ảnh của máy, chọn ảnh dùng trình chọn ảnh của Android, chọn thư mục sao lưu dùng trình chọn thư mục của Android – mỗi lần app chỉ nhận đúng tấm ảnh hoặc đúng thư mục bạn bấm chọn. Và như mục 1 đã nói, bản phát hành còn gỡ cả quyền Internet.
Ứng dụng cũng cố ý không xin quyền báo thức chính xác (SCHEDULE_EXACT_ALARM / USE_EXACT_ALARM). Google chỉ cấp quyền đó cho app mà việc chính là báo thức hoặc lịch, và một sổ chi tiêu không thuộc nhóm ấy. Thay vào đó app xin Android giao lời nhắc trong một khoảng 15 phút bắt đầu từ giờ bạn đặt: lời nhắc 08:00 thường đến trong vòng 15 phút sau đó, không bao giờ sớm hơn, và có thể muộn hơn khi máy đang ngủ sâu hoặc app bị hạn chế pin. Nếu bạn cần đúng phút, hãy dùng kèm đồng hồ báo thức của máy.
5. Ảnh hoá đơn và ảnh trong ghi chú
Ứng dụng có thể đọc một tấm ảnh hoá đơn để tự điền tên cửa hàng, ngày, giờ, tổng tiền và các dòng món, thay vì bạn gõ tay. Bạn cũng có thể giữ ảnh cùng một khoản chi hoặc thêm ảnh vào ghi chú. Đây là phần chạm tới ảnh của bạn, nên nói rõ từng bước:
- Bạn chọn tấm ảnh, không phải app. Khi chọn ảnh có sẵn, app mở trình chọn ảnh của hệ điều hành – một màn hình do Android dựng, không phải của chúng tôi. App chỉ nhận đúng tấm bạn bấm chọn và không thấy phần còn lại trong thư viện ảnh.
- Chụp mới thì dùng ứng dụng máy ảnh của máy. App gọi ứng dụng máy ảnh sẵn có và nhận lại tấm ảnh bạn vừa chụp. App không xin quyền máy ảnh và không tự mở ống kính. Ảnh chụp theo cách này không được lưu vào thư viện ảnh của bạn.
- Việc đọc chữ diễn ra trên máy bạn. Mô hình nhận dạng chữ (ML Kit, bản đóng sẵn trong ứng dụng) nằm ngay trong file cài đặt, không tải về và không gọi dịch vụ nào. Tấm ảnh và chữ đọc được không rời khỏi máy.
- Cái được ghi vào sổ. Chỉ những gì bạn xác nhận ở màn soát lại (số tiền, ngày giờ, cửa hàng, danh mục, các món). Nếu bạn tách một hoá đơn thành nhiều nhóm chi, mỗi nhóm thành một khoản, cùng trỏ tới một hoá đơn.
- Khi bạn chọn giữ ảnh (với một khoản chi hoặc trong ghi chú), app làm một bản riêng: xoay đúng chiều, thu nhỏ để cạnh dài nhất không quá 1600 điểm ảnh, lưu dạng JPEG trong thư mục ảnh riêng của ứng dụng, tên tệp là mã băm của chính nội dung ảnh. Mỗi khoản hoặc ghi chú giữ tối đa 6 ảnh. Ảnh gốc trong thư viện của bạn vẫn nằm nguyên chỗ cũ và là của bạn. Không chọn giữ ảnh thì app không lưu tấm ảnh nào vào sổ.
- Khi nào ảnh bị xoá. Bỏ một ảnh khỏi khoản hay ghi chú, hoặc xoá chính khoản hay ghi chú đó, thì tệp ảnh được xoá khỏi máy khoảng một phút sau – khoảng chờ để nút Hoàn tác còn đưa được ảnh trở lại. Có một ngoại lệ: nếu một bản chụp trong Lịch sử sao lưu (mục 6) vẫn còn nhắc tới ảnh đó, ảnh được giữ lại cho tới khi bản chụp ấy bị đẩy ra khỏi lịch sử hoặc bị bạn xoá, để khôi phục bản chụp vẫn có đủ ảnh. Xoá toàn bộ dữ liệu xoá hết ảnh và lịch sử ngay một lượt; gỡ app cũng xoá thư mục ảnh.
- Mã hoá sổ trên máy (mục 7) không mã hoá thêm ảnh. Ảnh nằm trong vùng riêng của app, app khác không đọc được, nhưng không có lớp mã hoá thứ hai như các dòng của sổ.
- Không bắt buộc. Bạn có thể dùng app trọn đời mà không bao giờ mở tính năng này; gõ tay vẫn là cách nhập chính.
6. Sao lưu, lịch sử sao lưu và khôi phục
Mọi bản sao lưu đều do bạn tạo hoặc bật, và nằm ở nơi bạn chọn. Chúng tôi không bao giờ nhận bản nào.
- Tệp sao lưu .zip. Gồm sổ (một sổ hoặc mọi sổ, tuỳ bạn chọn) và cả ảnh của các khoản và ghi chú. Bạn lưu nó qua hộp lưu tệp của Android (Download, thẻ nhớ, hay một dịch vụ bạn đã cài) hoặc gửi qua khung chia sẻ. Tệp không được mã hoá, có đầy đủ số tiền và ảnh: ai có tệp là đọc được. Chỉ chọn nơi bạn tin; nếu lưu lên một dịch vụ đám mây, tệp từ đó chịu chính sách của dịch vụ ấy.
- Tệp JSON và CSV. Bạn vẫn xuất được sổ ra văn bản JSON (để khôi phục) hoặc CSV (để mở bằng bảng tính). Hai dạng này không có ảnh và cũng không mã hoá.
- Sao lưu có mật khẩu (.hbenc). Cùng nội dung tệp .zip, nhưng được mã hoá AES-256-GCM bằng một khoá sinh từ mật khẩu bạn đặt (PBKDF2-HMAC-SHA256, 310.000 vòng), làm bằng thư viện mã hoá của chính Android trên máy. App không lưu mật khẩu ở bất cứ đâu: thiếu mật khẩu thì không ai mở được tệp, kể cả chúng tôi, và quên mật khẩu là mất bản sao lưu đó.
- Lịch sử sao lưu. App tự giữ các bản chụp sổ trong thư mục riêng của nó: mỗi ngày một bản khi bạn rời app, và trước mỗi lần nhập, thay thế, khôi phục, xoá sổ hay bật / tắt mã hoá. Bản miễn phí giữ 3 bản gần nhất, Premium giữ 30. Bản chụp không chép ảnh, chỉ ghi tên các ảnh mà sổ lúc đó dùng (xem mục 5). Khi mã hoá sổ đang bật, các bản chụp cũng được mã hoá bằng cùng khoá. Bản chụp không rời máy và mất khi gỡ app.
- Sao lưu tự động vào thư mục bạn chọn. Bạn chọn một thư mục một lần qua trình chọn thư mục của Android; app chỉ được ghi vào đúng thư mục đó. Mỗi ngày bạn dùng app, lúc bạn rời app, nó ghi một tệp
MoneySpending-auto-NGÀY-MÃ.zip– cùng dạng .zip ở trên, có ảnh và không mã hoá – và giữ 10 bản gần nhất của máy này. Nó chỉ xoá các bản sao lưu tự động cũ của chính nó (đúng mẫu tên ấy, hoặc mẫu tên các bản trước của app dùng), không bao giờ đụng tới tệp khác trong thư mục, kể cả bản do máy khác ghi. "MÃ" là sáu ký tự ngẫu nhiên app tạo một lần trên máy, để hai máy dùng chung một thư mục không ghi đè lên nhau; nó không gắn với bạn hay với phần cứng và không gửi cho ai. Nếu thư mục đó thuộc một app lưu trữ đám mây (ví dụ Google Drive, chỉ hiện trong trình chọn khi máy đã cài app ấy), chính app đó tải tệp lên theo chính sách của nó; ứng dụng này không mở kết nối nào. Các tệp này nằm lại trong thư mục của bạn kể cả sau khi gỡ app hay Xoá toàn bộ dữ liệu; muốn bỏ thì xoá chúng như tệp bình thường. - Khôi phục. Bạn mở một tệp .zip, .hbenc hoặc JSON qua trình chọn tệp của Android, hoặc dán văn bản JSON. App cho xem trước rồi mới ghi, và tự chụp lại sổ hiện tại vào Lịch sử sao lưu trước khi thay.
- Màn Cứu sổ. Nếu sổ trên máy không đọc được, app dừng lại ở màn Cứu sổ thay vì ghi đè. Ở đó có nút chia sẻ dữ liệu thô, đúng như đọc được, cho người đang giúp bạn – chỉ đi khi bạn bấm và chọn nơi gửi qua khung chia sẻ.
Ứng dụng không bật sao lưu tự động của Android (allowBackup đang tắt), nên sổ, ảnh và lịch sử sao lưu không đi vào bản sao lưu của tài khoản Google.
7. Khoá app, mã hoá trên máy, giấu số tiền
Cả ba đều tắt sẵn; chúng chỉ bảo vệ sổ khi bạn bật chúng trong Cài đặt › Bảo mật. Lớp bảo vệ luôn có là vùng dữ liệu riêng mà Android dành cho ứng dụng: app khác trên cùng máy không đọc được tệp của app này.
- Khoá app. Khi mở app (và khi quay lại sau khoảng thời gian bạn chọn: ngay, 1 phút hoặc 5 phút), app gọi hộp xác thực của Android: vân tay hoặc khuôn mặt nếu máy hỗ trợ ở mức bảo mật đủ cao, hoặc mã PIN / hình vẽ / mật khẩu màn hình khoá của máy. Việc nhận diện do Android làm; app chỉ nhận câu trả lời đúng hay sai, không bao giờ nhận dữ liệu vân tay hay khuôn mặt. App không có mã PIN riêng. Khi khoá đang bật, hình của app trong danh sách app gần đây được che.
- Mã hoá sổ trên máy. Khi bật, mọi dòng của mọi sổ và các bản chụp trong Lịch sử sao lưu được mã hoá bằng một khoá AES-256 chỉ máy này có. Khoá ấy chỉ nằm trên đĩa ở dạng đã được bọc bởi một khoá thứ hai sinh ra bên trong Android Keystore, không xuất ra được, và nằm trong phần cứng bảo mật nếu máy có. Khoá không theo vào tệp sao lưu và không sang máy khác. Nếu khoá không còn dùng được (ví dụ dữ liệu app bị chép thẳng sang máy khác), các dòng đã mã hoá không mở lại được – khi đó bạn khôi phục từ một tệp sao lưu. Lớp này không áp cho ảnh (mục 5), tệp bạn xuất ra và sao lưu tự động (mục 6).
- Giấu số tiền. Chạm con mắt ở màn Tổng quan hoặc trên widget để thay mọi số tiền bằng dấu chấm. Riêng chế độ giấu số tiền trong thông báo giữ con số khỏi màn hình khoá.
Chúng tôi không nói "an toàn 100%". Khi khoá app tắt, ai mở được điện thoại này là đọc được sổ.
8. Widget màn hình chính
Widget cho xem hôm nay đã chi bao nhiêu và ngân sách tháng còn bao nhiêu (hoặc tháng này đã chi bao nhiêu nếu bạn chưa đặt ngân sách); bản cỡ vừa thêm số tiền còn được tiêu. Để widget vẽ được mà không mở sổ, app ghi sẵn các con số ấy vào vùng cài đặt riêng của nó trên máy mỗi khi sổ đổi. Widget không mở sổ và không gửi gì đi.
Nói thẳng: widget hiện số tiền ngay trên màn hình chính, ai cầm máy đã mở khoá cũng thấy. Bạn có ba cách:
- Chạm con mắt (trong app hoặc trên widget) để widget hiện dấu chấm. Đây là tấm che khi có người nhìn, không phải khoá: con mắt trên widget mở lại được mà không cần mở app.
- Bật khoá app hoặc chế độ giấu số tiền trong thông báo: khi đó app không ghi con số nào cho widget, chỉ ghi dấu chấm.
- Gỡ widget khỏi màn hình chính.
9. Quảng cáo và phân tích
Không có. Không mạng quảng cáo nào được nhúng, mã quảng cáo của thiết bị không được dùng, không có công cụ đo hành vi. Chúng tôi chỉ thấy các số tổng hợp mà Google Play Console cho mọi nhà phát triển (lượt cài, lượt gỡ, sự cố) – những số đó không cho biết bạn là ai hay bạn chi tiêu gì.
10. Thanh toán
Ứng dụng bán một sản phẩm trong ứng dụng, mua một lần, không tiêu hao (mua rồi là của bạn) qua Google Play Billing. Cách kiểm tra: app hỏi Google Play ngay trên máy xem thiết bị này đã sở hữu sản phẩm đó chưa, rồi mở khoá tính năng tại chỗ. Câu hỏi đó không chứa dữ liệu chi tiêu nào.
Chúng tôi không nhận và không lưu số thẻ hay bất cứ thông tin thanh toán nào – toàn bộ việc trả tiền diễn ra giữa bạn và Google. Không bước nào đi qua máy chủ của chúng tôi, vì không có máy chủ nào.
Khi không hỏi được Google Play (máy đang không có mạng chẳng hạn), app không coi đó là bằng chứng bạn chưa mua: nó dùng lại kết quả xác nhận gần nhất đã lưu trên máy.
11. Trẻ em
Ứng dụng không hướng tới trẻ em. Vì không thu thập dữ liệu nào nên cũng không có dữ liệu của trẻ em để nói đến.
12. Quyền của bạn
Vì dữ liệu chỉ nằm trên máy bạn, bạn kiểm soát hoàn toàn: sửa hoặc xoá từng mục trong app, xoá một sổ, xoá sạch bằng mục Xoá toàn bộ dữ liệu (xoá mọi sổ, mọi ảnh và toàn bộ lịch sử sao lưu trên máy), hoặc gỡ app (xem trang xoá dữ liệu). Tệp sao lưu bạn đã lưu ra ngoài và các bản sao lưu tự động trong thư mục của bạn thì bạn tự xoá. Không có yêu cầu nào phải gửi cho chúng tôi, vì chúng tôi không giữ gì để trả lại hay để xoá.
13. Thay đổi chính sách
Nếu về sau ứng dụng có thêm tính năng cần gửi dữ liệu ra ngoài, chúng tôi sẽ cập nhật trang này và nói rõ trong ứng dụng trước khi tính năng đó bật. Ngày hiệu lực ở đầu trang luôn là ngày của bản mới nhất.
14. Liên hệ
Email: mimobile.team@gmail.com
Privacy Policy
Quản lý chi tiêu - Money Spending is a personal money book: expenses, income, transfers between your own accounts, budgets, savings goals, plans, recurring entries and notes, in one book or several. Everything stays on your phone. There is no server of ours, no account to sign in to, and your data is sent nowhere.
1. What we collect
Nothing. No accounts, no server to receive data, no device identifier, no advertising ID, no remote analytics, no ads.
The Google Play release does not declare the Internet permission. Google's billing library declares it, and the app's manifest removes it again. That means something very specific: the app cannot send anything anywhere by itself - even a future bug that tried to would be stopped by the operating system.
No data leaves the device unless you take it out yourself: a backup file you save or share (section 6), the automatic backup into a folder you picked (section 6), or the raw data you choose to share from the rescue screen (section 6). Reading receipts, encryption, the app lock and the widget all run on the phone.
2. There is no bank connection of any kind
This is the easiest thing to misunderstand about a money app, so plainly: Quản lý chi tiêu - Money Spending does not connect to your bank, e-wallet or card in any way. It does not read SMS messages, does not read your banking app's notifications, does not import statements automatically, and never asks for your password or an OTP.
What you see in the app - accounts, cards, balances, credit limits, debts - are numbers you typed in yourself. A balance is the opening figure you entered plus the entries you recorded. If it differs from your real bank balance, it is because something has not been entered, not because the app fetched it wrong.
3. Data that stays on your device
| Data | Purpose | Where it lives |
|---|---|---|
| Books: the name, icon and colour of each book you create (one without Premium, up to five with it) | Keeping the household, a shop or a trip apart | A SQLite database in the app's private storage on your device |
| Entries: kind (expense / income / transfer), amount, account, category, time, note, labels, and for a receipt the shop and the items you confirmed | Keeping the book, balances and reports | The database on your device |
| Accounts: name, kind, currency, opening balance, and a card's limit, statement day and due day if you entered them | Grouping the book and working out each balance | On your device |
| Categories, labels, budgets, savings goals, plans, recurring rules, drafts awaiting confirmation, quick-entry templates, notes, saved filters | Organising the book your way | On your device |
| Receipt photos you keep with an entry, photos you add to a note (section 5) | So you can look at them again | The app's own photo folder on your device - not your gallery |
| Backup history: copies of the book the app keeps (section 6) | A way back from a restore or import that went wrong | The app's private folder on your device |
| Figures for the widget: the book's name, spent today, what is left of the month's budget (section 8) | So the widget can draw without opening the book | The app's private settings storage on your device |
| The book key, when you turn on encryption (section 7) | Opening the encrypted rows | The Android Keystore and a wrapped key file, on your device |
| Settings: currency, the day a period starts, language, colour palette, the app lock and its delay, the hide-amounts eye, hiding amounts in notifications, the automatic backup folder you chose, the reminders that are set | Keeping your choices between launches | On your device |
| Paid-product entitlement | Unlocking what you bought | Asked of Google Play on the device; the last verified answer is kept locally for when Play cannot be asked |
The Sample book (two months of a family's spending, to look at only) is built in memory each time you open it. It is never written to the device, never mixed into your books and never goes into a backup.
Uninstalling deletes all of the above. What remains is only what you saved outside the app yourself: backup files you exported and the automatic backups in the folder you picked (section 6). We hold no copy, because we never received one.
4. Permissions and why
| Permission | Why |
|---|---|
| Notifications (POST_NOTIFICATIONS) | To show recurring bill reminders and the alerts you set yourself (over budget, low balance). Decline it and the book still works; you just get no reminders. |
| Run after restart (RECEIVE_BOOT_COMPLETED) | To re-arm those reminders after a reboot or a clock / time-zone change. |
| Vibrate (VIBRATE) | To vibrate when a notification appears. |
| Biometrics (USE_BIOMETRIC) | Only used when you turn on the app lock (section 7), to call Android's authentication prompt. It is a normal permission with no prompt, and it gives no access to fingerprint or face data. |
That is the whole list - four permissions, and no fifth.
The app does not ask to read SMS, contacts, location, camera, microphone, photos, storage or the system calendar. Photographing a receipt uses your phone's camera app, picking a photo uses Android's photo picker, and choosing a backup folder uses Android's folder picker - each time the app receives only the one picture or the one folder you chose. And as section 1 says, the release even takes the Internet permission back out.
The app also deliberately does not ask for exact-alarm permissions (SCHEDULE_EXACT_ALARM / USE_EXACT_ALARM). Google grants those only to apps whose core function is an alarm clock or a calendar, and a money book is neither. Instead the app asks Android to deliver each reminder within a 15-minute window starting at the time you set: a reminder for 08:00 usually arrives within 15 minutes of it, never early, and later while the phone is in deep sleep or the app is restricted to save battery. If you need the exact minute, pair it with your phone's clock app.
5. Receipt photos and photos in notes
The app can read a photo of a receipt and fill in the shop, date, time, total and item rows for you instead of you typing them. You can also keep photos with an entry or add them to a note. This is the part that touches your photos, so here is exactly what happens:
- You pick the photo, the app does not. For an existing picture the app opens the system photo picker - a screen drawn by Android, not by us. The app receives only the single picture you tapped and never sees the rest of your gallery.
- Taking a new one uses your phone's camera app. The app hands over to the camera app already on your phone and gets back the picture you took. It asks for no camera permission and never opens the lens itself. A picture taken this way is not saved to your gallery.
- The reading happens on your phone. The text-recognition model (ML Kit, the bundled variant) ships inside the installed app; nothing is downloaded and no service is called. Neither the picture nor the text read from it leaves the device.
- What is saved into the book. Only what you confirm on the review screen (amount, date and time, shop, category, items). If you split a receipt into several groups, each group becomes its own entry, all pointing at the same receipt.
- When you choose to keep a photo (with an entry or in a note), the app makes its own copy: turned upright, shrunk so its longest side is at most 1600 pixels, saved as JPEG in the app's own photo folder under a name that is a hash of the picture's content. Each entry or note keeps at most 6 photos. The original in your gallery stays where it was and remains yours. If you do not choose to keep the photo, no picture is saved into the book.
- When a photo is deleted. Remove a photo from an entry or note, or delete the entry or note itself, and the file is deleted from the phone about one minute later - the wait that lets Undo bring it back. One exception: if a copy in Backup history (section 6) still names that photo, it is kept until that copy is pushed out of the history or you delete it, so restoring the copy brings its photos back too. Delete all my data removes every photo and the whole history at once; uninstalling removes the photo folder too.
- Encryption on the device (section 7) does not encrypt photos again. They stay in the app's private storage, which other apps cannot read, but they do not get the second layer the book's rows get.
- It is optional. You can use the app for years without ever opening this feature; typing remains the main way in.
6. Backups, backup history and restoring
Every backup is one you make or turn on, and it lives where you choose. We never receive one.
- A .zip backup file. It holds the book (one book or every book, as you choose) and the photos of its entries and notes. You save it through Android's save dialog (Downloads, a memory card, or a service you have installed) or send it through the share sheet. The file is not encrypted and holds every amount and photo: anyone with the file can read it. Only pick somewhere you trust; if you save it to a cloud service, the file is then subject to that service's policy.
- JSON and CSV. You can still export the book as JSON text (to restore from) or CSV (for a spreadsheet). Neither has photos, and neither is encrypted.
- Password-protected backup (.hbenc). The same contents as the .zip, encrypted with AES-256-GCM under a key derived from a password you set (PBKDF2-HMAC-SHA256, 310,000 iterations), using Android's own cryptography on the phone. The app stores the password nowhere: without it nobody can open the file, us included, and a forgotten password means that backup is lost.
- Backup history. The app keeps copies of the book in its private folder: one a day when you leave the app, and one before every import, replace, restore, book deletion and encryption switch. Without Premium it keeps the 3 most recent, with Premium 30. A copy does not duplicate photos; it records the names of the photos the book used then (see section 5). While encryption is on, the copies are encrypted with the same key. The copies never leave the phone and go when the app is uninstalled.
- Automatic backup to a folder you pick. You choose a folder once through Android's folder picker; the app may write only to that folder. On each day you use the app, as you leave it, it writes a
MoneySpending-auto-DATE-CODE.zipfile - the same .zip as above, with photos and not encrypted - and keeps this phone's 10 most recent. It deletes only its own older automatic backups (that name pattern, or the one earlier versions of the app used) and never touches anything else in the folder, including copies another phone wrote. "CODE" is six random characters the app makes once on the phone, so two phones sharing one folder do not overwrite each other; it is not linked to you or to the hardware and is sent to no one. If the folder belongs to a cloud storage app (for example Google Drive, which only appears in the picker when its app is installed), that app uploads the file under its own policy; this app opens no connection. These files stay in your folder after you uninstall the app or use Delete all my data; to be rid of them, delete them like any other file. - Restoring. You open a .zip, .hbenc or JSON file through Android's file picker, or paste JSON text. The app shows a preview before it writes anything, and copies the current book into Backup history before replacing it.
- The rescue screen. If the book on the phone cannot be read, the app stops at a rescue screen instead of writing over it. It has a button to share the raw data, exactly as read, with whoever is helping you - it goes only when you tap it and pick where in the share sheet.
The app does not use Android's automatic backup (allowBackup is false), so the book, the photos and the backup history do not go into your Google account's backup.
7. App lock, encryption on the device, hiding amounts
All three are off until you turn them on in Settings › Security; they protect the book only from then on. What is always there is the private storage area Android gives the app: other apps on the same phone cannot read this app's files.
- App lock. When the app opens (and when you come back after the delay you chose: at once, 1 minute or 5 minutes), it calls Android's authentication prompt: your fingerprint, or your face where the phone supports it at a high enough security level, or the screen lock PIN, pattern or password. Android does the recognition; the app only receives a yes or a no and never receives fingerprint or face data. The app has no PIN of its own. While the lock is on, the app's picture in the recent-apps list is covered.
- Encryption on the device. When on, every row of every book and the copies in Backup history are encrypted with an AES-256 key only this phone has. That key exists on disk only wrapped by a second key generated inside the Android Keystore, which cannot be exported and lives in secure hardware where the phone has it. The key is not part of any backup file and does not move to another phone. If the key can no longer be used (for example when the app's data is copied straight to another phone), the encrypted rows cannot be opened again - you then restore from a backup file. This layer does not cover photos (section 5), files you export or automatic backups (section 6).
- Hiding amounts. Tap the eye on Overview or on the widget to replace every amount with dots. Separately, hiding amounts in notifications keeps figures off the lock screen.
We do not claim "100% secure". With the app lock off, anyone who can unlock this phone can read the book.
8. The home screen widget
The widget shows what you spent today and what is left of the month's budget (or what the month has spent so far if you set no budget); the medium size adds the money you can still spend. So that it can draw without opening the book, the app writes those figures into its own private settings storage on the phone whenever the book changes. The widget does not open the book and sends nothing anywhere.
Plainly: the widget shows money on your home screen, to anyone holding the unlocked phone. You have three choices:
- Tap the eye (in the app or on the widget) and the widget shows dots. It is a screen against a glance, not a lock: the eye on the widget opens again without opening the app.
- Turn on the app lock or hiding amounts in notifications: the app then writes no figures at all for the widget, only dots.
- Remove the widget from the home screen.
9. Ads and analytics
None. No ad network is embedded, the device advertising ID is not used, and there is no behavioural measurement. We see only the aggregate figures Google Play Console gives every developer (installs, uninstalls, crashes); those do not tell us who you are or what you spend on.
10. Payments
The app sells one non-consumable in-app product, bought once (yours once bought) through Google Play Billing. How the check works: the app asks Google Play, on the device, whether this device owns that product, then unlocks the features locally. No spending data is part of that question.
We never receive or store card details or any payment information - the payment happens between you and Google. No step goes through a server of ours, because there is no server.
When Google Play cannot be reached (no connection, for instance) the app does not treat that as proof you did not pay: it falls back on the last verified answer stored on the device.
11. Children
The app is not directed at children. Since it collects nothing, there is no children's data to disclose.
12. Your rights
Because the data is only on your device, you control it completely: edit or delete single items in the app, delete a book, wipe everything with Delete all my data (every book, every photo and the whole backup history on the phone), or uninstall (see the data deletion page). Backup files you saved outside the app and the automatic backups in your folder are yours to delete. There is no request to send us, because we hold nothing to return or erase.
13. Changes
If a future feature ever needs to send data out, we will update this page and say so in the app before that feature is switched on. The effective date at the top always refers to the current version.
14. Contact
Email: mimobile.team@gmail.com