232 Commits

Author SHA1 Message Date
Dianne Hackborn
e639da7baa New development permissions.
These are permissions that an application can request, but won't
normally be granted.  To have the permission granted, the user
must explicitly do so through a new "adb shell pm grant" command.

I put these permissions in the "development tools" permission
group.  Looking at the stuff there, I think all of the permissions
we already had in that group should be turned to development
permissions; I don't think any of them are protecting public APIs,
and they are really not things normal applications should use.

The support this, the protectionLevel of a permission has been
modified to consist of a base protection type with additional
flags.  The signatureOrSystem permission has thus been converted
to a signature base type with a new "system" flag; you can use
"system" and/or "dangerous" flags with signature permissions as
desired.

The permissions UI has been updated to understand these new types
of permissions and know when to display them.  Along with doing
that, it also now shows you which permissions are new when updating
an existing application.

This also starts laying the ground-work for "optional" permissions
(which development permissions are a certain specialized form of).
Completing that work requires some more features in the package
manager to understand generic optional permissions (having a
facility to not apply them when installing), along with the
appropriate UI for the app and user to manage those permissions.

Change-Id: I6571785c6bb5f6b291862b7a9be584885f88f3a5
2012-02-23 16:39:15 -08:00
Amith Yamasani
67cf7d314b Fix Power Control widget
Some changes in AppWidgetService were interfering with widget permissions.

Added some hidden methods in Context to communicate the requesting user
information instead of using the calling uid.

Bug: 6019296
Change-Id: I5e519fd3fbbfa5b3fcc5c297b729c671dac8e7c7
2012-02-16 15:03:42 -08:00
Amith Yamasani
37ce3a8af6 Multi-user - wallpaper service
- Allow each user to have their own wallpaper (live or static).
- Migrate old wallpaper on upgrade.
- Update SystemBackupAgent to backup/restore from primary user's
  new wallpaper directory.

Reduce dependency on Binder.getOrigCallingUser() by passing the
userId for bindService.

Change-Id: I19c8c3296d3d2efa7f28f951d4b84407489e2166
2012-02-10 14:34:07 -08:00
Jeff Brown
4c1241df8f Rename CancellationSignal using preferred spelling.
Bug: 5943637
Change-Id: I12a339f285f4db58e79acb5fd8ec2fc1acda5265
2012-02-02 18:02:16 -08:00
Jeff Brown
75ea64fc54 Implement a cancelation mechanism for queries.
Added new API to enable cancelation of SQLite and content provider
queries by means of a CancelationSignal object.  The application
creates a CancelationSignal object and passes it as an argument
to the query.  The cancelation signal can then be used to cancel
the query while it is executing.

If the cancelation signal is raised before the query is executed,
then it is immediately terminated.

Change-Id: If2c76e9a7e56ea5e98768b6d4f225f0a1ca61c61
2012-01-27 17:33:21 -08:00
David Hu
0df0ed5814 Merge "BandwidthTestRunner" 2012-01-05 14:39:45 -08:00
Joe Fernandez
3aef8e1d1b docs: Add developer guide cross-references, Project ACRE, round 4
Change-Id: I1b43414aaec8ea217b39a0d780c80a25409d0991
2011-12-22 15:08:23 -08:00
David Hu
8cc9a8e132 BandwidthTestRunner
Added BandwidthTest annotation and BandwidthTestRunner to start
and stop the network traffic profiler

Change-Id: Id29ac21ab99ff36bd864121276db59b61eb6e154
2011-12-14 22:43:58 -08:00
Jeff Brown
d2183654e0 Fix ownership of CursorWindows across processes.
Bug: 5332296

Ensure that there is always an owner for each CursorWindow
and that references to each window are acquired/released
appropriately at all times.

Added synchronization to CursorToBulkCursorAdaptor to
prevent the underlying Cursor and CursorWindow from being
remotely accessed in ways that might violate invariants,
resulting in leaks or other problems.

Ensured that CursorToBulkCursorAdaptor promptly releases
its references to the Cursor and CursorWindow when closed
so they don't stick around longer than they should, even
if the remote end hangs onto the IBulkCursor for some reason.

CursorWindow respects Parcelable.FLAG_WRITE_RETURN_VALUE
as an indication that one reference to the CursorWindow is
being released.  Correspondingly, CursorToBulkCursorAdaptor
acquires a reference to the CursorWindow before returning
it to the caller.  This change also prevents races from
resulting in the transfer of an invalid CursorWindow over
the wire.

Ensured that BulkCursorToCursorAdaptor promptly releases
its reference to the IBulkCursor when closed and throws
on attempts to access the cursor while closed.

Modified ContentProviderNative to handle both parts of
the wrapping and unwrapping of Cursors into IBulkCursors.
This makes it a lot easier to ensure that the right
things happen on both ends.  Also, it turns out that
the only caller of IContentProvider.bulkQuery was
ContentProviderNative itself so there was no need
to support bulkQuery on ContentProviderProxy and it was
just getting in the way.

Implement CloseGuard on CursorWindow.

Change-Id: Ib3c8305d3cc62322f38a06698d404a2989bb6ef9
2011-10-09 22:10:36 -07:00
Kenny Root
05ca4c9064 Allow non-required package verifiers
* Verifiers can be specified in the AndroidManifest.xml

* Those verifiers can respond to the new Intent action

* PackageManager API for those verifiers: verifyPendingInstall

Change-Id: I4892bce2e6984871e6e93c60a1ca0dae145f5df5
2011-09-23 16:03:03 -07:00
Kenny Root
0d3647dc00 am 9c711282: Merge "Unhide new PackageManager APIs for API 14" into ics-factoryrom
* commit '9c711282ad234e104c34eb4408d85fc1bb149ded':
  Unhide new PackageManager APIs for API 14
2011-09-21 18:56:52 -07:00
Kenny Root
3a9b5fbb97 Unhide new PackageManager APIs for API 14
Change-Id: I83110285ccee39a4cd872a1c2af8357f541833d4
2011-09-20 14:35:10 -07:00
David Hu
97567340a4 Merge "Return the bundle object" 2011-09-19 12:11:11 -07:00
David Hu
cbc584d7eb Return the bundle object
Added the ability for the test runner to return the bundle object
so the tests can get access to input arguments

Change-Id: I73a704bb2279238bd91a376aacecbe5f607af649
2011-09-19 11:33:45 -07:00
Kenny Root
0aaa0d9317 Add verifier device identity
This adds a special device identifier that is usable only for device
validation. The user will be presented with this number encoded in
easily-transcribable Base32 in the Developer options of Settings.

Change-Id: I4843f55ee90d689a51d0269b22454ca04c1be7ec
2011-09-13 16:02:43 -07:00
Jesse Wilson
c69efa5efc Remove frameworks' reference to an obsolete Bouncycastle keystore file.
Without this, some SSL code fails with an exception:
java.io.FileNotFoundException: /system/etc/security/cacerts.bks: open failed: ENOENT (No such file or directory)
at libcore.io.IoBridge.open(IoBridge.java:410)
at java.io.FileInputStream.<init>(FileInputStream.java:78)
at java.io.FileInputStream.<init>(FileInputStream.java:105)
at org.apache.harmony.xnet.provider.jsse.DefaultSSLContextImpl.getTrustManagers(DefaultSSLContextImpl.java:115)
at org.apache.harmony.xnet.provider.jsse.SSLContextImpl.<init>(SSLContextImpl.java:71)
at org.apache.harmony.xnet.provider.jsse.OpenSSLContextImpl.<init>(OpenSSLContextImpl.java:34)
at org.apache.harmony.xnet.provider.jsse.DefaultSSLContextImpl.<init>(DefaultSSLContextImpl.java:59)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1319)
at java.security.Provider.newInstance(Provider.java:989)
... 15 more
Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
at libcore.io.Posix.open(Native Method)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:98)
at libcore.io.IoBridge.open(IoBridge.java:393)
... 24 more

Change-Id: I91de30746c1355ff9e0c2a9479392a50fe45aa23
2011-09-07 14:52:12 -04:00
Kenny Root
5ab2157bf1 Infrastructure to support package verifier
Allow a package verifier to approve or disapprove of a package being
installed.

Change-Id: Ibfea0f2b1aaa4ab1589a4e59f96144702b9bf94b
2011-08-15 17:26:31 -07:00
Rodrigo Damazio Bovendorp
3fe3f7328f Fixing initialization cleanup in activity instrumentation test case
Change-Id: I798fed657ccdc27430edc07d1e911b34c45426b5
2011-08-01 17:10:58 -03:00
Brett Chabot
877d428e39 Test runner cleanup: delete unused old classes.
Change-Id: Iaaabd47d4074f936a811fc1b6575088d70842564
2011-06-01 20:03:39 -07:00
Dianne Hackborn
44bc17c6b5 Rework display size access.
Applications now get the display size from the window manager.  No
behavior should be changed yet, this is just prep for some real
changes.

Change-Id: I2958a6660895c1cba2b670509600014e55ee9273
2011-04-21 15:17:52 -07:00
Amith Yamasani
beb182a494 Merge "Package manager changes to store and update user information." 2011-04-11 12:14:17 -07:00
Amith Yamasani
4b2e934928 Package manager changes to store and update user information.
Some API stubs for managing users and storing their details.
List of users is stored in an xml file.
Each user's properties are stored in a separate xml file.

Some unit tests for modifying the XML files.

Change-Id: If2ce2420723111bd426f6762def3c2afc19a0ae5
2011-04-11 12:12:58 -07:00
Joe Onorato
43a17654cf Remove the deprecated things from Config.java. These haven't been working since before 1.0.
Change-Id: Ic2e8fa68797ea9d486f4117f3d82c98233cdab1e
2011-04-07 19:23:05 -07:00
Brian Carlstrom
08065b9f09 Tracking merge of dalvik-dev to master
git cherry-pick --no-commit  a80febd83c8bf0b6717da2a7136179bdc906a5b7

git cherry-pick --no-commit  5e642b41cf44c5da7afdd95ab3d5e2bdbf7b31dd

git cherry-pick --no-commit  4886db14c9eee4b6fee69bd54c57c5af04709c4c

git cherry-pick --no-commit  560c685e448769904047507b9484ce8111967d7e

git cherry-pick --no-commit  63dde7a2fcfa53dc531558635b64cea613d3cdb4

git cherry-pick --no-commit  74e5cb91060a379d98dd3a333b5f231bfb4f502e

git cherry-pick --no-commit  1cc8c9708b555e2e338b7798d38887a2fefcfea6

git cherry-pick --no-commit  09625a21f5abe0c0db15757f58585d552d62c3d7

git cherry-pick --no-commit  fcb02dfe0f5a2bb7c07e6d6fc69f756a484b5458

git cherry-pick --no-commit  a68cb7fa3ab42854768b8145ff85231663770292

git cherry-pick --no-commit  716beb1c131dd2c6b805d4f681debaa20075010c

git cherry-pick --no-commit  8c29b1097a7afe3a77e27546a56e396f3620a4ec

git cherry-pick --no-commit  9c6a1a55d1c8086c1cc57464eea43725694ff70c

git cherry-pick --no-commit  b14f5ea5c57acdd009ba5b51f1bbe430f3d353b8

Change-Id: I8cc94175441b009e23549762d6baee1dbace4881
2011-04-01 16:00:23 -07:00
Jean-Baptiste Queru
71431bb5ca am 79b66725: am 25be2c72: am e0537f18: Merge "Fix of tearDown() in SingleLaunchActivityTestCase."
* commit '79b66725b7755e403e10a9d073121789f09b1a9e':
  Fix of tearDown() in SingleLaunchActivityTestCase.
2011-02-28 11:05:55 -08:00
Jean-Baptiste Queru
25be2c725e am e0537f18: Merge "Fix of tearDown() in SingleLaunchActivityTestCase."
* commit 'e0537f1859664ba9c9cf87eb9d6dc3c16986dbb8':
  Fix of tearDown() in SingleLaunchActivityTestCase.
2011-02-28 10:15:46 -08:00
Scott Main
7aee61f5a9 docs: fix links to revised fundamentals documents
Change-Id: Ie2a660cce1d00f924c9fde5c6a00776307e5e1c7
2011-02-08 11:37:44 -08:00
Kenny Root
e8a534d8f0 Remove API that snuck into MockPackageManager
We didn't release the get/setPackageObbPath API, but it snuck into
MockPackageManager. However, it is not usable as a developer anyway.
Removing it so it doesn't stay in the API forever.

Cherry-pick from gingerbread

Change-Id: I2083a8f398d983d53661c33270854442e34f9bc9
2011-01-17 13:13:37 -08:00
Kenny Root
849dc24fa6 am 524133cc: Remove API that snuck into MockPackageManager
* commit '524133cc793b5e372cc97c62653281605f57b5b3':
  Remove API that snuck into MockPackageManager
2011-01-17 13:05:24 -08:00
Kenny Root
a1cbb94dbc Revert "Add the {get,set}PackageObbPaths calls to API"
This reverts commit 5d40fe9c6846ba765072e50ed1254293cb9195e4.

Change-Id: Ie41010c92fb860b19a12bcf63f6fe95ffa68da81
2011-01-17 13:00:47 -08:00
Kenny Root
524133cc79 Remove API that snuck into MockPackageManager
We didn't release the get/setPackageObbPath API, but it snuck into
MockPackageManager. However, it is not usable as a developer anyway.
Removing it so it doesn't stay in the API forever.

Change-Id: Ia569754691dc3a9f2672c1f25e4e08d780db6028
2011-01-17 12:40:57 -08:00
Kenny Root
e26aa3f78a am 34d2b41e: Revert "Add the {get,set}PackageObbPaths calls to API"
* commit '34d2b41e48281d1df2c844e004740f008e699093':
  Revert "Add the {get,set}PackageObbPaths calls to API"
2011-01-17 12:23:43 -08:00
Kenny Root
34d2b41e48 Revert "Add the {get,set}PackageObbPaths calls to API"
This reverts commit 6c4d904851772313930f800ac7c323cf90c709bb.

Going with a different tactic that doesn't dump stuff on
PackageManagerService.

Bug: 3214719
Change-Id: I0bbeccf3c21d264deda4256eb53713d2c98284f4
2011-01-17 11:49:22 -08:00
Dianne Hackborn
805fd7ee0e Add API to get path to OBBs.
Also hide the bitmap thumbnail stuff, we can't support it in its
current form.

And fix some bugs with propagating paths to native code.  Yikes!

Change-Id: I13ab37ddbdba5c073489cba5eab035117d3c1574
2011-01-16 18:43:04 -08:00
Kenny Root
5d40fe9c68 Add the {get,set}PackageObbPaths calls to API
Add getPackageObbPaths() and setPackageObbPaths() to the public API.

Bug: 3214719
Change-Id: I8627b5f674a795d5780eb5c08911419110670a41
2011-01-14 12:18:48 -08:00
Kenny Root
470750793b am e8c04db7: Merge "Add the {get,set}PackageObbPaths calls to API" into gingerbread
* commit 'e8c04db71e347396e9537ead7113ba9f46706e44':
  Add the {get,set}PackageObbPaths calls to API
2011-01-12 15:06:51 -08:00
Mikael Andreen
c6bf4075c9 Fix of tearDown() in SingleLaunchActivityTestCase.
Before a suite of SingleLaunchActivityTestCase tests are run,
an activity is started. The activity is supposed to close
when all the tests in the suite have run. The activity is
however finished one test too early. This causes problems
for the last test.

Change-Id: Ie9fb2df350a70f827495a0dc30952e30fbe491e0
2011-01-11 15:27:23 +01:00
Kenny Root
6c4d904851 Add the {get,set}PackageObbPaths calls to API
Add getPackageObbPaths() and setPackageObbPaths() to the public API.

Bug: 3214719
Change-Id: Icb9f2f92f8c59bb3d31317f609854e81abbd1449
2011-01-09 13:20:28 -08:00
Dmitri Plotnikov
ac77f4629c Prevent ActivityTestCase from erasing constants.
If you test case is declaring a non-primitive constant,
this method would clear out the constant between
individual tests.

Change-Id: I570f2bbbbbb0a170bf63b7473b4aaf84869e93e0
2011-01-07 12:06:47 -08:00
Jesse Wilson
f48e94005b Remove an obsolete import for performance tests.
Change-Id: Ifc76ef821f71ea7469b4044b15071f5d2a7418fd
2010-12-21 12:58:40 -08:00
Jesse Wilson
bd1c5da28d Remove unused performance tests.
Change-Id: I5a252e314831716f99ce5fbb32d983c7473ee787
2010-12-21 10:23:28 -08:00
Dianne Hackborn
c91893511d Fix issue #3272082: Contacts: when going back from edit view,
list UI is not ready yet

This involves some reworking of Loaders.

Loaders, in particular CursorLoader, are now expected to retain
their current data after being stopped.  This allows applications
to keep that data across onStop() -> onStart(), so when the user
returns to the app it doesn't have to wait for the data to reload
and thus cause flicker.

This includes various API changes to better reflect the new
semantics, plus a new LoaderCallbacks method to tell the application
when it is actually time to stop their use of a loader's data.

Note this is somewhat half-done, to help checking in the extensive
application changes that are required without causing build breakage.

Change-Id: Ib4b3bf8185a6da46e7f06ca125521d65e2e380a1
2010-12-16 20:09:13 -08:00
Dianne Hackborn
4f3867e3ce Time to remove some old APIs!
Change-Id: I73ca23b0d5c7971a00dfa05357f9b630d9b6ebc8
2010-12-14 22:19:03 -08:00
Dianne Hackborn
621e17de87 Implement issue #3221502: New APIs to support new back stack / task navigation
What this adds:

- A new Intent activity flag to completely replace an existing task.
- A new Intent activity flag to bring the current home task up behind
  a new task being started/brought to the foreground.
- New versions of startActivity() that take an array of Intents to be
  started, allowing applications to start a task in a specific state.
- A public moveTaskToFront() method on ActivityManager, with a new flag
  that allows the caller to have the task moved to the front with the
  current home task immediately behind it.

Change-Id: Ie8028d09acffb5349d98043c67676daba09f75c8
2010-11-22 18:35:55 -08:00
Jean-Baptiste Queru
be4e1c8f6f am 7b76ed69: am e3bef7c4: Merge "Added noop unregisterReceiver to complement existing noop registerReceiver."
* commit '7b76ed693e42caea0c5f1bcbe7059c580e9cb314':
  Added noop unregisterReceiver to complement existing noop registerReceiver.
2010-11-19 16:56:42 -08:00
Jean-Baptiste Queru
7b76ed693e am e3bef7c4: Merge "Added noop unregisterReceiver to complement existing noop registerReceiver."
* commit 'e3bef7c48d7ec13cb8c7c81dba8d775377e69bed':
  Added noop unregisterReceiver to complement existing noop registerReceiver.
2010-11-19 15:43:28 -08:00
Dianne Hackborn
880119bf43 Implement issue #2367442: Please add API for manipulating installer
package names

Change-Id: I0563e896a47ae1a6e77aebc2d624fb1bde52ffbc
2010-11-19 13:21:08 -08:00
Brian Muramatsu
48983959a3 Fix NPE in InstrumentationTestRunner
This fixes a problem where the test runner would die when a
test case has tests that are not methods of the test class.

Change-Id: I5adc464bb4a0c8d282428895e422a47dcb6bfe1f
2010-11-17 12:28:51 -08:00
Jack Wang
3fc03e619f Added RepetitiveTest annotation and test runner support
Change-Id: I7bf0871ede6dd69512c6b6ea3484693ba5b78e89
2010-10-19 18:23:18 -07:00
Jonas Schwertfeger
d672475753 Added noop unregisterReceiver to complement existing noop registerReceiver.
Without this addition, code that is being tested using an isolated context
can cause an exception if it unregisters a previously registered broadcast
receiver.  This is because the isolated context never actually registered
the receiver in the first place.  The fix is to make sure the isolated
context is consistent in ignoring both recevier registration and
unregistration calls.

Change-Id: Ie0ba6f4bb10f5248704327a0ffc8e37ee8b71ae2
2010-09-30 14:04:09 +02:00