summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Enforce calling identity before clearing.Jeff Sharkey2016-11-151-0/+44
| | | | | | | | | | | | | | | | | | | | | | When opening a downloaded file, enforce that the caller can actually see the requested download before clearing their identity to read internal columns. However, this means that we can no longer return the "my_downloads" paths: if those Uris were shared beyond the app that requested the download, access would be denied. Instead, we need to switch to using "all_downloads" Uris so that permission grants can be issued to third-party viewer apps. Since an app requesting a download doesn't normally have permission to "all_downloads" paths, we issue narrow grants toward the owner of each download, both at device boot and when new downloads are started. CYNGNOS-3303 Bug: 30537115, 30945409 Change-Id: If944aada020878a91c363963728d0da9f6fae3ea (cherry picked from commit 7c1af8c62c8bdf6e8de5a00c1927daf9fd9c03d1)
* Merge tag 'android-5.1.1_r37' into HEADJessica Wagantall2016-04-042-3/+8
|\ | | | | | | | | Ticket: CYNGNOS-2213 Android 5.1.1 release 37
| * Use resolved path for both checking and opening.Jeff Sharkey2016-02-262-3/+8
| | | | | | | | | | | | | | | | This avoids a race condition where someone can change a symlink target after the security checks have passed. Bug: 26211054 Change-Id: I5842aaecc7b7d417a3b1902957b59b8a1f3c1ccb
* | Fixed application/octet-stream to guess mimetypeherriojr2015-09-291-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | When being downloaded, some files were being classified as application/octet-stream in the response even though they are a valid mimetype. This adds in guessing the mimetype before sending off the intent. It was chosen to put this here instead of when it is downloaded to make it backwards compatible with files that already exist in people's downloads. Change-Id: Id5fc9a3cca6851677b066854fcdccb5ae4fade7c Issue-Id: CYNGNOS-1153
* | DownloadManager : Only remove stale id if download is not deletedDanesh Mondegarian2015-06-161-1/+1
| | | | | | | | | | | | | | | | This addresses the issue where if a download is enqueued and right after deleted, the notification doesn't stick around. Change-Id: Ie1ec08fc94420b0f46e1543ed52afd8c22aee372 (cherry picked from commit 794ab54677c50bac5c0f32bc5d9ad768ff10c039)
* | Merge tag 'android-5.1.0_r1' into HEADstaging/cm-12.1Ricardo Cerqueira2015-03-104-66/+47
|\| | | | | | | Android 5.1.0 release 1
| * Can not continue to download after powering on the phoneBenson Huang2015-01-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Launch chrome and open www.baidu.com -> Choose "software" in the site navigation -> Tap "games" option, choose one apk to download -> During downloading, power off the phone -> Power on the phone and check, it can't continue to download apk. The fix is to add one condition for retrying to download when IO exception happens (i.e. Failed to open for writing: java.io.FileNotFoundException). Bug 18834618 Review: https://partner-android-review.git.corp.google.com/#/c/193436 Signed-off-by: Benson Huang <benson.huang@mediatek.com> Change-Id: I2f975ff7ffedfc4136fb250dcb5ef8fdca4a367d
| * Use FileUtils to validate FAT filenames.Jeff Sharkey2014-11-261-50/+1
| | | | | | | | | | Bug: 18512473 Change-Id: I686c7c3487f789dc0437513fbc6fed54dc62721f
| * Connection: close is enough to know length.Jeff Sharkey2014-11-101-5/+9
| | | | | | | | | | | | | | | | Now that we're defeating connection reuse, we have one additional type of response where the length is known. Bug: 18306491 Change-Id: I19657c565238f07fd89a55a5dbf1e85748f6e7c3
| * Defeat connection reuse to really cancel.Jeff Sharkey2014-11-071-0/+4
| | | | | | | | | | | | | | | | | | Otherwise servers may continue streaming large downloads into the kept-alive socket. This changes to always close the socket, sending a clear signal to server. Bug: 16153076 Change-Id: I3e7fefce4f82b5f80abaab58874cc4c4374d2bfb
| * Ensure that downloads stop quickly.Jeff Sharkey2014-10-271-8/+25
| | | | | | | | | | | | | | | | | | | | In some cases the provider may have marked a download as deleted, but the content change notification may lag several seconds. To stop as soon as possible, assert that we're not deleted when writing our progress updates. Bug: 16405936 Change-Id: I994b746056d0427c626355e0815234ff5b73198c
| * am 3ee03ac3: am e24609e8: Trim stale downloads from third-party apps.Jeff Sharkey2014-10-171-5/+47
| |\ | | | | | | | | | | | | * commit '3ee03ac36f0f849b78936cf18972fe2f24a61722': Trim stale downloads from third-party apps.
| * | Fix internationalization of percentage formatting in DownloadProvider.Elliott Hughes2014-10-102-3/+7
| | | | | | | | | | | | | | | Bug: 15476051 Change-Id: I085c074f1bb66631872712cab68bcaf6ee7ba7dc
* | | Add Download Speeds in notificationLasse Brudeskar Vikås2014-12-271-6/+26
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds the ability to show the current total download speed Screenshots: http://goo.gl/M3eRNR ps7 : remove download site, and make speed to bit/sec ps8 : make speed to byte/sec and cleanup ps9 : revert to B/sec ps10: fix some formatting issues ps13: rebased Conflicts: res/values/cm_strings.xml src/com/android/providers/downloads/DownloadNotifier.java Change-Id: I801dbe61c7ee59d0c1d14d5851ad6dc3a7678499
* | Trim stale downloads from third-party apps.Jeff Sharkey2014-10-161-5/+47
|/ | | | | | | | | | | | | | | | Buggy third-party apps can enqueue lots of downloads and then forget to remove them, causing DownloadManager to stop functioning. This change removes any downloads that match _all_ of the following conditions: 1. Download status is in a terminal (non-pending) state, usually a concrete success or failure. 2. Download hasn't been touched in over a week. 3. Download is not visible in UI. Bug: 17785419 Change-Id: Id82752fd6935371c1af682205d35f7ba35169473
* Colored notificationsSelim Cinek2014-08-271-0/+2
| | | | | Bug: 17128331 Change-Id: Ie2529189e4d62c7dc385f9d36c70ac412fb4159c
* fallocate() returning ENOSYS is okay.Jeff Sharkey2014-08-261-2/+2
| | | | | | | Fall back just like ENOTSUP. Bug: 17285472 Change-Id: Ice4954726c14a0e84c39c5469d573644588934ae
* Whoops, clear identity to get internal columns.Jeff Sharkey2014-08-051-1/+11
| | | | | Bug: 16822344 Change-Id: Ib90e171cbb7babc7a3eea59de5cb899c79fadf94
* Scan after writing download files.Jeff Sharkey2014-08-054-23/+43
| | | | | | | | Kicks off media scanner after files are written, usually through a DocumentsProvider. Bug: 13557203 Change-Id: I4e29b778b4e19a217f60c1e415c4d814724752d3
* Transition the Download Service's cleanup work to a scheduled JobChristopher Tate2014-06-162-8/+50
| | | | | | | | | ...preparatory to finally removing the scratchpad "idle maintenance" infrastructure from the product. Bug 14993295 Change-Id: I1e84247de19e616910db1781b2c399a8b15a805c
* am f04a7690: am 90e7485d: am 02562d30: Merge "Avoid leaking cursors"Jeff Sharkey2014-05-101-20/+30
|\ | | | | | | | | * commit 'f04a7690b53288c98c07e0aa05214cceebea1331': Avoid leaking cursors
| * Merge "Avoid leaking cursors"Jeff Sharkey2014-05-101-20/+30
| |\
| | * Avoid leaking cursorsMattias Nilsson2014-04-011-20/+30
| | | | | | | | | | | | | | | | | | | | | Adding try/finally blocks to make sure that cursor resources are let go Change-Id: I596074aa9ab5752f91a26b5a03e1f39c23c64a5f
| * | Track API package change.Elliott Hughes2014-04-281-4/+4
| |/ | | | | | | Change-Id: Ie2f35386e48894a9c9afb9717af90a5628dcd79b
* | OsConstants is moving.Elliott Hughes2014-04-291-2/+1
| | | | | | | | Change-Id: Ie72e18f539cbad593c489bf52b9afea5330f62c1
* | Fix reference to moved ErrnoException.Torne (Richard Coles)2014-04-291-1/+1
| | | | | | | | | | | | | | ErrnoException has moved to android.system; fix reference in DownloadIdleService. Change-Id: I8a08d3f8074d0ec5a4e8314db173139a109abb33
* | Move internal DownloadProvider code off libcore.os.Elliott Hughes2014-04-282-18/+18
| | | | | | | | | | | | (As much as possible. There are no plans to make the mocking API public.) Change-Id: I348877b850d6d34572d5a19e67952254bc4f12ef
* | resolved conflicts for merge of 2ca55fd3 to masterNick Kralevich2014-03-141-6/+0
|\| | | | | | | Change-Id: I59df74b902c95299ae9adda2ddddb6bad4260159
| * Drop restorecon call from DownloadProvider.Stephen Smalley2014-03-121-6/+0
| | | | | | | | | | | | | | | | It is not necessary/useful to place this directory into a separate type from other app data files, so remove this restorecon. Change-Id: Iabd643a515c134ab2a62e82866a3f72530f795ba Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
* | Add idle service to clean orphan downloads.Jeff Sharkey2014-02-065-87/+179
| | | | | | | | | | | | | | | | | | | | | | | | Periodically reconcile database against disk contents. This handles the case where a user/app deletes files directly from disk without updating the database, and the rare case where a database delete didn't make it to deleting the underlying file. Also cleans up any downloads belonging to a UID when removed. Bug: 12924143 Change-Id: I4899d09df7ef71f2625491ac01ceeafa8a2013ce
* | Many improvements to download storage management.Jeff Sharkey2014-02-069-1110/+968
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change all data transfer to occur through FileDescriptors instead of relying on local files. This paves the way for downloading directly to content:// Uris in the future. Rewrite storage management logic to preflight download when size is known. If enough space is found, immediately reserve the space with fallocate(), advising the kernel block allocator to try giving us a contiguous block regions to reduce fragmentation. When preflighting on internal storage or emulated external storage, ask PackageManager to clear private app caches to free up space. Since we fallocate() the entire file, use the database as the source of truth for resume locations, which requires that we fsync() before each database update. Store in-progress downloads in separate directories to keep the OS from deleting out from under us. Clean up filename generation logic to break ties in this new dual-directory case. Clearer enforcement of successful download preconditions around content lengths and ETags. Move all database field mutations to clearer DownloadInfoDelta object, and write back through single code path. Catch and log uncaught exceptions from DownloadThread. Tests to verify new storage behaviors. Fixed existing test to reflect correct RFC behavior. Bug: 5287571, 3213677, 12663412 Change-Id: I6bb905eca7c7d1a6bc88df3db28b65d70f660221
* | Revert "change download provider to use system log"Doug Zongker2014-01-277-88/+88
| | | | | | | | | | This reverts commit 4f9d2d04003fafb358d7c127054055b3a9732c9b, was only wanted for debugging.
* | change download provider to use system logDoug Zongker2014-01-277-88/+88
|/ | | | | | | | Try to catch the download provider in the act of deleting pending system updates. Bug: 12680933 Change-Id: If58aba5c30fd624217e5d073730645af05e98ac7
* Creates parent directories before creates fileRoger Chen2014-01-091-1/+9
| | | | | Change-Id: I124f7ce2b731b100e9572d7c5d95206e243ee316 Signed-off-by: Roger Chen <cxr514033970@gmail.com>
* No directories in Downloads.Jeff Sharkey2013-10-101-0/+4
| | | | | Bug: 11166290 Change-Id: I29c9cf53c77d03d1bcf408edd693b9c24d5665b6
* Treat deleted in-progress downloads as canceled.Jeff Sharkey2013-10-041-1/+1
| | | | | | | Otherwise the download thread would keep going! Bug: 11081405 Change-Id: Ib8f1b624b29cabc782b8a0047d7b5db7e39a17de
* Always update notifications, media scanner.Jeff Sharkey2013-10-041-16/+5
| | | | | | | | | insert() was trying to be too clever, and it would end up delaying the media scanner until the next download happened. This resulted in duplicate photos in DocumentsUI. Bug: 11081685 Change-Id: Ic9549ede38118372849119dd3a21415a4723e9f5
* Ensure Downloads directory exists before create.Jeff Sharkey2013-10-041-0/+1
| | | | | Bug: 11080980 Change-Id: Iffa5402ae632ceda06e0aec6bdc73c0c4fcbeaa1
* Allow all downloads to be writable.Jeff Sharkey2013-10-013-28/+9
| | | | | Bug: 10943812 Change-Id: Ib0cb3e608c1f40a2e2fcd6e493c8f920d8b4221b
* Follow API changes.Jeff Sharkey2013-09-271-4/+2
| | | | | Bug: 10964412 Change-Id: Ia452bd056b6e01aace33acc5f1aa741af4d77c5f
* Revoke grants when downloads are deleted.Jeff Sharkey2013-09-262-0/+20
| | | | | | | | When deleting downloads, revoke any Uri permission grants, which removes from getPersistedUriPermissions(). Bug: 10928851 Change-Id: I3e90c4071385832dcb3e0cf9ca3fdccafbe30037
* Always check against canonical paths.Jeff Sharkey2013-09-251-3/+13
| | | | | Bug: 10920351 Change-Id: I8c7e5344d9fd9d15565eaf93b91ce457a98ab98c
* Allow saving to Downloads.Jeff Sharkey2013-09-233-17/+135
| | | | | | | | | | | Add column to mark downloads as being writable, and allow documents to be created under Downloads backend. Update database when writing is finished, and generate unique filenames when they already exist. Check canonical path on incoming _DATA paths. Bug: 10667164, 10892621, 10893268 Change-Id: I8c203b96ff042a895b58686903fcd07fc755a00f
* Unified handling of errors around opening.Jeff Sharkey2013-09-182-16/+30
| | | | | | | Handle both missing downloads and missing activities. Bug: 10799449, 10713636 Change-Id: I592b07fc5cf530526803379d7f7a99e8a6b207c4
* Omit duplicate images, query for management UI.Jeff Sharkey2013-09-101-4/+38
| | | | | | | | | | | When returning recent files, omit images that have been scanned and provided by the Images backend. Return in-progress files when queried for management UI, otherwise only return complete files. Bug: 10659651 Change-Id: I8f05e6fcf53422905d7f51cc55611ca00af301bf
* Hint sorting, remove XML, follow refactor.Jeff Sharkey2013-09-091-15/+16
| | | | | Bug: 10672973, 10577809 Change-Id: I92314c35b37ac590830e881489e6a88afd860de4
* Extend trampoline to show dialogs.Jeff Sharkey2013-09-063-51/+18
| | | | | | | | | Handle incoming manage requests by launching finished downloads, or showing various retry dialogs. Pipe through summary, show percentage when in progress, and always show total size and MIME type. Bug: 10531347, 10599641 Change-Id: I3be2bc67ea3c0ef795146177200f5be77ad5114e
* Relay content change notifications to documents.Jeff Sharkey2013-09-051-0/+7
| | | | | Bug: 10531347 Change-Id: Ia704b233623e913da3a5cb7c8aa5e024900e1d3a
* Remove content flags to indicate */* support.Jeff Sharkey2013-09-021-3/+1
| | | | | Bug: 10597317 Change-Id: Ia32f4ec34847680135c300dfe8fe73694da4c57a
* New recent documents behavior.Jeff Sharkey2013-09-021-1/+23
| | | | | Bug: 10593596 Change-Id: I708d2396266d083a494e57eab2637471e54e1cdc