summaryrefslogtreecommitdiffstats
path: root/core/tests
Commit message (Collapse)AuthorAgeFilesLines
* Apply MMAC changes from master.Stephen Smalley2013-07-1847-60/+1309
| | | | Change-Id: I01f2a9084dfe7886087b1497070b0d7f2ad8477e
* Add seinfo parsing to PackageManagerService.rpcraig2013-07-188-0/+324
| | | | | | | | | | | | | | | | | This patch set allows the PMS to parse the mac_permissions.xml file which contains the seinfo values. Each package that is installed on the device will be assigned an seinfo value based on policy. This seinfo value will help label the app process and data directory. Modifications also include, adjustments to ApplicationInfo.java to store the seinfo tag per package, adjustments to installd to communicate the seinfo tag to libselinux, and finally a set of unit tests. Signed-off-by: rpcraig <rpcraig@tycho.ncsc.mil> Change-Id: I61ad1ea12fb6a9a6d0b108ec163bc4bf4c954b58
* Correct executable bit for source filesKenny Root2013-04-134-0/+0
| | | | | | | | | | Many media files and source code files were marked as executable in Git. Remove those. Also a shell script and python script were not marked as executable. Change-Id: Ieb51bafb46c895a21d2e83696f5a901ba752b2c5 Signed-off-by: Chirayu Desai <cdesai@cyanogenmod.org>
* Fix WiFi test:Xia Wang2013-01-304-72/+30
| | | | | | | | | | -- In environment where there are too many APs, sometimes, the AP will not show in the scan list. Part of the reason is due to the change that the scanning on each frequency is shortened to save power. to avoid that, change the test to connect without scanning. -- Increase the timer to wait for WiFi to be connected Change-Id: If1a72607b3c7ad13dbbf788607665986eaf5b6b3
* Utility to format human-friendly durations.Jeff Sharkey2012-11-131-0/+48
| | | | | Bug: 6777872 Change-Id: Ie7ebcb456306f4f88b4707030dd7beda3fc90368
* Fix WiFi stress testXia Wang2012-10-313-23/+31
| | | | | | | | | | | | - Disable lock screen after screen is turned on. Without disabling lock screen, device will screen off automatically after around 10 seconds - Add a longer timer for ping test when the data traffic is stalled. For a short ping test, it is hard to tell whether it is a transient issue or a real issue. bug# 7426823 Change-Id: If1a560e11dcdff519562bb2a22651d1fd523b5a2
* Robustly add symlink and add for non-primary usersKenny Root2012-10-182-13/+16
| | | | | | | | | | | | | | | | Amazingly, some apps still don't use the nativeLibraryPath. So add a lib symlink for non-primary users to fix that. Also, there was an error when the symlink existed that it would give up. This shouldn't really happen, but in that case, just remove it and create a new one to be safe. Also, move the downgrade code to the appropriate place. This downgrade case triggered the above symlink existing bug. Bug: 7318366 Bug: 7371571 Change-Id: Ia175b36d98f00bdc2f2433b909aafd524eb34d15
* Fix connectivity manager test for tablet with data connection, multi-user ↵Xia Wang2012-10-171-1/+2
| | | | | | | | support bug#7366674 Change-Id: Ibbb4becebfc833529e85d8a311366586c5ba54ee
* Fix build, only invalidate when creating user.Jeff Sharkey2012-10-101-0/+4
| | | | | Bug: 7276595 Change-Id: I322f9d76a682b2d45fc556e35381442458168fe5
* Make RegisteredServicesCache multi-user aware.Jeff Sharkey2012-10-091-7/+9
| | | | | | | | | | | | | | | | | | RegisteredServicesCache is used to track account authenticators and sync adapters, which can vary based on user. This change requires that callers now provide a userId when making cache requests. It continues persisting into a single file for now, which is keyed based on UID. It now watches for package broadcasts from all users, and scans packages on-demand. It changes cache callers to provide a relevant userId, and evicts cache entries when users are stopped. Changes SyncManager to only work with accounts from running users, only kicking off pending syncs once a user is started. Bug: 7276595, 7316150 Change-Id: I79466a84aa69aa37e4bd9691c5d6221d3662ff29
* Merge "Pass the originating uid to the package verifier" into jb-mr1-devBen Gruver2012-09-281-25/+55
|\
| * Pass the originating uid to the package verifierBen Gruver2012-09-271-25/+55
| | | | | | | | | | Bug: 6923241 Change-Id: I85a3e0d53b469543cb0551d3a440d2663b5d0697
* | Migrate more Secure settings to Global.Jeff Sharkey2012-09-271-8/+8
|/ | | | | | | | Migrate networking, storage, battery, DropBox, and PackageManager related Secure settings to Global table. Bug: 7232014, 7231331, 7231198 Change-Id: I772c2a9586a2f708c9db95622477f235064b8f4d
* Fix Wifi Stress test after wifi settings are moved to Settings.globalXia Wang2012-09-261-7/+8
| | | | Change-Id: I823e99b39bc340683b686bb0dd43a473865656f0
* Handle multi-user mountObb() requests.Jeff Sharkey2012-09-254-285/+0
| | | | | | | | | | | | | | | | | | | | | Since emulated external storage paths differ based on execution context, carefully fix up paths for various use-cases: 1. When sending paths to DefaultContainerService, always scope OBB paths as belonging to USER_OWNER. 2. When sending paths to vold, always build emulated storage paths visible to root. 3. Always use the original untouched path when talking with apps. Mount OBB containers using shared app GID, so that an app can read the mount point across users. Handle legacy paths like "/sdcard" by resolving the canonical path before sending to MountService. Move tests to servicestests, and add tests for new path generation logic. Bug: 7212801 Change-Id: I078c52879cd08d9c8a52cc8c83ac7ced1e8035e7
* Fix issue #7214090: Need to be able to post notifications to all usersDianne Hackborn2012-09-241-2/+3
| | | | | | | | | | | | | | | Also fix a bunch of system services that should be doing this. And while doing that, found I needed to fix PendingIntent to evaluate USER_CURRENT at the point of sending, not creation. Note that this may end up with us having some notification shown to non-primary users that lead to settings UI that should only be for the primary user (such as the vpn notification). I'm not sure what to do about this, maybe we need a different UI to come up there or something, but showing the actual notification for those users at least seems less broken than not telling them at all. Change-Id: Iffc51e2d7c847e3d05064d292ab93937646a1ab7
* Merge "fix broken user build: do not throw an error when in user flavor." ↵Tsu Chiang Chuang2012-09-201-3/+1
|\ | | | | | | into jb-mr1-dev
| * fix broken user build: do not throw an error when in user flavor.Tsu Chiang Chuang2012-09-201-3/+1
| | | | | | | | Change-Id: I43d210f1b342707acbdb79f9ef6c924b43684dd3
* | Merge "Change the way how airplane mode is set, since it has been moved to ↵Tsu Chiang Chuang2012-09-203-3/+12
|\ \ | |/ | | | | Settings.Global namespace. Also run as a system app, since only system apps can change airplane mode." into jb-mr1-dev
| * Change the way how airplane mode is set, since it has been moved toTsu Chiang Chuang2012-09-203-3/+12
| | | | | | | | | | | | | | Settings.Global namespace. Also run as a system app, since only system apps can change airplane mode. Change-Id: I317f9c94361cfca182356fd292e5b0b41553d1ab
* | Migrate network stats from removed users.Jeff Sharkey2012-09-191-1/+1
|/ | | | | | | | | When a user is removed, migrate all network stats belonging to that user into special UID_REMOVED bucket. Also removes those stats from kernel to avoid double-counting if another user is created. Bug: 7194784 Change-Id: I03f1d660fe3754566326b7749cae8068fc224ea9
* Code cleanup for X509TrustManagerExtensionsTest.javaGeremy Condra2012-09-181-3/+19
| | | | Change-Id: I85584f7a9dbc726be811f783d125efcf70c9f6af
* Fix bad isinstance check in X509TrustManagerExtensions and add test.Geremy Condra2012-09-181-0/+56
| | | | Change-Id: I333957186655b2543a637dafa8c51b0bba9d4dfb
* Per-user content observer APIsChristopher Tate2012-09-171-5/+13
| | | | | | | | | | | | | | | | | | | | Callers with INTERACT_ACROSS_USERS_FULL permission can now observe content for a given user's view (and can notify content uri changes targeted to a specific user). An observer watching for UserHandle.USER_ALL will see all notifications for the given uri across all users; similarly, a notifier who specifies USER_ALL will broadcast the change to all observers across all users. The API handles both USER_ALL or USER_CURRENT, and explicitly forbids any other "pseudouser" designations. This CL also revs the Settings provider to notify with USER_ALL for changes to global settings, and with only the affected user's handle for all other changes. Bug 7122169 Change-Id: I94248b11aa91d1beb0a36432e82fe5725bb1264f
* Add test for failed dexoptKenny Root2012-09-167-4/+82
| | | | | Bug: 7010829 Change-Id: Ie0616ff2c3739ad73733857de6d04243b2be2fca
* Send more information to verifiersrich cannings2012-09-141-0/+25
| | | | | | | | Send package name, version code and the uid of the application requesting the install to package verifiers. Bug: 7164155 Change-Id: I2464dc5d4551f60b4f38f7982495a8920c83e1cd
* Fix Settings writes to a different userChristopher Tate2012-09-132-0/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Oops. Stacked bugs: first, the desired user handle was not properly being passed from the call() entry point to the database operations; then on top of that, the client-side cache management was still looking in the local user's cache for the data, so a request to read a different user's settings would return the local user's instead if that key was already known to the local user's cache. Reads and writes of a different user's settings are now uncached, so they're relatively much slower. They're rare, however, so this is not something to worry about unless we encounter a real world case where it's a significant factor. This CL also adds a bit of cross-user settings read/write testing to the existing provider suite. These new tests caught both the known wrong-user-write bug and discovered the client-side cache bug, so yay. Finally, the existing wholesale mutual-exclusion approach would deadlock in certain circumstances due to the fact that the settings database creation code might have to call out to the Package Manager while populating the bookmark/shortcut table, and the Package Manager would then call back into the settings provider in the course of handling that request. The synchronization regime has been significantly tightened up now: now the database code [which is known to deal with concurrency itself] is allowed to cope with multiple parallel openers of the same db; this allows the settings provider to avoid calling out to other parts of the system even implicitly while its internal lock is held. Change-Id: Ib77d445b4a2ec658cc5c210830f6977c981f87ed
* Merge "Update airplane-mode manipulation for the new Settings namespace" ↵Christopher Tate2012-09-103-10/+12
|\ | | | | | | into jb-mr1-dev
| * Update airplane-mode manipulation for the new Settings namespaceChristopher Tate2012-09-103-10/+12
| | | | | | | | | | | | | | | | | | | | Quick Settings and global actions (aka longpress-Power) toggles are included in this CL. The Settings app manipulations are updated in a different CL because that's a different git package. Bug 7132230 Change-Id: I50838f5e8d7b25a750d2bcae90bf384b09816dbb
* | Move native libraries to /data/app-libKenny Root2012-09-101-1/+3
|/ | | | | | | | Instead of unpacking libraries into /data/data/<appname>/lib, unpack them into /data/app-lib so that multi-user applications can use the same libraries. Change-Id: I636dafb5a9eea8cf5a41f1360698e7695455f385
* Add a native library to test APKsKenny Root2012-09-093-0/+85
| | | | | | | | | | In order to make sure we have unpacking and deletion working, add a fake JNI library to every APK. This can be expanded in the future to make sure replacement is working correctly as well. Change-Id: I1ad04c61df9518429aa17795b8a9d3608791cd8e
* Add more testing for native librariesKenny Root2012-09-091-69/+189
| | | | | | | | | | | Make sure that native library paths have the correct permissions and owners. Also make it easier to do a "String#startsWith" test so we can get better errors when it fails. Change the observer to have more sane semantics with a CountDownLatch instead of weird synchronization on a local variable. Change-Id: I2437e5ea886d6e6cb8b4edeab80d6053b79857d4
* Throw ALL the exceptions! (in the PackageManagerTests)Kenny Root2012-09-091-398/+493
| | | | | | | | | | | | | Change all the test method headers to throw Exception so we don't have to try to catch anything during the tests. Catching an exception might mask an error during the tests. Also fix a lot of formatting errors that have built up over the years. This includes 3-space indentations instead of 4-space, missing spaces between braces and parens, too-long lines, wrapping when it isn't needed, etc. Change-Id: Ifccea5f0706b6f9235f37974a5f80bee76c654dd
* installd: fix forward locking symlinkNick Kralevich2012-09-071-0/+8
| | | | | | | | installd was not creating a compatibility symlink when installing a forward locked application. Fix. Bug: 7121527 Change-Id: Ied507ab2b759d8658af563e6ac8f0dbb0d286cce
* Remove Binder.getOrigCallingUid().Dianne Hackborn2012-08-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Replaced all remaining places that used it with explicit user specification. While doing this, I ran into stuff that was creating PendingIntent objects (that now need to specify the explicit user they are for), which are also posting notifications... but have no way to specify the user for the notification. So the notification manager in the system process now also gets a formal concept of a user associated with the notification, which is passed in to all the necessary aidl calls. I also removed the old deprecated aidl interface for posting/cancelling notifications, since we now always need a user supplied. There is more work that needs to be done here, though. For example I think we need to be able to specify USER_ALL for a notification that should be shown to all users (such as low storage or low battery). Along with that, the PendingIntent creation needs to be tweaked to be able to handle USER_CURRENT by evaluating the user at the point the pending intent is sent. That's for another change, however. Change-Id: I468e14dce8def0e13e0870571e7c31ed32b6310c
* Improve multi-user broadcasts.Dianne Hackborn2012-08-301-7/+8
| | | | | | | | | | | | | | | | | | | You can now use ALL and CURRENT when sending broadcasts, to specify where the broadcast goes. Sticky broadcasts are now correctly separated per user, and registered receivers are filtered based on the requested target user. New Context APIs for more kinds of sending broadcasts as users. Updating a bunch of system code that sends broadcasts to explicitly specify which user the broadcast goes to. Made a single version of the code for interpreting the requested target user ID that all entries to activity manager (start activity, send broadcast, start service) use. Change-Id: Ie29f02dd5242ef8c8fa56c54593a315cd2574e1c
* Keep track of whether an app is installed for each user.Dianne Hackborn2012-08-241-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This add a new per-user state for an app, indicating whether it is installed for that user. All system apps are always installed for all users (we still use disable to "uninstall" them). Now when you call into the package manager to install an app, it will only install the app for that user unless you supply a flag saying to install for all users. Only being installed for the user is just the normal install state, but all other users have marked in their state for that app that it is not installed. When you call the package manager APIs for information about apps, uninstalled apps are treated as really being not visible (somewhat more-so than disabled apps), unless you use the GET_UNINSTALLED_PACKAGES flag. If another user calls to install an app that is already installed, just not for them, then the normal install process takes place but in addition that user's installed state is toggled on. The package manager will not send PACKAGE_ADDED, PACKAGE_REMOVED, PACKAGE_REPLACED etc broadcasts to users who don't have a package installed or not being involved in a change in the install state. There are a few things that are not quite right with this -- for example if you go through a full install (with a new apk) of an app for one user who doesn't have it already installed, you will still get the PACKAGED_REPLACED messages even though this is technically the first install for your user. I'm not sure how much of an issue this is. When you call the existing API to uninstall an app, this toggles the installed state of the app for that user to be off. Only if that is the last user user that has the app uinstalled will it actually be removed from the device. Again there is a new flag you can pass in to force the app to be uninstalled for all users. Also fixed issues with cleaning external storage of apps, which was not dealing with multiple users. We now keep track of cleaning each user for each package. Change-Id: I00e66452b149defc08c5e0183fa673f532465ed5
* Improve multi-user app management.Dianne Hackborn2012-08-211-1/+1
| | | | | | | Introduce API to get per-user storage information, keep track of services associated with users, and various small cleanup. Change-Id: I5d4e784e7ff3cccfed627d66a090d2f464202634
* Pass URLs to package verifiersrich cannings2012-08-201-0/+171
| | | | | | | | This change passes the originating URL and accompanied referrer to package verifiers, when available. Bug: 6544677 Change-Id: I9ebc71bc13f549bd88267e444816151a99bda000
* am 050c87f8: am a950daf5: Merge changes Ieb566a2a,I953057cdKenny Root2012-08-161-63/+1
|\ | | | | | | | | | | * commit '050c87f87e2a48c7bc90f5b15fb6e4e37e667286': Use Libcore's stat instead of FileUtils#getFileStatus Use Libcore.os.stat instead of FileUtils
| * am a950daf5: Merge changes Ieb566a2a,I953057cdKenny Root2012-08-161-63/+1
| |\ | | | | | | | | | | | | | | | * commit 'a950daf5c14a0009c2c62e9c3e0e8d51eb0cf7d9': Use Libcore's stat instead of FileUtils#getFileStatus Use Libcore.os.stat instead of FileUtils
| | * Use Libcore's stat instead of FileUtils#getFileStatusKenny Root2012-08-161-63/+1
| | | | | | | | | | | | | | | | | | | | | | | | Remove the last user of FileUtils#getFileStatus and move it to Libcore.os.stat instead. Then we can remove the JNI code that does the equivalent of a stat. Change-Id: Ieb566a2a8a17c2dd0150724b4eb3ac1cc41c823d
| | * Create telephony-common and mms-common - DO NOT MERGEWink Saville2012-07-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These have been created to reduce the size and complexity of frameworks/base. mms-common was created by moving all of frameworks/base/core/java/com/google/android/mms to: frameworks/opt/mms telephony-common was created by moving some of frameworks/base/telephony to: frameworks/opt/telephony Change-Id: If6cb3c6ff952767fc10210f923dc0e4b343cd4ad
* | | Rename UserId to UserHandle.Dianne Hackborn2012-08-162-7/+7
| | | | | | | | | | | | | | | | | | This is the start of turning this into a formal public API. Change-Id: I5786d2c320f1de41a06ed5d0f65adb68967287a0
* | | Power manager rewrite.Jeff Brown2012-08-152-9/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The major goal of this rewrite is to make it easier to implement power management policies correctly. According, the new implementation primarily uses state-based rather than event-based triggers for applying changes to the current power state. For example, when an application requests that the proximity sensor be used to manage the screen state (by way of a wake lock), the power manager makes note of the fact that the set of wake locks changed. Then it executes a common update function that recalculates the entire state, first looking at wake locks, then considering user activity, and eventually determining whether the screen should be turned on or off. At this point it may make a request to a component called the DisplayPowerController to asynchronously update the display's powe state. Likewise, DisplayPowerController makes note of the updated power request and schedules its own update function to figure out what needs to be changed. The big benefit of this approach is that it's easy to mutate multiple properties of the power state simultaneously then apply their joint effects together all at once. Transitions between states are detected and resolved by the update in a consistent manner. The new power manager service has is implemented as a set of loosely coupled components. For the most part, information only flows one way through these components (by issuing a request to that component) although some components support sending a message back to indicate when the work has been completed. For example, the DisplayPowerController posts a callback runnable asynchronously to tell the PowerManagerService when the display is ready. An important feature of this approach is that each component neatly encapsulates its state and maintains its own invariants. Moreover, we do not need to worry about deadlocks or awkward mutual exclusion semantics because most of the requests are asynchronous. The benefits of this design are especially apparent in the implementation of the screen on / off and brightness control animations which are able to take advantage of framework features like properties, ObjectAnimator and Choreographer. The screen on / off animation is now the responsibility of the power manager (instead of surface flinger). This change makes it much easier to ensure that the animation is properly coordinated with other power state changes and eliminates the cause of race conditions in the older implementation. The because of the userActivity() function has been changed so that it never wakes the device from sleep. This change removes ambiguity around forcing or disabling user activity for various purposes. To wake the device, use wakeUp(). To put it to sleep, use goToSleep(). Simple. The power manager service interface and API has been significantly simplified and consolidated. Also fixed some inconsistencies related to how the minimum and maximum screen brightness setting was presented in brightness control widgets and enforced behind the scenes. At present the following features are implemented: - Wake locks. - User activity. - Wake up / go to sleep. - Power state broadcasts. - Battery stats and event log notifications. - Dreams. - Proximity screen off. - Animated screen on / off transitions. - Auto-dimming. - Auto-brightness control for the screen backlight with different timeouts for ramping up versus ramping down. - Auto-on when plugged or unplugged. - Stay on when plugged. - Device administration maximum user activity timeout. - Application controlled brightness via window manager. The following features are not yet implemented: - Reduced user activity timeout for the key guard. - Reduced user activity timeout for the phone application. - Coordinating screen on barriers with the window manager. - Preventing auto-rotation during power state changes. - Auto-brightness adjustment setting (feature was disabled in previous version of the power manager service pending an improved UI design so leaving it out for now). - Interpolated brightness control (a proposed new scheme for more compactly specifying auto-brightness levels in config.xml). - Button / keyboard backlight control. - Change window manager to associated WorkSource with KEEP_SCREEN_ON_FLAG wake lock instead of talking directly to the battery stats service. - Optionally support animating screen brightness when turning on/off instead of playing electron beam animation (config_animateScreenLights). Change-Id: I1d7a52e98f0449f76d70bf421f6a7f245957d1d7
* | | Tests for mapping android name to uidAmith Yamasani2012-08-131-0/+54
| | | | | | | | | | | | | | | | | | This tests some changes made to bionic. Change-Id: I7ff8c7f94f6b4bfff64d4e15d4a1a3516a453180
* | | am 194da0b8: am a39fdd11: Merge "Fix AccountManagerServiceTest" into jb-devKenny Root2012-07-311-0/+4
|\ \ \ | |/ / | | | | | | | | | * commit '194da0b8b368ac61b23870224bc0d449ad465bd4': Fix AccountManagerServiceTest
| * | am a39fdd11: Merge "Fix AccountManagerServiceTest" into jb-devKenny Root2012-07-311-0/+4
| |\ \ | | | | | | | | | | | | | | | | * commit 'a39fdd11e80618acc046fff65b6549b5c8b5aa8d': Fix AccountManagerServiceTest
| | * | Fix AccountManagerServiceTestKenny Root2012-07-311-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The MockAccountAuthenticatorCache needs to implement the new method. Bug: 6820670 Change-Id: I5d1cb3aecec63602ae4541cd01ae8e28c8328e5a
* | | | Merge "Update WifiManager API"Irfan Sheriff2012-07-253-28/+4
|\ \ \ \