Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
Web Security TippsNew manual calculation setting in Google Sheets(21.09.2026 um 20:54 Uhr)
Videos & KonferenzenTechquickie: The Steam Frame Shouldn't Work - Here's Why It Does(21.09.2026 um 21:17 Uhr)
Sichere ProgrammierungHow to Build a Production-Ready iOS App With AI-Generated Code(21.09.2026 um 21:00 Uhr)
Sichere ProgrammierungAfriex Integrations: Sandbox, Idempotency, and Webhook Simulation(21.09.2026 um 21:50 Uhr)
Sichere ProgrammierungBridging Local and Cloud Databases for Centralized Data Management(21.09.2026 um 21:51 Uhr)
Web Security TippsNew manual calculation setting in Google Sheets(21.09.2026 um 20:54 Uhr)
Videos & KonferenzenTechquickie: The Steam Frame Shouldn't Work - Here's Why It Does(21.09.2026 um 21:17 Uhr)
Sichere ProgrammierungHow to Build a Production-Ready iOS App With AI-Generated Code(21.09.2026 um 21:00 Uhr)
Sichere ProgrammierungAfriex Integrations: Sandbox, Idempotency, and Webhook Simulation(21.09.2026 um 21:50 Uhr)
Sichere ProgrammierungBridging Local and Cloud Databases for Centralized Data Management(21.09.2026 um 21:51 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

Why NSOpenPanel Can't See Your Android Device

All tests run on an 8-year-old MacBook Air. When I was building HiyokoMTP, I hit a limitation that seems obvious in hindsight: you can't use a native macOS folder picker to browse an Android device over MTP. NSOpenPanel — the standard m…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

All tests run on an 8-year-old MacBook Air.



When I was building HiyokoMTP, I hit a limitation that seems obvious in hindsight: you can't use a native macOS folder picker to browse an Android device over MTP.



NSOpenPanel — the standard macOS file dialog — has no idea your Android device exists. It only sees what Finder mounts, and Finder doesn't mount MTP devices as a proper volume. So the entire native folder selection API is useless for this use case.









Why the Native Dialog Can't See Your Android Device



macOS exposes the file system to apps through a set of APIs that assume storage is mounted as a volume. MTP doesn't work that way. It's a stateful protocol layered over USB — not a file system mount.



Android File Transfer used to create a virtual mount, but that approach had reliability issues and kernel extension dependencies, and is largely abandoned. Modern MTP implementations talk to the device directly over USB and manage the object tree themselves. The OS never sees it as a folder.



The result: NSOpenPanel, NSSavePanel, Finder integration — none of it works for MTP paths. You're on your own.









How to Build One Anyway



If you need folder selection over MTP, you have to build your own picker from scratch. Here's the approach:



Rust side — expose a list_mtp_dir(path) command via Tauri IPC. This queries the MTP device for the contents of a given directory and returns the object list.




#[tauri::command]
fn list_mtp_dir(path: String) -> Result<Vec<MtpObject>, String> {
// query MTP device and return object list
}






React side — build a modal UI that behaves like a minimal Finder:




// On open
const root = await invoke("list_mtp_dir", { path: "/" });
// On folder selection
const contents = await invoke("list_mtp_dir", { path: selectedPath });
// Maintain a navigation stack to support back navigation
const [navStack, setNavStack] = useState<string[]>(["/"]);






It's straightforward in principle — it's just more work than you'd expect, because the OS would normally handle all of this for you.









Current State in HiyokoMTP



Worth noting upfront: this isn't implemented yet in the current version. For now, folder paths are entered manually or via preset. A proper MTP folder picker is planned for v2.



If you're building your own MTP client and need this, the architecture above is the approach to take — there's no shortcut through native APIs.






One-time purchase, no subscription.



https://hiyokomtp.lemonsqueezy.com/checkout/buy/2e966b64-554e-42a0-b865-4240281978a1



Have you run into other macOS APIs that silently break over MTP?

Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Why NSOpenPanel Can't See Your Android Device

Thematisch verwandte Begriffe: NSOpenPanel, Cant, Your, Android · 6 Treffer

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-94497 | jshERP through 3.6 fails to validate object ownership in by-id info, upd…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick