34 Commits

Author SHA1 Message Date
Michal Karpinski
226940ed85 Modifying Shell to accomodate remote bugreports
After receiving android.intent.action.REMOTE_BUGREPORT_FINISHED
in newly created RemoteBugreportReceiver, Shell will generate URI
to the bugreport zip file and send the broadcast
android.intent.action.REMOTE_BUGREPORT_DISPATCH.

Bug: 26152603
Change-Id: I058d626e021b488c9347b45467a4e3505134e79c
2016-01-07 20:02:13 +00:00
Filip Gruszczynski
1ca4e549d9 Add a permission to shell for running multi window tests.
Bug: 19225708
Change-Id: Ia2de679b133acee992ccdab3bfddbdd9d78f5025
2015-12-22 09:22:34 -08:00
Felipe Leme
d1e0f12979 Handle bugreport screenshots on Shell.
Currently, the bugreport screenshots are taken by dumpstate and passed to
Shell as a path on BUGREPORT_RECEIVED; this change not only delegates the
screenshot taking to Shell, but also allows user to take more
screenshots while the bugreport is being generated.

As a result of this change, the final ACTION_SEND_MULTIPLE intent might
contain multiple screenshot attachments, all of them named
"screenshot-PREFIX-NUMBER.png", where PREFIX is the bugreport
name (either initial date provided by dumpstate or a name entered by the
user) and NUMBER is the sequential number of the screenshot as taken by
the user.

The screenshot is taken using screencap, which not only is simpler than
using Framework APIs, but also faster and less intrusive. The only
drawback is that it might fail if an OEM is not providing screencap; if
that happens in the field, we'll need to add fallback option to do it
using such APIs.

Prior to this change, all work done on BugreportProgressService was
executed in one single thread (through the ServiceHandler class) but the
code was guarded by unnecessary synchronization. Now there is another
thread (ScreenshotHandler) that will be used just for taking the
screenshot (so it doesn't handle the main thread). Despite the addition
of a new thread, the code was simplified to remove most synchronization
locks, excepted for the areas touched by both threads.

Once this change is submitted, the bugreport service will be changed so
it does not ask dumpstate to take a screenshot.

BUG: 26274653
Change-Id: I1df883e3c0ca6e3e3cad2522a6a99585f71abb75
2015-12-21 08:53:00 -08:00
Felipe Leme
69c0292aff Created a new bug report workflow so user can keep track of its progress.
The old workflow was:

1. dumpstate starts.
2. When dumpstate finishes, it sends a BUGREPORT_FINISHED intent.
3. Shell's BugreportReceiver receives the BUGREPORT_FINISHED and issues a
   system notification so user can share the bug report.

The new workflow is:

1. When dumpstate starts, it sends a BUGREPORT_STARTED with its pid and
   the estimated total effort.
2. When Shell's BugreportReceiver receives the BUGREPORT_STARTED, it:
  2.1 Issues a system notification so user can watch the
      progresss (which is 0% initially).
  2.2 Starts a service (BugreportProgressService) responsible for
      polling the dumpstate progress (using system properties and the
      pid) and updating the system notification.
3. As dumpstate progress, it updates the proper system property.
4. When dumpstate finishes, it sends a BUGREPORT_FINISHED event.
5. When Shell's BugreportReceiver receives the BUGREPORT_FINISHED, it:
  5.1 Finishes the service if necessary.
  5.2 Issues a system notification so user can share the bug report.

This CL handles the Shell changes only, the dumpstate changes will be
changed in a separate CL.

BUG: 25794470
Change-Id: Icbd0b42dd48e8db376b60544348b6818c6374338
2015-11-25 16:50:35 -08:00
Felipe Leme
b9238b3783 Refactored the BUGREPORT_RECEIVED logic into a new service.
Although this Change doesn't modify the workflow logic itself, it paves
the way for upcoming changes where the overall bug report progress will
be monitored by this service.

BUG: 25794470
Change-Id: Id0c867b04b595b5d31d11531405408f3423dd68b
2015-11-24 17:38:23 -08:00
Felipe Leme
e53e85f605 Initial integration test for BugReportReceiver.
These tests rely in the UI Automator to interact with the UI and
follow the workflow below:

 * creates the bug report files
 * generates the BUGREPORT_FINISHED intent
 * emulate user actions to share the intent with a custom activity
 * asserts the extras received by the custom activity

It still have some limitations, like requiring the phone to be unlocked
and having the bugreport warning already checked, and those will be
addressed in future CLs.

BUG: 25752530
Change-Id: I01d7fad9f94daf156b728cbb9ef228bbfa6ee0f5
2015-11-20 12:00:17 -08:00
Jeff Sharkey
f9fc6d6cc0 More file-based encryption work.
Add granular StorageManager APIs for key creation/destruction and
unlocking/locking.  Start passing through an opaque token as part
of the unlock command, but leave it empty for now.  We now have a
separate "prepare" method that sanity checks that user directories
are correctly setup.

Define a handful of system properties used for marking devices that
should be operating in FBE mode, and if they're emulating FBE.  Wire
a command to "sm", but persisting will come later.

Start using new "encryptionAware" flag on apps previously marked with
coreApp flag, which were apps running in the legacy CryptKeeper
model.  Small tweaks to handle non-encryptionAware voice interaction
services.  Switch PackageManager to consult StorageManager about the
unlocked state of a user.

Bug: 22358539
Change-Id: Ic2865f9b81c10ea39369c441422f7427a3c3c3d6
2015-11-11 10:47:23 -08:00
Tim Kilbourn
0e6dab92b7 am fca744ce: am 573cdc42: am 38ae1196: am 7cd6aaaf: am ee72f99d: Merge "Allow shell to disable keyguard when not secure" into mnc-dev
* commit 'fca744cef6800bbf923780ff0537ad618c715685':
  Allow shell to disable keyguard when not secure
2015-09-03 06:39:20 +00:00
Tim Kilbourn
bba73a038e Allow shell to disable keyguard when not secure
Bug: 22694837
Change-Id: I0f08048f617d064017468f331a5c6875ab27174b
2015-09-01 14:21:09 -07:00
Jeff Sharkey
3f4c298248 am 0551d5d9: am ac4fd070: am 90023609: am 71f15791: am d88152b4: Merge "Give shell permission to move apps." into mnc-dev
* commit '0551d5d9ee2888779e9c37c9a509451ef65ef981':
  Give shell permission to move apps.
2015-08-28 20:18:39 +00:00
Jeff Sharkey
e515c6495d Give shell permission to move apps.
Also clear identity when measuring ASEC sizes to relax a second
permission requirement.

Bug: 23600574
Change-Id: Ib3a104426758e0e8f35dff0e504fe874bed7311f
2015-08-28 11:50:22 -07:00
Nicholas Sauer
21e79ac800 am 3671aa87: am 5554a4eb: am 6c97bb1b: am 59af87c2: am 7c17ec5f: Merge "Add GET_APP_OPS_STATS to Shell" into mnc-dev
* commit '3671aa878974a8ecb149b11f2b32766721833cf1':
  Add GET_APP_OPS_STATS to Shell
2015-08-26 21:11:51 +00:00
Nicholas Sauer
1344cb9b1b Add GET_APP_OPS_STATS to Shell
bug: 23397072
Change-Id: I9f60f175380048e0f3888d866069f8f76166c732
2015-08-25 08:47:50 -07:00
Svet Ganov
28e7313992 am 71d12704: am 475858c3: am b295963b: am c00e49b6: am d4b566bf: Merge "Add APIs for verifier to grant at install and revoke permissions" into mnc-dev
* commit '71d12704f64eeace695a6b8e0cd8f36007b96270':
  Add APIs for verifier to grant at install and revoke permissions
2015-07-16 23:20:46 +00:00
Svet Ganov
7121e18595 Add APIs for verifier to grant at install and revoke permissions
bug:22231699

Change-Id: Ie0c758bf73699f50bf99ff5aa0bf98dcc9004e37
2015-07-15 22:22:59 -07:00
Alan Viverette
15d48a16f6 DO NOT MERGE: Remove DayNight theme
Do not go gentle into that good night,
Old age should burn and rave at close of day;
Rage, rage against the dying of the light.

Though wise men at their end know dark is right,
Because their words had forked no lightning they
Do not go gentle into that good night.

Bug: 21854466
Change-Id: I0b7cd116c23f7df88e94f31b3aee7dd22a102804
2015-06-18 15:15:16 -07:00
Yorke Lee
adb53b35cc Add phone permissions to Shell
These are needed for adb shell telecom commands to work on
non-eng builds.

Also fix a couple of typos in telecom documentation.

Change-Id: Ia219ff78f5d65878e43e6b9216f979185495ce7f
2015-06-03 15:48:10 -07:00
Jeff Sharkey
4c099d0c49 Command to change force adoptable state.
Since user builds can't setprop, add an explicit "sm" verb to change
the force adoptable state.

Bug: 21191915
Change-Id: I719d9b18c1a98c97442a5ddb1cc5512e8e4d3d3f
2015-05-15 14:15:35 -07:00
Alan Viverette
b9da280ac2 DayNight theme for framework packages
Change-Id: I745f90561c957c83540e75a2886e294633c83be1
2015-05-05 14:09:21 -07:00
Amith Yamasani
cf76872a62 Add ability to get and set idle state of apps
Add am shell command to set and get idle
Add public API to check if an app is idle

Bug: 20534955
Bug: 20493806
Change-Id: Ib48b3fe847c71f05ef3905563f6e903cf060c498
2015-04-24 12:58:46 -07:00
Svetoslav
805b63e253 Allow only system signed apps to grant permissions at install
bug:20099946

Change-Id: Ifcc5c6638b4174ffb3ba452ae68a5a53b2d1ff0a
2015-04-10 11:41:29 -07:00
Ryo Hashimoto
dd98034edc Add BugreportStorageProvider
BugreportStorageProvider provides storage backend for bugreports.

BUG:18070208
Change-Id: I8506dd90d69907090295d99df7427fc747b83698
2015-03-23 18:28:01 +09:00
Svetoslav
7e9c21547a Grant the shell user a permission to let apps host widgets.
An app can host widgets only if it has a special signature premission
or the user allowed this app to be able to bind to widgets. This change
grants the permission to whitelist an app to bind to app widgets to the
shell user. Now a test can have a host that will have some widgets. Note
that this is different from whitelisting corp widgets.

bug:17993121

Change-Id: Ic6b866cb2a822254e94a130b876ee5db66ed4fbf
2014-10-21 14:52:31 -07:00
Dianne Hackborn
2d7576b082 Fix issue #17752399: Multiple apps broken by GET_TASKS permission change
Keep around GET_TASKS as a permission available to apps, so apps still
think they have it and don't get all uppity because they don't.

Add a new REAL_GET_TASKS that is the actual permission now.

Plus some temporary compatibility code until everyone can transition
fromn GET_TASKS to REAL_GET_TASKS.

Change-Id: I12c1102eed24844685dcbd2fa3b612811603958f
2014-10-03 16:26:04 -07:00
Esteban Talavera
9c17388cff Set device admin on dpm set-device-owner command
Bug: 17312478
Change-Id: I4ef730a97d603352eda77f04a2b00fa97c2be662
2014-09-15 11:42:34 +01:00
Adam Lesinski
b5cf61be7c Add Shell command to set AppOps permissions
Change-Id: I6446543b27f0d2d2e69590a2807e713c6d5ccbbc
2014-08-19 11:27:19 -07:00
Svet Ganov
be19c3a91a Adding shell commands for grant/revoke of bind app widget permisison.
Testing the app widget APIs requires binding of widgets which is guarded
by a system signature permission or white listing. Since CTS tests can
not be signed with the platform certificate, they should be able to
temporariliy white list their package. This command adds the ability to
grant and revoke the provilege to bind app widgets to a given package.

Change-Id: I6de1bbf27ac684ec47e61157f19ec6d29e2db979
2014-07-23 02:25:25 +00:00
Allen Hair
59d2b43ad0 Fixed shell manifest to use correct permission.
Changed RENDER_STATS to FRAME_STATS. There is no RENDER_STATS
permission.

Change-Id: Iaf81b9e5a1580108da2d58e9c00a77a2b1093fdf
2014-04-23 10:23:07 -07:00
Svetoslav
1376d600d8 Adding render stats APIs to UiAutomation (framework).
bug:12927198

Change-Id: Iae21481c75ae58dcdab3731bf5f1e2844e29d434
2014-04-07 17:01:42 -07:00
Alan Viverette
e3c38a0b0e Fix recents theme, add missing headers
Change-Id: Ib8eea6153eaf7e0e93e54c69fe59e63e98a409a6
2014-04-02 15:39:13 -07:00
Alan Viverette
6259933ec9 Switch framework Holo references to Quantum.Light
Change-Id: Ib545a143f1959b6104adbc9d594dd626851d90b3
2014-04-01 14:57:39 -07:00
Jeff Sharkey
39da553694 Let Shell modify secondary external storage.
Bug: 11520256
Change-Id: I010a9cf07ff185aefcc2fdb71076d2e97e1f03a3
2013-11-05 12:18:24 -08:00
Jeff Sharkey
02ffba940c Handle finished bugreports, share from private.
Show notification when a bugreport is finished, letting the user
launch a SEND_MULTIPLE intent to share them.  Add dialog that warns
user about contents before sharing.  Since bugreports are now stored
in private app data of the Shell app, use FileProvider to build Uris
that we can grant others access to.

Define BUGREPORT_FINISHED as being a protected broadcast.  Delete
older bugreports automatically to reclaim disk space.  Migrate any
Intent extras to ClipData when building PendingIntents.

Add --receiver-permission support to am shell command.

Bug: 7005318
Change-Id: If6c607dbcf137362d5887eac482ff7391563890f
2013-03-13 16:42:38 -07:00
Dianne Hackborn
514074fae8 App ops: cleanup, handle root and shell, perms.
Rework how the shell user is defined so that it is
associated with an actual apk, instead of being a free
roaming uid with special permissions assigned to it.
This allows us to correctly account for its operations
in app ops.

Implement a special case for the root user in app ops --
it is always allowed, always with the package name "root".

Add various code to take care of cleaning up package state
from app ops -- when packages are uninstalled, and during
boot if any packages currently being stored no longer exist.

Also fix a bug in the activity manager to correctly grant
permissions in all cases when onNewIntent() is being called.

Change-Id: Iae9f6d793ee48b93518c984ad957e46ae4582581
2013-02-11 15:33:48 -08:00