| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| | |
manual_merge_40238b9
Change-Id: I0d8441c4bae392726e7d41c77b1d9ac5eda1c09c
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
51033d49f6 am: 9bbd21ff0c am: 0bd9e49a06 am: 73721ade0d
am: 36b9c38a53
Change-Id: I53525f314f5ebc659e26c972c62517833ea03e19
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
51033d49f6
am: 9bbd21ff0c
Change-Id: I5f09670f0629addb5fa847799184716020234f35
|
| | | |\
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
am: 51033d49f6
Change-Id: Ic319b5f1f9351a83a2fde49aedc99f996fda8ef5
|
| | | | |\
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
am: 7c1af8c62c
Change-Id: Id435bda5c939ab48c3e1fb69f13292a4740828d4
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
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.
Bug: 30537115, 30945409
Change-Id: If944aada020878a91c363963728d0da9f6fae3ea
|
|\| | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
6777320335 am: a474af3a08 am: 8bec536bf2 am: 34ccbd80ea am: 956426bee5 am: 6a6944d1f4
am: 8e8770bdc8
Change-Id: I208036cd66780728f627cd11b2514eeb03c74800
|
| |\| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
6777320335 am: a474af3a08 am: 8bec536bf2 am: 34ccbd80ea am: 956426bee5
am: 6a6944d1f4
Change-Id: Ib01cab89347d96c44478e51a27ef2cf17e1e7b2d
|
| | |\| | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
6777320335 am: a474af3a08
am: 8bec536bf2
Change-Id: I81ea34a6f1cdaa438af6397651d7374628d44eff
|
| | | |\| |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
am: a474af3a08
Change-Id: I133dc7915c5dfd0e2d70ece76c008c7b282f0bcb
|
| | | | |\|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
am: b440ceb00f
Change-Id: If9feec471d71fbfa05a4cf9a8633142c724b6da3
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This reverts commit 8be3a92eb0b4105a9ed748be5a937ce79145f565.
Change-Id: I10401d57239b868f8e3514f81a0e20486838e29c
|
|\| | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
b3ce7976f2 am: 860239d87e am: 616f47abce am: a9ea617232 am: 567e549614
am: 14ae5650e4
Change-Id: I3688aa1ad8e48901b321823f03636bbd55d76780
|
| |\| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
b3ce7976f2 am: 860239d87e am: 616f47abce am: a9ea617232
am: 567e549614
Change-Id: I47ae3c7cfa1e3f6239d95697cf641c8d498a4e60
|
| | |\| | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
b3ce7976f2
am: 860239d87e
Change-Id: Ic62206ad61c81da00eb57679211c140ce7053032
|
| | | |\| |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
am: b3ce7976f2
Change-Id: I539882f08289cabaaf49326fb7973d98d0323de2
|
| | | | |\|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
am: 8be3a92eb0
Change-Id: I0b339abd106680e44a7e900e3eae514cf0f630c1
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
When opening a downloaded file, enforce that the caller can actually
see the requested download before clearing their identity to read
internal columns.
Bug: 30537115
Change-Id: I01bbad7997e5e908bfb19f5d576860a24f59f295
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This avoids a race condition where someone can change a symlink
target after the security checks have passed.
Bug: 26211054
Change-Id: I5842aaecc7b7d417a3b1902957b59b8a1f3c1ccb
|
| | | |\| |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
am: 0e710ca30d
* commit '0e710ca30d0b04843b3d2e83755e35fe092cfd4a':
Use resolved path for both checking and opening.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This avoids a race condition where someone can change a symlink
target after the security checks have passed.
Bug: 26211054
Change-Id: I5842aaecc7b7d417a3b1902957b59b8a1f3c1ccb
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This avoids a race condition where someone can change a symlink
target after the security checks have passed.
Bug: 26211054
Change-Id: I40ed6d2298e4b66b4f7a055e68d9820515adf351
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This avoids a race condition where someone can change a symlink
target after the security checks have passed.
Bug: 26211054
Change-Id: I5842aaecc7b7d417a3b1902957b59b8a1f3c1ccb
|
| |\ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | | |
mnc-dr1.5-dev
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This avoids a race condition where someone can change a symlink
target after the security checks have passed.
Bug: 26211054
Change-Id: I03b06b746fde5d08d6b61a7011bdace0b4e9fa77
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
When deleting a file from DownloadManager, we also reach over and
clean up any scanned MediaStore entries. However, DownloadManager
clients may not hold the WRITE_EXTERNAL_STORAGE permission, such as
when they downloaded a file into their package-specific directories.
The safest fix for now is to clear the calling identity and always
clean up the MediaStore entries ourselves, since DownloadProvider
always holds the required storage permission.
Bug: 29777504
Change-Id: Iea8f5696410010807b118bb56e5b897c53f0e1fe
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
When deciding to kick off a media scan of a newly-downloaded file,
use the latest values from InfoDelta, instead of stale values from
the last database read, which may lead us to skip the scan.
Bug: 29234780
Change-Id: I7ffbcdd1edb9965999b7f5f100f57a9c2933f3a5
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
When a download is stopped due to a metered network, we should
reschedule the job just like any other network failure. If a
download requires an unmetered network, treat WAITING_FOR_NETWORK as
QUEUED_FOR_WIFI so we show a meaningful notification.
Bug: 29440531
Change-Id: I31e6535c575fd32e2982ef840ae501acf1db3927
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
When inserting an already-completed download, we don't schedule a
job, leaving notifications stale until the next real download comes
along. This change kicks off a notification update pass in these
cases to ensure we reflect the internal state.
Bug: 29548026
Change-Id: I6ff87d69d83c265738d5e035197204bbb63cfa81
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Bug:29505888
Change-Id: Ifc33fd75e44d1dbc5a4ce5caa8e1ff938b94623e
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Otherwise it's confusing to see notifications for downloads that
are otherwise invisible.
Bug: 28623639
Change-Id: I1b2aeccfcca1369f66c56c441dfef68ee95c6d62
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
BUG: 28743623
Change-Id: I314febe06e5516dfa69062da691e0189b051dac5
|
|\ \ \ \ \ \ \ |
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
BUG: 28521946
Change-Id: I32129977c121b610bdd1a780fd371baaff3ead4b
|
|\ \ \ \ \ \ \ \ |
|
| |/ / / / / / /
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Bug: 28476442
Change-Id: I12a35a2c35c16ddf899637dfb85c30006c169fd7
|
|/ / / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
The recent JobScheduler rewrite means we no longer spin up a service
when insterting an already-completed download. However, the calling
app may have requested the download to be scanned, so kick off a
scan request for them.
Bug: 28659693
Change-Id: I497e10995ba04f1522fe8d7e547ebea6e305f6e9
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
BUG: 28521946
Change-Id: I31658e680e67da9e1a420a9749a67949cfe09689
|
|\ \ \ \ \ \ \ |
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Bug: 28359663
Change-Id: Id74ab041717f553bbd81ab2f69b1b8fa0d4d230d
|
|/ / / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Downloads with visible notifications should behave as if the
requesting app was running a foreground service. The easiest way
to implement this for now is to ignore any BLOCKED network status
and use the new setWillBeForeground() API so job scheduling ignores
any active blocked/dozing status.
Bug: 26571724
Change-Id: I8ea2b2a7cdb5f469adc11b4d897ff55bd8a9db9a
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
JobScheduler is in a much better position to coordinate tasks across
the platform to optimize battery and RAM usage. This change removes
a bunch of manual scheduling logic by representing each download as
a separate job with relevant scheduling constraints. Requested
network types, retry backoff timing, and newly added charging and
idle constraints are plumbed through as job parameters.
When a job times out, we halt the download and schedule it to resume
later. The majority of downloads should have ETag values to enable
resuming like this.
Remove local wakelocks, since the platform now acquires and blames
our jobs on the requesting app.
When an active download is pushing updates to the database, check for
both paused and cancelled state to quickly halt an ongoing download.
Shift DownloadNotifier to update directly based on a Cursor, since we
no longer have the overhead of fully-parsed DownloadInfo objects.
Unify a handful of worker threads into a single shared thread.
Remove legacy "large download" activity that was thrown in the face
of the user; the UX best-practice is to go through notification, and
update that dialog to let the user override and continue if under
the hard limit.
Bug: 28098882, 26571724
Change-Id: I33ebe59b3c2ea9c89ec526f70b1950c734abc4a7
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
BUG: 27481520
Change-Id: I84db23b62f60dadefc01ead78f13ed689943baad
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Bug: 27074270
Change-Id: I7145fcdf0c8af0f0c299ca491f01eaef6204e2cb
|
|\ \ \ \ \ \ \ |
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Downloads should use the default network for the caller. This prevents
applications from, for example, bypassing VPN by routing all requests
through the DownloadProvider.
Bug: 27074270
Change-Id: I7830226dd2910757d3a5c78f373330f84637ccfa
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Bug: 27971263
Change-Id: Ia68d43828ecc32c1b6a656a0d3bb751b2a2e7881
|
|/ / / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
When service starts, use new API to read the current set of
notification tags from the system instead of clearing and starting
from scratch.
Bug: 27634130
Change-Id: I049fe5e445a62a52042d7638c2cb50417977435f
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Now that PackageInstaller can read APKs from content:// Uris, we
don't need to make downloads world-readable. This is mostly just
cleanup, since our top-level private data directory is no longer
o+x, so other apps can't traverse in anyway.
Bug: 5464052
Change-Id: I45de6a40c28b85c64d5afbc13068fe3ae8341d93
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Bug: 27526321
Change-Id: Ic29bc235242a8b87ab8321ee201cb7918594366f
|