Sinkhole is built on native Android security primitives and a custom manifest-based synchronization engine. This section dives into the architecture that powers your data bridge.
Unlike traditional apps that request broad "Manage External Storage" permissions, Sinkhole uses Android's modern Storage Access Framework. This ensures that the app only has access to the specific folder you explicitly grant permission to, maintaining a high level of system-wide privacy.
The core of Sinkhole is its .sync-manifest.json tracking system. This file acts as the
source of truth for the state of your files on both local and cloud storage.
Our manifest is designed to be lightweight and portable, allowing for rapid state comparisons without the need for full file re-scanning.
{
"files": {
"my-document.md": {
"id": "drive_file_id_001",
"localMtime": 1711396800000,
"remoteMtime": 1711396810000,
"size": 2048,
"hash": "e99a18c428cb38d5f260853678922e03"
}
}
}
Authentication is handled directly through **Google OAuth 2.0** via the
react-native-google-signin library. This approach means your credentials never touch our
application; instead, the app uses a temporary access token with the minimum "Drive" scope necessary to
manage its dedicated folder.