Commit Graph

3177 Commits

Author SHA1 Message Date
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
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
Jeff Sharkey
b2b9ab8354 Installing packages to expanded storage.
PackageManager now offers to load/unload packages when expanded
volumes are mounted/unmounted.  Expanded storage volumes are still
treated as FLAG_EXTERNAL_STORAGE from a public API point-of-view,
but this change starts treating the INSTALL_EXTERNAL flag as
exclusively meaning ASEC containers.

Start tracking the UUID of the volume where a package is installed,
giving us a quick way to find relevant packages.  When resolving an
install location, look across all expanded volumes and pick the one
with the largest free space.  When upgrading an existing package,
continue preferring the existing volume.  PackageInstaller now knows
how to stage on these volumes.

Add new movePackage() variant that accepts a target volume UUID
as destination, it will eventually move data too.  Expose this
move command through "pm" command for testing.

Automount expanded volumes when they appear.

Bug: 19993667
Change-Id: I9ca2aa328b9977d34e8b3e153db4bea8b8d6f8e3
2015-04-06 21:17:58 -07:00
Christopher Tate
e012a23556 Back up / restore preferred app configuration
Bug 19848104

Change-Id: I84cdfcc44b48a9732984955d7eedf745b5586bdd
2015-04-06 17:36:25 -07:00
Alan Viverette
863ba4c4bf Merge "Unify drawable caches" 2015-04-06 21:40:45 +00:00
Fabrice Di Meglio
96bba82ac4 Merge "Add private flag PRIVATE_FLAG_HAS_DOMAIN_URLS to ApplicationInfo" 2015-04-03 19:33:41 +00:00
Fabrice Di Meglio
d3d8a32217 Add private flag PRIVATE_FLAG_HAS_DOMAIN_URLS to ApplicationInfo
This is for supporting Settings UX and Domain URLs

- the new PRIVATE_FLAG_HAS_DOMAIN_URLS flag will be set by
generateApplicationInfo() when the Activity is said to have some
IntentFilter with a VIEW action and a http / https data URI

- code cleaning for args passing
- also add a new constant for the MetricsLogger

Change-Id: I5c9762fc2c4a9b46c0e255b9a23bffd70fae40c7
2015-04-03 12:29:53 -07:00
Fyodor Kupolov
c38a54b1f0 am 30c688da: am 031898df: am 3d8b7f4d: Merge "Support for storing OAT files in app directory"
* commit '30c688da8bd2b3320446a06424e1cc57b693522a':
  Support for storing OAT files in app directory
2015-04-03 14:52:14 +00:00
Narayan Kamath
70392818f0 Don't set userSetLocale from Configuration.setLocale.
This seems to have been a mistake : userSetLocale controls whether
a locale is persisted and as written it's too easy to make system wide
locale changes without intending to. Third party apps do not have
sufficient permissions to set global locales anyway, so they won't care
whether it's set or not.

Also, set userSetLocale = true in the LocalePicker.updateLocale internal
API, which is what all platform apps use to set the locale.

In addition, this commit fixes a bug where we were not setting RTL
directionality for the default locale loaded by the activity manager
service.

Change-Id: I2e11ad31e012dfa314ab8d78034f986b49ecae60
2015-04-03 13:24:21 +01:00
Tor Norbye
2a53812cfa Merge "Fix resource type annotations for obtainStyledAttributes" 2015-04-02 23:45:22 +00:00
Tor Norbye
c91531a863 Fix resource type annotations for obtainStyledAttributes
Change-Id: I7681249ff46d687675d0dcd7d4f077646efba687
2015-04-02 14:51:16 -07:00
Alan Viverette
0daa5713ee Merge "Fix issues with theming of preloaded ColorStateLists" 2015-04-02 18:02:04 +00:00
Santos Cordon
885b3ef519 Merge "New generic intent for SIM Activation" 2015-04-01 22:38:26 +00:00
Santos Cordon
15a13781ad New generic intent for SIM Activation
New hidden intents and permissions for a generic SIM-activation
activity.  New activity will handle generic SIM setup requests and then
delegate to the appropriate activation method (OTASP, HFA,
CARRIER_SETUP).

Change-Id: I1b22200544abefe486ec961b67a6e77b4d15aec3
2015-04-01 15:35:55 -07:00
Alan Viverette
4325f8e02a Unify drawable caches
Drawables that don't need a theme are now stored in a separate cache,
rather than storing a separate copy in each theme-specific cache.

Bug: 19992973
Change-Id: I98a67ea480af3d381469303439f4aea44ba1e909
2015-04-01 15:00:30 -07:00
Alan Viverette
e0f95f39c5 Fix issues with theming of preloaded ColorStateLists
Ensures changing configurations mask is propagated to the host drawable
so that it can be properly cleared from cache on configuration changes.
Also fixes constant state handling of the mask in the Inset and Rotate
drawables.

Hides new ColorStateList methods related to theming, since they should
only be used during preloading or internally by framework drawables.

Fixes bug where the cached versions of themeable ColorStateLists were
modified by calling applyTheme() on the host drawable.

Also cleans up some docs and naming in GradientDrawable.

Bug: 19966397
Change-Id: I8c8d3cabbaf94b488c2b8fe9fd423e07d824c19c
2015-04-01 13:10:18 -07:00
Craig Mautner
aa2609aae7 Merge "Revert "Add lockTaskOnLaunch attribute."" 2015-04-01 07:48:08 +00:00
Craig Mautner
6cd6cec2ad Revert "Add lockTaskOnLaunch attribute."
This reverts commit 0fb1cb56ab.
2015-04-01 00:02:12 -07:00
Craig Mautner
e1d6333341 Merge "Add lockTaskOnLaunch attribute." 2015-04-01 01:40:57 +00:00
Craig Mautner
0fb1cb56ab Add lockTaskOnLaunch attribute.
The new AndroidManifest activity attribute, lockTaskOnLaunch attribute
is a boolean that puts the system in lockTask mode when true and if
the activity specified is the root of a privileged task.

This bug also fixes lockTask mode for root activities that finish
themselves. Previously finish was not allowed even if there were
activities left in the task that were still valid.

A NullPointerException for lock task toasts has also been fixed.

Fixes bug 19995702.

Change-Id: Iba6976b1a0cc5a22eb526db66d2e9af66445541f
2015-03-31 18:15:05 -07:00
Fyodor Kupolov
654875fad0 Merge "Support for nested bundles in setApplicationRestrictions" 2015-03-31 22:52:18 +00:00
Narayan Kamath
b12dcfb1b1 Remove org.apache.http.legacy for declared shared lib lists.
We currently unconditionally include this shared library in the
boot classpath, so attempts to compile it will fail resulting in
unnecessary logspam.

Change-Id: Iafe9b2e725e10d939cd39dd4a816a146a6031baf
2015-03-31 08:51:53 +00:00
Fyodor Kupolov
262f9952e6 Support for nested bundles in setApplicationRestrictions
Added new restriction types - bundle and bundle-array.

Modified RestrictionsManager.getManifestRestrictions to support new
hierarchical restrictions.
Added RestrictionsManager.convertRestrictionsToBundle, which enables
programmatic conversion from a list of RestrictionEntries to a Bundle.

Modified read/write methods for application restrictions in UserManagerService.
Added unit tests.

Bug: 19540606
Change-Id: I32b264e04d5d177ea5b4c39a8ace5ee0ce907970
2015-03-30 17:59:07 -07:00
Fyodor Kupolov
b94c1657eb Support for storing OAT files in app directory
In installPackageLI, dexopt is now performed on a staging directory of the app
(dexopt phase 1). For each codepath:
 - /oat/<isa> directory is created
 - dexopt output goes to the newly created directory. Optimized files have
   .odex extension.

Bug: 19550105
Change-Id: Iec59790d97837b78af82b079fd1970de3388c91d
2015-03-30 11:32:56 -07:00
Fabrice Di Meglio
1c1b47125d Add IntentFilter auto verification
The purpose of this feature is to prompt the Disambiguation dialog
to Users as less as possible.

- add the new "autoVerify" property to the IntentFilter class
- add new APIs to PackageManager:
 verifyIntentFilter(int, int, List<String>),
 getIntentVerificationStatus(String, int),
 updateIntentVerificationStatus(String, int, int),
 getIntentFilterVerifications(String)
for supporting IntentFilter verification
- add support for multi-user
- update PackageManager for IntentFilter verification:
basically when we are installing a new package, ask for verification
of all domains from the IntentFilters that have the "autoVerify" to true.
This means that the PackageManager will send a well defined protected
broadcast (with a new INTENT_FILTER_NEEDS_VERIFICATION action) to
an IntentFilter verifier to do the real job of verification.
We are passing in the broadcast Intent all the necessary data for
doing the verification. The PackageManager will receive as response
the result code of the domain verifications and, if needed, the list
of domains that have failed the verification.
- add a new INTENT_FILTER_VERIFICATION_AGENT permission that needs to
be set by an intent filter verifier to be considered as a trustable
party by the PackageManager.
- add also a new BIND_INTENT_FILTER_VERIFIER permission for securing
the binding between the PackageManager and a service doing the
intent filter verifications.
- add ResolveInfo filterNeedsVerification which is a boolean
to knows if the IntentFilter is of a type that needs a verification
(action VIEW, category BROWABLE, HTTP/HTTPS data URI)
- add new "domain-preferred-apps" / "d" dump command for listing the
prefered Apps for all domains
- add new "intent-filter-verifiers" / "ivf" command for listing the
IntentFilterVerifier used
- introduce the IntentVerificationService which is a basic service
for verifying IntentFilters. This service will send HTTPS requests
to the domain declared in the IntentFilter(s) for doing the
verification. This service has a low priority level so that it
can be replaced by a more sophisticated one if needed. This service
is updating the PackageManager intent verification states thru
the updateIntentVerificationStatus(...) API.
- update MockPackageManager

Change-Id: I0bfed193d0bf1f7c7ac79f6c1b160b7ab93b5fb5
2015-03-30 10:58:35 -07:00
Mike Lockwood
549a8cb66d Merge "Make the MIDI Manager optional, enabled by "android.software.midi" feature" 2015-03-28 16:00:21 +00:00
John Spurlock
0f09c3d0b6 Merge "Fix a few found doc problems." 2015-03-27 21:13:22 +00:00
Mike Lockwood
5781cd5b21 Make the MIDI Manager optional, enabled by "android.software.midi" feature
Change-Id: I76d442ea28beea4b9e2876bfef501d8f61403702
2015-03-27 13:23:41 -07:00
Alan Viverette
92d8b334e4 Merge "Clean up lint warnings in Resources" 2015-03-27 17:46:50 +00:00
Alan Viverette
a8636c9414 Clean up lint warnings in Resources
Change-Id: I28dff6f293c5b6c24fc451f282d11d648042d5dd
2015-03-27 10:44:39 -07:00
Alex Klyubin
545ebdefd2 Merge "Unhide public API about cleartext traffic policy." 2015-03-27 15:23:04 +00:00
Flavio Lerda
0f9d0fa125 Merge "Dump sharedLibraryFiles in a readable way." 2015-03-27 13:00:46 +00:00
Alex Klyubin
7cb000ff56 Unhide public API about cleartext traffic policy.
Bug: 19215516
Change-Id: I5da81a36c2f3d0edcf715a5f1b14b0a56c7abc6d
2015-03-26 11:00:04 -07:00
Zoltan Szatmary-Ban
9c5dfa5c79 Data Usage public API
Added new API consisting of android.app.usage.NetworkUsageManager and
android.app.usage.NetworkUsageStats. Through them data usage on a
network interface can be programmatically queried. Both summary and
details are available.

Bug: 19208876
Change-Id: I0e0c4b37ae23ad1e589d4b0c955b93f28ba4333e
2015-03-25 15:53:38 +00:00
Florian Salbrechter
084da9b14e Fixed wrong documentation for BLUETOOTH_SERVICE.
The documentation was incorrectly stating that getSystemService() would
return a BluetoothAdater for Context.BLUETOOTH_SERVICE. The actual
return type is BluetoothManager.
2015-03-25 11:00:55 +00:00
Flavio Lerda
dcc36bf2a4 Dump sharedLibraryFiles in a readable way.
Currently, we are dumping sharedLibraryFiles using the default
toString() method, which for an array returns a not so useful string.
Instead, use Arrays.toString() to get out something that is more useful.

Change-Id: I717e37ab38ed784a327fad59d63536ae2c56576a
2015-03-25 10:22:05 +00:00
Svet Ganov
3695b8a148 First implementation of the grant/revoke UI
Change-Id: Icdb7c822881552b30850697dba709671bf27baa5
2015-03-24 20:15:43 -07:00
John Spurlock
bc4cf00dc5 Fix a few found doc problems.
Change-Id: I98567f4a0fc96f501c00bf361688e2c55232f78d
2015-03-24 21:51:20 -04:00
Dmitriy Ivanov
6a225edccd Merge "Load libraries directly from apk" 2015-03-24 02:57:10 +00:00
Svet Ganov
95c1adea0c Add install option to grant all runtime permissions.
Change-Id: I72ba67a72025646a3d53611621b0353d3a86677c
2015-03-24 01:53:50 +00:00
Svetoslav
c6d1c345f4 Runtime permissions: per user permission tracking.
Before all permissions were granted at install time at once, so the user
was persented with an all or nothing choice. In the new runtime permissions
model all dangarous permissions (nomal are always granted and signature
one are granted if signatures match) are not granted at install time and
the app can request them as necessary at runtime.

Before, all granted permission to an app were identical for all users as
granting is performed at install time. However, the new runtime model
allows the same app running under two different users to have different
runtime permission grants. This change refactors the permissions book
keeping in the package manager to enable per user permission tracking.

The change also adds the app facing APIs for requesting runtime permissions.

Change-Id: Icbf2fc2ced15c42ca206c335996206bd1a4a4be5
2015-03-23 18:50:35 -07:00
Wale Ogunwale
e7666f9e45 Merge "Default ActivityInfo.resizeable to false for all SDK versions." 2015-03-23 22:00:01 +00:00
Alan Viverette
0ef59ac0e5 Update DatePicker and CalendarView to latest Material spec
Bug: 19431364
Change-Id: If364a051a5208d170495de4182e46b32c7560e08
2015-03-23 13:13:25 -07:00
Dmitriy Ivanov
ff193d642e Load libraries directly from apk
Introduced new 'extractNativeLibs' attribute to manifest/application.
 Setting it to false prevents installer from extracting library from apk.

 The default value for extractNativeLibs is true.

Bug: 8076853
Change-Id: I1aa2c039bb2a590ae72f256acc9ba5401c2c59b1
2015-03-21 11:46:11 -07:00
Casey Ho
3daef246bd Merge "Javadoc for ACTION_SCREEN_<ON|OFF> to indicate they cannot be registered in the manifest." 2015-03-20 21:05:04 +00:00
Wale Ogunwale
abfcc22ddf Default ActivityInfo.resizeable to false for all SDK versions.
Bug: 19347452
Bug: 19865400
Change-Id: I2afbcdb9c876c756b14068efc750093057f0b865
2015-03-20 11:32:20 -07:00
Alex Klyubin
160a253d48 am d71f548f: am 4177b8cb: Merge "Add app-level usesCleartextTraffic manifest attribute."
* commit 'd71f548f4803f0696af7de9a2989673cfd83800f':
  Add app-level usesCleartextTraffic manifest attribute.
2015-03-19 16:43:52 +00:00