Commit Graph

883 Commits

Author SHA1 Message Date
Jayant Chowdhary
70809a1847 Merge "Add SYSTEM_CAMERA capability to camera2 and define @SystemApi SYSTEM_CAMERA permissions." 2019-08-21 19:53:16 +00:00
Jayant Chowdhary
393ad6e0ad Add SYSTEM_CAMERA capability to camera2 and define @SystemApi SYSTEM_CAMERA permissions.
In order to access system-only cameras client processes need
SYSTEM_CAMERA permissions in addition to CAMERA permissions. A
permission was preferred over other mechanisms such as having private
connections would need to hard-code the package name(s) of clients using
system only camera devices. A system | signature permission on the other hand,
would make this more flexible and would be better for security.

Bug: 133508924

Test: cts CameraManagerTest, CameraDeviceTest
Test: Give cts test SYSTEM_CAMERA permissions by using
      adoptShellPermissions and run some camera tests.

Change-Id: Ibcd6ccdb231dcca949ed4fb14712d033a5801d36
Signed-off-by: Jayant Chowdhary <jchowdhary@google.com>
2019-08-20 15:24:28 -07:00
Abhijeet Kaur
725a25f7f5 Set up to migrate requestBugreport flavors to use bugreport API
Add initial set up code to migrate requestBugreport,
requestBugreportWithDescription, requestWifiBugreport and
requestTelephonyBugreport to use the new Bugreport API.

Prepare the intent (to trigger API workflow) but do not send. Not
sending the intent keeps the workflow same as before.

This set up helps to move away from directly setting system properties
(dumpstate.options.title and dumpstate.options.description).

Bug: 139415553
Test: build and flash. Taking a bugreport works as usual
Change-Id: I0b57643ff8f4eadb281e1d7788171ef751a01b79
2019-08-19 12:20:48 +01:00
Nandana Dutt
ecc40227b6 Merge "Remove obsolete methods from DumpstateListener implementations" 2019-08-06 16:21:34 +00:00
jay
e77e28c519 Merge "Clean up duplicated uses-permission" am: 2bfe37de04 am: ed63903250 am: 807b7fde15 am: abd5dae2a8
am: 001e3fad8d

Change-Id: I4bc7812131cd83b2bd739775d205d54269b37208
2019-08-05 14:05:10 -07:00
jay
ed63903250 Merge "Clean up duplicated uses-permission"
am: 2bfe37de04

Change-Id: I283778ef4b61e9f0a7a6592f1be563da91e8c628
2019-08-05 13:10:39 -07:00
TreeHugger Robot
120820d66b Merge "Add logic to handle screenshot file creation failure" 2019-08-05 17:33:42 +00:00
Abhijeet Kaur
1b1d614e63 Add logic to handle screenshot file creation failure
Delete the bugreport file to free the space before returning.

Delete unnecessary if blocks as the File constructor would never return
null

Bug:123617758
Test: Force code to execute the if (screenshotFd == null) block.
      Bugreport file gets deleted successfully

Change-Id: Ib88278a8a56799ef562b8b06e5e530a8e31e85d5
2019-08-05 15:24:16 +01:00
Nandana Dutt
56659ae22f Remove obsolete methods from DumpstateListener implementations
Note that with the new Bugreporting API, SystemServer is the only
expected DumpstateListener implementation. Once we fully migrate Shell
app, we can remove the implementation in BugreportService as well.

BUG: 128980174
Test: bugreport from power menu, observe progress bar

Change-Id: I40d654a70bd9ceb3a29f8a0113b85616100f4ee9
2019-08-01 16:08:56 +01:00
TreeHugger Robot
9f3eb4a130 Merge "Leave error handling the same as old workflow using dumpstate" 2019-08-01 12:19:34 +00:00
Abhijeet Kaur
0d61c4f89d Leave error handling the same as old workflow using dumpstate
Removing the TODO as won't be working on improving error handling as
part of this bug. Created another bug (b/138576498) to work on better
error handling.

Bug: 123617758
Bug: 127431371
Test: builds (only removing comment)
Change-Id: I8a7fea416e9871909cfb3cc801232bff6056536e
2019-07-31 11:18:55 +01:00
Abhijeet Kaur
af0279c991 Merge "Make shell bugreport file names consistent with dumpstate" 2019-07-29 13:41:13 +00:00
Abhijeet Kaur
906b937b42 Make shell bugreport file names consistent with dumpstate
Since bugreport API workflow will be replacing old workflow of directly
starting dumpstate, we aim that the resulting file names be the same as
the users are used to the old file names (that dumpstate used to decide).

Bug:126862297
Test: * Build and flash to the device
      * Turn on Settings feature flag to use the bugreport API
      * Take interactive and full bugreports
      * Output file names same as before

Change-Id: I24d800e26a8cc4f739038ac0f27da13bd83f7f47
2019-07-29 10:54:32 +01:00
jay
67feca7041 Clean up duplicated uses-permission
android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS
It would be duplicated and we can remove it.

Bug:
Test: refactoring CL

Change-Id: I75bf3761be64d850781c29b734c2f7e60ef3b6a2
Signed-off-by: jay <jdragon.bae@gmail.com>
2019-07-26 09:09:03 +00:00
Abhijeet Kaur
ac834969a3 Set id for bugreports after dumpstate increments it.
dumpstate increments system property PROPERTY_LAST_ID when a bugreport
is triggered.

In the old workflow for bugreports, dumpstate used to get triggered
before Shell, and dumpstate would send the 'id' to Shell. Hence Shell
always assumed that it has a known value for 'id', that is why
'id' is declared as a final variable which could be assigned value in
the constructor.

In new workflow using API, the 'id' is incremented after dumpstate gets
triggered. Hence making the following changes:
* Changing 'id' variable to be not final
* Reading 'id' after dumpstate has incremented the system property

Bug: 123617758
Test:  	Build and flash to device.
	Turn on the feature flaggenerate bugreports
	Check the progress and Finish notifications.

Change-Id: I44762190391c128cba135bf0ef795a1ae872dbb7
2019-07-25 14:04:56 +01:00
TreeHugger Robot
deda6a1bd9 Merge "Progress notification for interactive bugreports" 2019-07-22 10:14:44 +00:00
Abhijeet Kaur
1a5030cc7d Add logic to create screenshot file
* Creating screenshot file for all types of bugreport
* The logic to populate the screenshot file is in dumpstate (few
bugreport types that do not need screenshots will leave the file
untouched/empty)
* Delete the empty screenshot file and set the file to null so that
empty file does not get shared
* This TODO was previously left as binder did not allow to send null
screenshotfd, which was recently fixed. While fixing and testing the
optional screenshot fd CL with these changes, left the value "null" by
default. Fixed now.

* Not adding any logic here on the basis of the type of bugreport as
all that is already in dumpstate

* Making the names of bugreport (.zip file) and bugreport screenshot
(.png file) consistent. In the old flow also both have the same names.

Bug: 123617758
Test: * Build and flash to the device
      * Turn on use bugreport API feature flag from Settings
      * Take interactive bugreport
      Expectation: On clicking the notification to "Share the bugreport"
      only 1 file (the bugreport zip file) gets shared. Also, there is
      no screenshot file in /bugreports/ in the device
      * Take full bugreport
      Expectation: On clicking the notification to "Share the bugreport"
      2 files (bugreport zip and screenshot png file) get shared. Also
      we can see the screenshot file in /bugreports/ in the device

Change-Id: I39cb6913033b6e3c61bd0c6655a76524c12d2428
2019-07-18 16:53:06 +01:00
Nate Myren
1a8d1110c0 Merge "Permission flag updates now notify listeners" 2019-07-10 16:03:07 +00:00
Bill Yi
abc48bceb2 Import translations. DO NOT MERGE
Change-Id: Ia76b70e9b62254d77734da1f3ecf400f0867fc46
Auto-generated-cl: translation import
2019-06-29 17:02:40 -07:00
Nate Myren
d3a6385686 Permission flag updates now notify listeners
Added a version of the onPermissionUpdated and
onInstallPermissionUpdated methods which will notify
OnPermissionChangedListeners, and added this to the
PermissionManagerService "updatePermissionFlags" and
"updatePermissionFlagsForAllApps" methods. Also adds
OnPermissionsChangedListener to @TestApi

Fixes: 135937566
Test: atest PermissionUpdateListenerTest
Change-Id: I906598c366234c3daaa202261678bca04837cb13
2019-06-28 16:56:26 +00:00
Abhijeet Kaur
97a8f0f5db Progress notification for interactive bugreports
Send instant progress notification for interactive bugreports (when
using bugreport API), starting notification when progress = 0

Bug: 123617758

Test: * Build and flash to the device
      * Turn on use bugreport API feature flag from Settings
      * Take interactive bugreport
      Expectation: Progress notification is shown instantly

Change-Id: Icd834c05324108430ee6cb9c3d8539f91059e563
2019-06-04 15:36:16 +01:00
Abhijeet Kaur
0a295724f2 Merge "Add dark theme for Shell app." into qt-dev am: 190e99cf3a am: 1cceacc469
am: 2c90394b5d

Change-Id: I8c913dfa6823f9c9cfee1a68a3f61000e5594b57
2019-05-29 07:27:37 -07:00
Abhijeet Kaur
1cceacc469 Merge "Add dark theme for Shell app." into qt-dev
am: 190e99cf3a

Change-Id: I5e0d09befb3d1d45176a8826b4710f001e6fdce3
2019-05-29 07:17:36 -07:00
TreeHugger Robot
190e99cf3a Merge "Add dark theme for Shell app." into qt-dev 2019-05-29 14:03:55 +00:00
Nate Myren
1a4e0bc457 Merge "set RuntimePermissionPresentationInfo, getAppPermissions, and OnGetAppPermissions as Test Api, added Get Runtime Permissions to shell" into qt-dev am: 1ce9983162 am: 40bcb1d3cd
am: 364c09f390

Change-Id: I26127032cd6185632d33e779e33cb7976b9ee2c1
2019-05-28 09:59:45 -07:00
Abhijeet Kaur
2ae76e468b Merge "Migrate Shell app to use the new bugreport API." 2019-05-28 16:56:32 +00:00
Nate Myren
40bcb1d3cd Merge "set RuntimePermissionPresentationInfo, getAppPermissions, and OnGetAppPermissions as Test Api, added Get Runtime Permissions to shell" into qt-dev
am: 1ce9983162

Change-Id: I572a474338a50d5242d7a5fc89c10549764d42c6
2019-05-28 09:38:37 -07:00
TreeHugger Robot
1ce9983162 Merge "set RuntimePermissionPresentationInfo, getAppPermissions, and OnGetAppPermissions as Test Api, added Get Runtime Permissions to shell" into qt-dev 2019-05-28 16:33:05 +00:00
Nate Myren
17f2159181 set RuntimePermissionPresentationInfo, getAppPermissions, and OnGetAppPermissions as Test Api, added Get Runtime Permissions to shell
Test: Run PermissionControllerTest
Fixes: 129200595

Change-Id: I44cf152e52895d9344b39b978b85ac263a5cb37c
2019-05-28 16:15:16 +00:00
Abhijeet Kaur
767c8bb96a Migrate Shell app to use the new bugreport API.
Add new calls to bugreport API, all the while keeping the previous code
and logic untouched.

Added feature flag in Settings which if untouched, runs the old dumpstate workflow
by default. To test the new workflow turn on the feature flag from UI or
`adb shell setprop settings_call_bugreport_api true`.

Add permission TRIGGER_SHELL_BUGREPORT so that not all can send
broadcasts to trigger bugreports.

Create new receiver BugreportRequestedReceiver for the new broadcast intent that the shell app will
use.

Whitelist Shell app to use the bugreport API.

Bug: 123617758

Test: manually built and flash to device. Turn on the feature flag, generate bugreports and check
the onProgress and onFinish notifications.
Test: Turn off the feature flag test old workflow.

Change-Id: I1c7c258a48815a0386d7d4771301cd76f9cae3d0
2019-05-28 14:31:57 +01:00
Bill Yi
143fd9556a Import translations. DO NOT MERGE
Auto-generated-cl: translation import

Bug: 64712476
Change-Id: Ia1f336348c266cd252479b58fe06cc4a51100cda
2019-05-24 23:00:13 -07:00
Abhijeet Kaur
8549ccf69b Add dark theme for Shell app.
Bugreport info dialog is used in the BugreportProgressService; services
are not themeable from the manifest file. Added themed context wrapper
in the service file.

Text view underlines are no longer black, and are white in color.

Bug: 128364209
Test: build and flash to device, manually verified the color of the dialog
Change-Id: Ia42c1c7c2b6f2e30d91a5522f1d6b3507b032cdb
2019-05-24 14:28:56 +00:00
Varun Shah
2f9ec7aacf Merge "Merge "Add INTERACT_ACROSS_PROFILES permission to shell for CTS test." into qt-dev am: b92f0771dc am: 5e18bffeb3" into qt-r1-dev-plus-aosp
am: 8cc03f58e0

Change-Id: Ifb8cdd290bfe8b7a7ef5ed3a5eb90db79d98e9fa
2019-05-22 06:08:40 -07:00
Varun Shah
5e18bffeb3 Merge "Add INTERACT_ACROSS_PROFILES permission to shell for CTS test." into qt-dev
am: b92f0771dc

Change-Id: Iedf4a341c219b963a83df85bc6a4dcd9d450f1d2
2019-05-21 21:56:12 -07:00
Zimuzo Ezeozue
5f499f54e9 Merge "Add ExplicitHealthCheckServiceImplTest" into qt-dev am: ab9c69fda4 am: 6986220caa
am: e03326cc70

Change-Id: Ibe20de711dca5afc2068a9ac68572bc6e107db5f
2019-05-20 22:32:17 -07:00
Varun Shah
a248265d93 Add INTERACT_ACROSS_PROFILES permission to shell for CTS test.
Bug: 127804311
Test: atest CrossProfileAppsHostSideTest#testStartActivity
Change-Id: I1deb66409fae1ec654555adb8d4a61d670689d2a
2019-05-20 20:56:59 -07:00
Zimuzo Ezeozue
e03326cc70 Merge "Add ExplicitHealthCheckServiceImplTest" into qt-dev am: ab9c69fda4
am: 6986220caa

Change-Id: I6a98815f3bcebb0a7986cfed8e9520d8ed17cd20
2019-05-20 17:17:58 -07:00
Zimuzo Ezeozue
b1b7422068 Merge "Add ExplicitHealthCheckServiceImplTest" into qt-dev
am: ab9c69fda4

Change-Id: Ibecb66d0d1f707d98ae117dd3baad278a0163d0b
2019-05-20 15:27:01 -07:00
Zimuzo Ezeozue
ab9c69fda4 Merge "Add ExplicitHealthCheckServiceImplTest" into qt-dev 2019-05-20 20:16:22 +00:00
Zimuzo
0d70a6ac49 Add ExplicitHealthCheckServiceImplTest
Test: atest
android.ext.services.watchdog.ExplicitHealthCheckServiceImplTest
Bug: 132640467

Change-Id: I2d1820a38adce238a157e925512898c184dadec0
2019-05-19 19:39:29 +01:00
Jeff Sharkey
5f939fc96c Merge "Aggresive performance optimizations." into qt-dev am: 433b7fc88b am: dda03c678d
am: eaa0626d20

Change-Id: I414a81701aaea44c4faf5cef89015bba9f08a32b
2019-05-18 03:40:36 -07:00
Jeff Sharkey
eaa0626d20 Merge "Aggresive performance optimizations." into qt-dev am: 433b7fc88b
am: dda03c678d

Change-Id: Ibce662c5c2e543476e518c4633af158db4913873
2019-05-17 23:27:48 -07:00
Jeff Sharkey
b270eabe36 Merge "Aggresive performance optimizations." into qt-dev
am: 433b7fc88b

Change-Id: Iae7e2135360590f7246aea640fadd95ff0cad4c4
2019-05-17 23:12:40 -07:00
Jeff Sharkey
b66f4f4bad Aggresive performance optimizations.
Now that we have LocalCallingIdentity, we can start caching it in
very narrow cases.  We must be careful to not cache too long, since
any changes to granted permissions for the UID mean we need to
re-evaluate any cached answers.

The best middle-ground for this in the Q release is to use an active
camera session as a proxy for when we should create a cache object
and then later invalidate it.  (It's very unlikely that a user
changes permissions while actively using the camera, and this is
a strong signal that the caller is sensitive to performance.)

Many other sprinkled optimizations to avoid extra binder calls into
the OS, such as aggressively caching VolumeInfo related details.

Track IDs that are owned by each LocalCallingIdentity, to speed up
all future security checks.

Dispatch all change notifications asynchronously, and delay them by
several seconds while the camera is being actively used, to give
more important foreground work a fighting chance.  Invalidate
thumbnails asynchronously.

Optimizations to ModernMediaScanner where it's safe to skip the
"reconcile" and "clean" steps when we're focused on a single file
that we successfully scanned.

Local tests show this CL improves performance of a test app that
takes 100 rapid shots by 45%.  (All the collective optimizations
done so far this week add up to a 70% improvement.)

Bug: 130758409
Test: atest --test-mapping packages/providers/MediaProvider
Exempt-From-Owner-Approval: trivial manifest change
Change-Id: I38cc826af47d41219ef44eae6fbd293caa0c01d5
2019-05-18 05:48:21 +00:00
Xin Li
c76d117d2a DO NOT MERGE - Merge pi-platform-release (PPRL.190505.001) into stage-aosp-master
Bug: 132622481
Change-Id: I7ba1a9999b3a9bac8031dd086fa2632e45404f32
2019-05-15 11:31:45 -07:00
Bill Yi
775c515798 Merge "Import translations. DO NOT MERGE" 2019-05-12 23:12:08 +00:00
Bill Yi
ae7813e091 Import translations. DO NOT MERGE
Change-Id: Ifb20685493044135d5a8697c7830eb51733b07c4
Auto-generated-cl: translation import
2019-05-11 14:06:24 -07:00
Evan Laird
84714827b7 Merge "Grant STATUS_BAR permission to com.android.shell" into qt-dev am: 36e3f91918
am: 79e5e41853

Change-Id: I9102b190086081dc1951a39c4fb36e8198de4ee2
2019-05-11 01:26:49 -07:00
Evan Laird
79e5e41853 Merge "Grant STATUS_BAR permission to com.android.shell" into qt-dev
am: 36e3f91918

Change-Id: I48c58cb96499b3dbf9ea2811184b9b1ce2d12555
2019-05-10 18:58:43 -07:00
TreeHugger Robot
36e3f91918 Merge "Grant STATUS_BAR permission to com.android.shell" into qt-dev 2019-05-11 00:46:36 +00:00