Commit Graph

3222 Commits

Author SHA1 Message Date
Jeff Sharkey
b36586a7c9 Split some VolumeInfo state into VolumeRecord.
VolumeRecord is a historical record of a volume that we've seen in
the past.  It's now surfaced outside the framework for SystemUI to
drive the notifications that bug users to reinsert missing private
volumes.

Show progress notifications for both storage and package movement
operations.  Notify when an empty disk is inserted (no usable volumes)
which launches into the normal format flow.

Add API to forget volumes.

Bug: 20275424, 20275424
Change-Id: I75602c17fdcd4d1f1f62324e1a08c4a33093eefa
2015-04-28 22:02:36 -07:00
Fabrice Di Meglio
9f7e39fc9d Use Default Browser App for IntentResolution when needed
- add MATCH_ALL as a new flag for telling that all results need to
be returned (even if there is some sort of filtering done).
- take into account the default Browser App for Intent resolution
- also, dont do any domain verification priming for non system app

See bug #20144393

Change-Id: Iddd1f2029e3bbf3b99ebc5f416dc7f17e5bad10c
2015-04-28 17:37:18 -07:00
Svet Ganov
a2147ec975 Handle null projection properly if provider app op is not enabled.
Change-Id: I00b757ef73bf4dd58217ba748520c3504350d4ba
2015-04-28 00:04:00 +00:00
Jeff Sharkey
620b32b316 Package and storage movement callbacks.
Since package and primary storage movement can take quite awhile,
we want to have SystemUI surface progress and allow the Settings
app to be torn down while the movement proceeds in the background.

Movement requests now return a unique ID that identifies an ongoing
operation, and interested parties can observe ongoing progress and
final status.  Internally, progress and status are overloaded so
the values 0-100 are progress, and any values outside that range
are terminal status.

Add explicit constants for special-cased volume UUIDs, and change
the APIs to accept VolumeInfo to reduce confusion.  Internally the
UUID value "null" means internal storage, and "primary_physical"
means the current primary physical volume.  These values are used
for both package and primary storage movement destinations.

Persist the current primary storage location in MountService
metadata, since it can be moved over time.

Surface disk scanned events with separate volume count so we can
determine when it's partitioned successfully.  Also send broadcast
to support TvSettings launching into adoption flow.

Bug: 19993667
Change-Id: Ic8a4034033c3cb3262023dba4a642efc6795af10
2015-04-23 20:32:17 -07:00
Svet Ganov
112de0d41b Merge "Return an empty cursor when a content provider app op is disabled" 2015-04-23 18:12:52 +00:00
Svet Ganov
7271f3e4cb Return an empty cursor when a content provider app op is disabled
bug:17446599

Change-Id: Ic1790c9afbee5eec1dc28e1d53ce82288d4b4f86
2015-04-23 10:26:59 -07:00
Mike Lockwood
60a6df9b95 Merge "Add Context.MIDI_Service to the public API" 2015-04-23 00:12:57 +00:00
Mike Lockwood
ec32ac95dc Add Context.MIDI_Service to the public API
I forgot this when the rest of MidiManager was made public.

Change-Id: Ic5f8e2674d5b8e13bd88feebf3cf219f7af7fbcc
2015-04-22 15:33:34 -07:00
Todd Kennedy
7f95a00ec0 Add hardware feature describing a car
We need to define a hardware feature for when Android is running
embedded on a vehicle's headunit. This is not applicable when
running Android on a phone and projecting onto a headunit.

Bug: 20016089
Change-Id: I70e94564f7493afe70a49bf582a627c5ea9f0a60
2015-04-22 14:28:25 -07:00
Neil Fuller
52dbaa08cd Merge "Add checks for types in Parcel / avoid class initialization" 2015-04-22 13:30:02 +00:00
Alex Klyubin
d14a15a754 Merge "Document that WebView doesn't honor "uses cleartext traffic" flag." 2015-04-21 22:11:34 +00:00
Alex Klyubin
fbf4599a8e Document that WebView doesn't honor "uses cleartext traffic" flag.
Bug: 19215516
Change-Id: I5dbbaa03f3cae007c0b9b68fcf8cc8f250c16a62
2015-04-21 14:50:39 -07:00
Neil Fuller
44e440cc7e Add checks for types in Parcel / avoid class initialization
Make Parcel more stringent to avoid initializing classes
that are not related to Parcelable.

Two new checks:
1) That the class found on the stream implements Parcelable.
2) That the type of the CREATOR field declared on the class
found on the stream actually implements Parcelable.Creator.

For (1) the new check that a class in the stream is actually
Parcelable. This will affect handling of invalid streams or
code that didn't obey the requirements.

For (2) this change could break some apps that had a CREATOR
field in a Parcelable class that was not declared to be
(at least) a Parcelable.Creator: it is no longer sufficient
for the type to implement Parcelable.Creator, the field
must be declared as such.

This change includes doc updates for Parcelable to make
the requirement around the declared type of the CREATOR
field more concrete.

This change also makes the generics slightly tidier/explicit,
annotates code as unchecked where needed and removes some
assumptions that can not be guaranteed with Java's type
system and the current definitions.

For example, there's no guarantee right now that
Parcelable.Creator returns objects that are actually
Parcelable, or that the CREATOR object associated
with a Parcelable will return objects of the surrounding
class. The first we can't do something about without
breaking the public API (due to implementations like
TextUtils.CHAR_SEQUENCE_CREATOR). The second is
currently typically implicitly enforced with an implicit
cast in the (app's) calling code (e.g. callers to
readParcelable() that causes a language-introduced cast
to the type expected). A larger refactoring of Parcel
would be required to ensure that the class that is
produced by Creator is of a type compatible with the
class that declared CREATOR, and is not a goal for this
change.

A fix is included for a class that doesn't implement
Parcelable like it should and would probably fail
check (1).

Bug: 1171613
Change-Id: I31d07516efee29a320e80f4bc4f96aaac628f81c
2015-04-21 11:32:44 +01:00
Sunny Goyal
5892c9a2e2 Potential fix for apps disappearing in launcher on system server crash
Based on Ifda3fda209141b361a286fc033217acfa0ec196e

Bug: 20420558
Change-Id: Icfcaf585b8a19853fe2c0fd0e4f06a2efc087938
2015-04-20 13:53:06 -07:00
Jeff Sharkey
529f91fc8e Always send volume UUID with installd commands.
Since packages can be moved to other volumes, all relevant commands
to installd now require an explicit volume UUID parameter.

Bug: 20275577
Change-Id: Ie84f5bc43c7aada5800b8d71692c7928b42b965e
2015-04-18 21:11:58 -07:00
Svet Ganov
16a1689950 Add OP_READ_PHONE_STATE app op - framework
The READ_PHONE_STATE permission protects PII information and
is in the Phone group. This change is adding the corrseponding
app op for gating access to the API guarded by READ_POHNE state
which will be used instead as an access control for legacy apps.

Change-Id: I2ff895a5a0e529f26ec0ad706266a30d829268ba
2015-04-17 20:43:56 +00:00
Wale Ogunwale
6041cc1a07 Merge "Added attribute showForAllUsers that deprecates showOnLockScreen" 2015-04-16 22:35:35 +00:00
Alex Klyubin
35075a0765 Merge "Document usesCleartextTraffic app-level attribute." 2015-04-16 22:28:06 +00:00
Jonathan Basseri
9a1c9b67c4 Adding Carrier Config API.
UICC privileged carrier apps will extend CarrierConfigService to provide
carrier-specific configuration. Apps/services will use
CarrierConfigManager to read the current configuration.

CarrierConfigManager also defines the set of configuration variables and
their default values.

Bug: b/19483786
Change-Id: I027211b43276afd6fe893ae50048c52f2aed5cf5
2015-04-16 11:40:33 -07:00
Wale Ogunwale
6dfdfd6741 Added attribute showForAllUsers that deprecates showOnLockScreen
The new name is more meaningful to what the attribute actually does.

Also, force the FLAG_SHOWN_WHEN_LOCKED flag for windows that belong
to acitivties with the showForAllUsers attribute set.

Bug: 20227306
Change-Id: Ifd49166c3ec0e67ae43addc0fb30038523332ea5
2015-04-16 10:59:16 -07:00
Jeff Sharkey
bd3af28fdc Merge "Candidate volumes for packages, fix symlink." 2015-04-16 05:50:16 +00:00
Jeff Sharkey
e2d45be4da Candidate volumes for packages, fix symlink.
Add API to determine the possible candidate volumes that a package
can be moved to.  For example, it currently knows that we need to
move ASEC-based apps through internal storage before migrating them
to a private volume.

Comparator for consistent VolumeInfo ordering when displayed in UI.

Fix native library symlink to be volume UUID aware.

Bug: 19993667
Change-Id: I68d5fac5f0f776ac1c7dd15e7a984bfe2704f3f7
2015-04-15 22:21:49 -07:00
Alex Klyubin
e35cefbf23 Document usesCleartextTraffic app-level attribute.
This updates the documentation of the application element of
AndroidManifest.xml to mention the new android:usesCleartextTraffic
attribute.

This also updates the Javadoc of
android.security.NetworkSecurityPolicy and ApplicationInfo to match.

Bug: 19215516
Change-Id: I5c221b56addae8988b4db51994d18ae379d0fbe3
2015-04-15 14:37:05 -07:00
Craig Mautner
15df08abd8 Introduce android:lockTaskMode
The ability for tasks to be started in locktask mode or pinned is
dependent on the value of android:lockTaskMode for the root activity
of the task.

For bug 19995702

Change-Id: I514a144a3a0ff7dbdd4987da5361b94bdfe9a437
2015-04-15 14:27:56 -07:00
Paul McLean
55787399c9 Merge "Audio Devices Enumeration/Notification API" 2015-04-15 21:08:27 +00:00
Paul McLean
a33be211e7 Audio Devices Enumeration/Notification API
Change-Id: I4eecfa43e4fecfe309ddd805ed193d078b10d5e6
2015-04-15 10:56:49 -06:00
Amith Yamasani
d1500d8ff1 Merge "Always set the dataDir for the given userId" 2015-04-14 23:45:13 +00:00
Amith Yamasani
1742cfbd8a Always set the dataDir for the given userId
Don't try to optimize for userId != 0 when generating the
ApplicationInfo.

Change-Id: I2eb2d43f36677a781643a1e86a19c8850d517411
2015-04-14 15:41:20 -07:00
Adam Powell
ecee322e59 Add ComponentName.createRelative methods
In a number of places, it's convenient to be able to refer to
ComponentName classes with relative package paths as they are
interpreted in manifest parsing. Express the official (yet simple)
policy for this in a simple pair of factory methods for ComponentName.

Change-Id: I81a40c81b7975445dd9f06292363b69bb072b16d
2015-04-14 15:20:16 -07:00
Adam Powell
2442841819 Implement ChooserTargetService querying for ChooserActivity
First cut at querying services provided by apps that offer
ChooserTargetServices. This first implementation provides no ranking.

Bind to a limit of 5 ChooserTargetServices and offer the
ChooserTargets they provide as options in the system
ChooserActivity. The chooser now presents targets as a grid and
displays the activity icon from the referrer activity.

Change-Id: I45db829f184fc78d4f18d42b2a60b25bc301eba8
2015-04-13 16:51:16 -07:00
Clara Bayarri
28e7ba6644 Merge "Show and trigger activities that implement Text Processing actions" 2015-04-12 19:46:42 +00:00
Jim Miller
ce7eb6daf0 Clean up FingerprintManager API and make it public.
Change-Id: I6a99dccd485c053cb47dbd0ec08b41a2dc5b17c8
2015-04-11 12:34:56 -07:00
Jeff Sharkey
6036cd5126 Merge "Support moving apps to expanded storage." 2015-04-11 15:55:27 +00:00
Fabrice Di Meglio
30ca50a3dd Merge "Add Default Browser App support and relax Hosts validation for AppLinks" 2015-04-11 02:07:39 +00:00
Fabrice Di Meglio
6227172310 Add Default Browser App support and relax Hosts validation for AppLinks
- add private PackageManager APIs for setting/getting the default
Browser App package name
- serialize / deserialize the default Browser App package name per User

Also relax the Hosts name validation for the AppLinls feature. Now we
just care if the IntentFilter is having an HTTP or HTTPS scheme.

Change-Id: I4436f66ac6beff57e14f7f3a2a00b0b582c03be9
2015-04-10 17:54:02 -07:00
Fabrice Di Meglio
69010094aa Merge "Add IntentFilter auto verification - part 6" 2015-04-11 00:23:04 +00:00
Fabrice Di Meglio
2d897fbc44 Add IntentFilter auto verification - part 6
- fix handleAllWebDataURI() for taking into account CATEGORY_APP_BROWSER

Change-Id: I91f7628b3e2e40aa44143470ad38576f7874c7ff
2015-04-10 14:00:17 -07:00
Ashutosh Joshi
c5d8d88b12 Merge "Adding a feature string for high capability sensors." 2015-04-10 18:36:43 +00:00
Ashutosh Joshi
eae371bf6f Adding a feature string for high capability sensors.
Adding a feature string for higher capability sensor platforms.
The string is supposed to signal the availability of lower power and
higher accuracy sensor processing on a supporting device.

Change-Id: I8093065278589fc9cc41fcc7f9b898c7eae20dff
2015-04-10 09:33:16 -07:00
Clara Bayarri
d5bf3ed9b0 Show and trigger activities that implement Text Processing actions
This CL adds the Activities that support Intent.ACTION_PROCESS_TEXT
to the Text Selection Action Mode in Editor, and triggers an intent
with the currently selected text when they are selected.

It also adds the required mechanism to allow a View to request an
intent to be started, and return the activity result back to it.

Change-Id: I62ec618010edf01da41338c8c1a7dd4292a15227
2015-04-10 16:28:35 +01:00
Jeff Sharkey
b9f3674c11 Support moving apps to expanded storage.
Start deriving the data path for apps based on the volume UUID where
the app lives.  This path is used for all higher-level APIs, giving
us a clean place to switch app storage.

When parsing a package, keep track of the volume UUID where it lives
and update PackageSetting once installed.  For now continue treating
moves as installs, but we'll eventually clean this up to avoid the
additional dexopt pass.  Wire up move to use the new installd command
to move private data between devices.

Cache LoadedApk only for the current user, since otherwise the data
dir points at the wrong path.

Bug: 19993667
Change-Id: I53336e3b147d5fd3130e6800869af172b628da37
2015-04-10 00:24:03 -07:00
Fabrice Di Meglio
e48c137acd Add IntentFilter auto verification - part 5
- optimize IntentFilter verification: dont do stuff we dont want
if we dont need to do them.

- improve IntentFilter candidates filtering and also improve
at the same time fix for bug #20128771: we can return the candidates
list rigth the way if the Intent is not related to a Web data URI and
include the "undefined verification state" ones if the first filtering
pass does not leave any.

Change-Id: I19f5c060f58b93530e37b4425d19ed23d2a0f4c0
2015-04-09 16:19:44 -07:00
Fabrice Di Meglio
7d014cec63 Add IntentFilter auto verification - part 4
- add domain verification priming at boot when the PackageManagerService
singleton is created. This will mainly set the domain verification status
to INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS for all Apps that
have an IntentFilter with action VIEW and data scheme HTTP or HTTPS.

- also optimize Intent resolution by taking into account Browser Apps

Change-Id: Id8e66c9759a99e79b07051595ca89a168dc5ae0e
2015-04-08 19:24:15 -07:00
Svetoslav
cd890311fb Merge "Apps can request permissions only on platforms that have runtime permissions." 2015-04-08 19:28:02 +00:00
Fabrice Di Meglio
0788595e0c Add IntentFilter auto verification - part 3
- add private API PackageManager.getAllIntentFilters(String)
for getting all IntentFilters from a given package
- update IntentFilterVerificationInfo to use an ArrayList<String>
for domains instead of a String[]
- if you make an App a default domain handler then make the
others as non default
- create an IntentVerificationInfo even if the App IntentFilters
do not need to be verified. This would be done only if the App
has some domain URLs defined and would allow to make it the
default handler for a domain
- a few code optimizations here and there

Change-Id: I4535372a0bb1a2c8e662e1485be8ca700003e9b3
2015-04-07 17:13:32 -07:00
Svetoslav
96a77167c8 Apps can request permissions only on platforms that have runtime permissions.
Change-Id: Id0e53c37c9d472287f5bd6a610d446aef6b695b9
2015-04-07 17:12:00 -07:00
Narayan Kamath
9d1878674c Merge "Don't set userSetLocale from Configuration.setLocale." 2015-04-07 13:08:18 +00:00
Clara Bayarri
9b8178719b Merge "Create the Process Text Intent Action and Extra" 2015-04-07 12:52:31 +00:00
Clara Bayarri
0a26157a9f Create the Process Text Intent Action and Extra
Change-Id: I33e30324970e91b04fcc233b91c9d43580c446fc
2015-04-07 13:49:54 +01:00
Benjamin Franz
39fb7fd730 Allow silent package install for device owner.
Allow the device owner to silently install and remove packages using the
PackageInstaller APIs. Show notifications to the user after the
installation / deletion was successful.

Bug: 19422461
Change-Id: I0506e18c510efd9d04c4aea9b60a37456e689615
2015-04-07 11:02:46 +01:00