Where Are Android OTA Update Files Stored?
Android stages OTA packages in /data/ota_package, though newer phones stream updates with no saved file.
Last updated
Android's update engine stages packages at /data/ota_package (AOSP's own constant, also used for sideloaded zips). Some vendors use /data/ota instead, and legacy non-A/B devices used /cache/recovery. Older OnePlus builds even dropped zips in internal storage under .OTA where users could see them.
The honest caveat: many current phones never save a package at all. Global builds with Google's streaming updater write payload data straight to the inactive slot. No file, no capture, no manual backup. Root plus the right build is the only combination that guarantees a file to find.
Where Android stores this, by platform
/data/ota_package
AOSP constant from update_engine and recovery sources. OEM skins vary (/data/ota, internal .OTA). Streaming builds keep nothing here. Root required to browse.
Frequently asked questions
Do I need root to see the OTA package?
Generally yes. Both paths sit on the data partition with system-only permissions. A root file manager can browse them; without root, use adb pull or accept that the package is out of reach.
My phone has no OTA file anywhere. Why?
You cannot. Streamed A/B updates apply payload chunks directly to the idle slot as they download. There is no zip to capture, which is why download-and-install feels instant on these phones.
Notice an outdated path? Let us know.