ipn,ipnlocal,taildrop: use SAF for Android files (#15976)

Create FileOps for calling platform-specific file operations such as SAF APIs in Taildrop
Update taildrop.PutFile to support both traditional and SAF modes

Updates tailscale/tailscale#15263

Signed-off-by: kari-ts <kari@tailscale.com>
This commit is contained in:
kari-ts
2025-05-20 15:30:19 -07:00
committed by GitHub
parent 70b6e8ca98
commit 5a8b99e977
5 changed files with 371 additions and 84 deletions

View File

@@ -18,6 +18,12 @@ func (e *Extension) SetDirectFileRoot(root string) {
e.directFileRoot = root
}
// SetFileOps sets the platform specific file operations. This is used
// to call Android's Storage Access Framework APIs.
func (e *Extension) SetFileOps(fileOps FileOps) {
e.FileOps = fileOps
}
func (e *Extension) setPlatformDefaultDirectFileRoot() {
dg := distro.Get()