Age | Commit message (Collapse) | Author |
|
|
|
Shell app exception resulted from two missing fields in BugreportInfo
when it's parceling. Application ran into the duplicate logic to send
notification and start foreground service then caused the exception.
Bug: 176624074
Test: Request a bugreport; kill the com.android.shell; \
tap the share notification
Change-Id: Ia80f5e77f5486addf9ea7822f566c3fd7d75f42a
|
|
There's a case that BugreportProgressService is invoked twice quickly,
and both services create the same bugreport file name. The later one
may delete current running bugreport file in its clean function,
when it detects another bugreport is running.
Bug: 174314124
Bug: 175287931
Test: atest BugreportReceiverTest
Change-Id: I5e1802c5912f4414f1ad3b8bdaf7c7420332b9d6
Merged-In: I5e1802c5912f4414f1ad3b8bdaf7c7420332b9d6
|
|
Calls onError function when bugreport is finished and file is empty.
Bug: 174314124
Bug: 175287931
Test: atest BugreportReceiverTest
Change-Id: I4542568fd2d2ad1c75c7c3b223accca4995938a3
Merged-In: I4542568fd2d2ad1c75c7c3b223accca4995938a3
|
|
- Implements a local binder and #onBind in the service to return the
service instance.
- Mocks BugreportManager in the service to avoid service interacting
with the dumpstate.
- Fixes dialog name field did not disable after service is finished.
- Fixes screenshot did not remove if the name is empty.
- Extends screenshot delay timeout in tests.
- Fine tune the UiBot to fit new bugreport notification.
- Removes obsolete cases in the tests.
Bug: 143130523
Bug: 175287931
Test: atest BugreportReceiverTest
Change-Id: Iae89206da1d08a10891503869bbbf1ce18d4e31f
Merged-In: Iae89206da1d08a10891503869bbbf1ce18d4e31f
|
|
Only alert bugreport notification at the begining and end.
Bug: 146135200
Bug: 175287931
Test: Manually changing the notification settings to default
from silent.
Change-Id: Ie955266ad8a7a27a9dc74743e276b5e9c7a2d6fb
Merged-In: Ie955266ad8a7a27a9dc74743e276b5e9c7a2d6fb
|
|
BUG: 154298410
Test: BetterBug can work normally in bug report shortcut flow
Change-Id: Ibc1a5a8ac308c303399d28eb8c177096b805fdf9
Merged-In: Ibc1a5a8ac308c303399d28eb8c177096b805fdf9
(cherry picked from commit ec91d7700d9316ba09d639ab55ce94fb72d0f8ec)
|
|
|
|
See https://source.android.com/setup/contribute/respectful-code for reference
#inclusivefixit
Bug: 162536543
Change-Id: I468147a439c1a60488def7db3e44bfc361bddbe4
|
|
|
|
We want to take a screenshot immediately, not after dumpsys finished.
This also gives the user some feedback that we took a screenshot when
they were paying attention, whereas the notification might go under
the radar if posted the 30-90 seconds later it will be shown
otherwise.
Also gives us the progress notification in the Android TV notification
tray, which helps the user keep track of what is going on and how long
it is expected to take.
Previously either no feedback was shown at all on key press, or a simple
Toast was shown on selecting the bugreport option from the TV Settings
app.
Test: Press DPAD_CENTER + BACK, observe screenshot and progress.
Fix: 151865303
Change-Id: I78753697a7867042d28364a6b6d61fdb96f8bc96
|
|
This reverts commit 6b1c4a9e09ea096d06351358d731290a11a1e337.
Bug: 149226068
Bug: 149307007
Bug: 149780604
Test: $ lunch aosp_crosshatch-userdebug; m
# flash and boot on a crosshatch
# Settings -> Apps & notifications -> Default apps -> Home apps
# Only Quickstep home is there; no Shell home any more
$ lunch csi_arm64-userdebug; m
# flash the resulted system.img on a crosshatch and boot
$ atest DeviceHealthTests # all passed
Change-Id: I927b7dae779da25589f2198e0480c0f2a788a7e4
Merged-In: I927b7dae779da25589f2198e0480c0f2a788a7e4
(cherry picked from commit 539298c1b9e1c0a42d041cbc845501cef289abf7)
|
|
|
|
This reverts commit 6b1c4a9e09ea096d06351358d731290a11a1e337.
Bug: 149226068
Bug: 149307007
Bug: 149780604
Test: $ lunch aosp_crosshatch-userdebug; m
# flash and boot on a crosshatch
# Settings -> Apps & notifications -> Default apps -> Home apps
# Only Quickstep home is there; no Shell home any more
$ lunch csi_arm64-userdebug; m
# flash the resulted system.img on a crosshatch and boot
$ atest DeviceHealthTests # all passed
Change-Id: I927b7dae779da25589f2198e0480c0f2a788a7e4
|
|
Bug: 152839953
Test: Take another bugreport, while one is in progress.
Without this change: bugreport files for the second bugreport can be
seen in /bugreports
With this change: no file for the second bugreport can be seen. This
is the expected behavior.
Change-Id: I45c1f66f3a52ba9a31413cf9748bc5504eaa65d0
|
|
|
|
* Make Atomic variables final so it can never be re-assigned to a null
object and hence avoid NPE.
* Set the value of the variables instead of re-assigning the object.
Test: Manual
Bug: 152479372
Change-Id: I58279d589d6247c53155755223fd8863f1049257
|
|
Remove an old hack that was put in place as bugreport ID was updated
a bit later in the bugreport generation phase.
This change removes the race condition around triggering bugreports
almost instantly.
Bug: 152292912
Test: Trigger consecutive bugreports from ActivityManager WAI. (Fails
without this change)
Change-Id: Ib08bc2c7d8ae765894998e5bfa0d9b6f3efa088b
|
|
|
|
Note: bugreport Cancel is not the same as bugreport onError. Files are not
deleted onError, as it still has some information before the bugreport
crashed/stopped. Bugreport Cancel is triggered by the user, hence clean
up all the files.
Bug: 146994281
Test: Cancel interactive bugreport from UI, deletes the current
bugreport files
Change-Id: I2606e491cbaa20eaa60980e98af56a194bae2280
|
|
|
|
This is essential for bugreports that do not send progress updates.
Bug: 152343458
Test: Take and share full bugreport
Change-Id: Id634afd82a92c02d1cf96ffd719fff8670fb8709
|
|
shareTitle and shareDescription is passed by the caller of the
bugreport. Show these in the finished bugreport notification.
Pre-set shareTitle takes precedence over user modified title.
shareDescription and description are not related/dependant on each other
in any way.
Bug: 150333444
Test: Manual (by passing EXTRA_TITLE and EXTRA_DESCRIPTION from
ActivityManagerService when trigerring a bugreport)
Change-Id: I2bfd080aeee677cdc8d0af339d7ad4a29451c3e0
|
|
* Make fields (progress, lastUpdate and finished) atomic to make them
thread safe and also reduce getters/setters.
* Make lastProgress a private field in BugreportInfo.
* Move deleteScreenshots to BugreportInfo class.
* Make fields with lock protected getters/setters as private.
* Make fields that should not be changed as final.
Bug: 147033613
Test: manual
Merged-In: I8f0fb4865c1b7c5d62bebca3e250eee59b4e71f4
Change-Id: I8f0fb4865c1b7c5d62bebca3e250eee59b4e71f4
(cherry picked from commit fe7d1ab0cbcb6455a5760a092cfb50606f48d4b7)
|
|
- Let screenshot fd be null if Shell doesn't want to take default screenshot when bug report is triggered.
BUG:149525300
Test: Flash and test interactive/full bugreports generated using Shell, and Shell flow does not break during tests
Change-Id: I50908af63d74ed66156354ec0b5a237f7131061a
Merged-In: I50908af63d74ed66156354ec0b5a237f7131061a
|
|
|
|
Make methods that read/write mBugreportInfos lock protected and add
"Locked" suffix to the method name. BugreportInfo objects are read/write
in different functions, to keep the code clean, add lock protected
getter/setter methods.
Bug: 142217059
Test: Takes interactive/full bugreports as expected
Change-Id: Iaadd6c9dce5009e40dd015e3b62bcd6e36966e00
|
|
Handle Exceptions around file creation/open fd more gracefully inside
BugreportInfo class. This is communicated to the caller of BugreportInfo
by returning null for getFd() methods.
Test: builds
Change-Id: Ie241dce0810645e04b2492dc8b1bcbc3e9f8f664
|
|
|
|
Bugreport files and screenshot files are saved in the same directory.
Use common variable for consistency and to avoid duplicacy.
Move bugreport file and default screenshot file creation to the
constructor as for each bugreportInfo object a bugreportFile must exist.
Bug:123617758
Test: Takes interactive/full bugreports as expected
Change-Id: I338e852c543e63b403536cd852518b6601ea32f0
|
|
am: 26f49e7b75
Change-Id: I77be28465d8fe8439877859e3e630103efe69c4f
|
|
In configurations where AOSP Settings.apk is not included, there might
not be any home activity. E.g. CSI doesn't have Settings.apk.
This CL adds a null home activity to Shell.apk, which is in CSI,
so the framework can be in a sane state. Without such null home
activity in CSI, package manager fails to install any APKs.
Bug: 148044842
Test: $ lunch csi_arm64-userdebug; m -j
# Flash CSI to a Pixel (with AVB disabled) and reboot
$ m DeviceHealthChecks
$ adb install $OUT/testcases/DeviceHealthTests/arm64/DeviceHealthTests.apk
Performing Streamed Install
Success
Change-Id: I87999e30298bbe42af64f28e88fc6dc5975f1ca3
|
|
Legacy onProgress aidl listener callback function used to take 2 params:
progress and max. So, the client had to calculate the percentage
progress. This legacy onProgress method is removed.
Now dumpstate sends the actual progress in percentage without requiring
the client to calculate it.
Bug: 123617758
Test: Takes interactive bugreport as expected. And shows progress
notification as expected.
Change-Id: Ic5a355cc886e51b964f73c227f5f657173e99420
|
|
am: 215d92f880
Change-Id: Ic092f2d5c0c0a1497c19e73417c68b8e8616cc63
|
|
The system shouldn't be granting read URI permissions as itself. This
means that heap dumps aren't successfully shared. Moving the heap dump
sharing mechanism to SHELL, which already has the permission to dump
heaps so that dumps can be shared properly.
The ActivityManagerService changes are submitted separately.
Bug: 126885951
Bug: 135150619
Test: collect a heap dump and confirm it's successfully shared with an app
Test: do manual test on a secondary user & confirm it's not available to
other user
Change-Id: I6fad69280b5124c8ec2d3b4bef0f7dddb6a9422c
|
|
Bugreport is now triggered using API and not via broadcasts from
dumpstate. As migration to API flow is stable, we can remove methods and
broadcasts that were used in non-API bugreport flow. Now, callbacks are used
for communication between dumpsate and Shell instead of broadcasts.
* Remove BugreportReceiver.java as it used to handle BUGREPORT_STARTED and
BUGREPORT_FINISHED intents which are not required by Shell anymore to
track bugreports.
* Remove RemoteBugreportReceiver.java as it used to handle
REMOTE_BUGREPORT_FINISHED intent which is not required by Shell
anymore.
* Remove methods that were being used when processing these broadcasts.
* Remove pid as that is not used anymore.
* Since Shell owns the file now, don't need mTempName, mSavedName,
onFocusListener and disable file name after the bugreport is finished.
File name can be sanitized and updated even after bugreport finished.
Bug: 136066578
Test: Build and flash. Interactive/Full bugreports from Settings/Power button.
Test: Rename workflow for interactive bugreports works as expected.
Test: * Build and flash
* Install TestDPC
* Make it device owner
* Take a remote bugreport. Works as expected
Change-Id: I5e0f829631cb63074c41c914236e78abe95ba162
|
|
Regression from merge issue that was created when merging ag/9489200 and ag/9502526.
Previously, before saving the screenshot file in the array, it had to be
created each time it was required.
Bug: 123617758
Test: manual
Change-Id: I2dc2924aa20609d2445af00025580b2752935903
|
|
BugreportCallbackImpl class methods modify (read/write) the private
variable mInfo. Add synchronized locks for consistency.
Make other methods static to be thread-safe, and operate only on its
arguments.
Bug: 123617758
Test: Build and flash. Takes bugreport as expected
Change-Id: I237fd940f5ccd4833d053558cf1b014883d59791
|
|
In the current implementation of API flow of bugreport, renaming bugreports
works fine but it changes the entire name. In legacy flow, the user is only
able to rename the suffix of the file. The prefix of the name
(bugreport-deviceName-buildID) remains unchanged. Also, wifi and
telephony bugreports have the type of the bugreport specified explicitly
in the name.
Fix Shell's rename implementation to follow legacy logic. Also stop setting
name property in the API flow since it's a functional no-op anyway, and we
want all communications to dumpstate be through the API when possible.
No need to call trackInfoWithId() for remote bugreports as Shell does not
process any notification related to it.
Bug: 123617758
Test: * Take interactive bugreport, rename and save. (work as expected)
Test: Corner case:
* Take interactive bugreport, rename and save.
* Click on the progress notification again and keep the edit box
open.
* Wait for bugreport to finish, filename edit box would be disabled
and autofilled with last saved rename. You will still be able to
edit title and summary. (works as expected)
Change-Id: I0016ef4fc1e80fb792712c45439e2b0d348f5249
|
|
|
|
In legacy bugreport workflow dumpstate used to send BUGREPORT_STARTED,
BUGREPORT_FINISHED and REMOTE_BUGREPORT_FINISHED broadcasts.
BUGREPORT_FINISHED and REMOTE_BUGREPORT_FINISHED broadcasts contain
information about the bugreport file, this information is not with
dumpstate in the API WORKFLOW, and is passed to it by the API caller.
Hence these broadcasts need to be sent by the caller of the bugreport
API to share the bugreport file information in the onfinished() callback
function.
Send REMOTE_BUGREPORT_DISPATCH broadcast for DevicePolicyManager to
handle.
Add minimal information in these broadcasts. Not adding all fields that
dumpstate used to send, as most of those were used by Shell. Only
sending necessary fileds used by receivers of these broadcasts.
Handle clean up of old bugreports in onFinished() callback function
Bug: 137825297
Test: * Interactive/Full bugreports successfully created
* Share notification appears as expected
* Able to attach these to gmail
Test: * Trigger remote bugreport by hardcoding the value of remote
bugreport when calling the API
* Remote bugreport is created successfully
* No share notification (same behavior as before)
* Same logs in logcat as triggering remote bugreport using old flow:
* adb shell setprop dumpstate.options bugreportremote
* adb shell setprop ctl.start bugreport
Test: * TestDpc (go/testdpc):
* Install TestDPC
* Set it as Device Owner
* Open TestDPC to trigger a remote bugreport ("Request bugreport")
* Shows user consent for bugreport collection (indicating that the
API workflow is triggered.
* Once the collection is complete and you tap "Share" in the notification.
* TestDPC shows another notification showing the received bugreport file
path and hash.
* Verify using adb shell to check if the bugreport file is present
in the above specified file path
Change-Id: I07c0c64b74a723683601e53e3c68a374ca54f3cb
|
|
cb783ea2ee am: 704b11756a am: 777b2325be
am: 362e959c7d
Change-Id: I161186cbfef27ace50349d60b1726ef3ba6d1932
|
|
(Don't worry, stat_sys_adb isn't going away, but it will
only be used by the ADB notification now.)
Bug: 138661761
Test: initiate bugreport from globalactions
Change-Id: I238659d50f70bfbc047133d89afb76f78ec841f9
|
|
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
|
|
am: cbdb10f982
Change-Id: Ia746b0cdadd0c4d652c373763f7a12266b080e3b
|
|
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
Merged-In: I40d654a70bd9ceb3a29f8a0113b85616100f4ee9
|
|
|
|
|
|
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
|
|
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
|