Commit Graph

21 Commits

Author SHA1 Message Date
Kweku Adams
21b8d26084 Cleaning up frameworks protos.
Note: It is currently only safe to renumber the fields because we have
not started using them yet.

* animationadapter: added in http://ag/3709688, but was not following
the indentation policy or the unit naming policy. The durations that
have documentation in
frameworks/base/services/core/java/com/android/server/wm/ state that
they're in milliseconds. These durations didn't have documentation, but
I'm assuming they're in the same units.
* batterystats: was not following the indentation policy
* jobscheduler: AppIdleController was removed in http://ag/3699210 and
the proto was only partially updated
* powermanagerservice: BatterySaverStateMachineProto added in
http://ag/3763026 but was not privacy tagged and the indentation was off
* surfaceanimator: was not following the indentation policy
* remote_animation_target: was not following the indentation policy
* others: weren't following the indentation policy

Bug: 74975371
Test: flash device and run 'test CtsIncidentHostTestCases'
Change-Id: Id012f4690b1d58816fef096523e1a0ea2bccadb0
2018-04-11 16:55:33 -07:00
Kweku Adams
cb89f62ef8 Marking ClipData as LOCAL and adding comment in jobscheduler proto.
Bug: 74837756
Bug: 74975371
Test: N/A
Change-Id: I099343f933ae091a52ecb9fc780baa981d1ef677
2018-03-22 13:55:46 -07:00
Yi Jin
163967fe8e Fix privacy tags based on PWG review meeting.
1. Remove unnecessary hex_hashs.
2. Make intent extras LOCAL
3. Make mnc EXPLICIT
4. Make diskstats error AUTO since it is only IOException.

It is safe to modify proto numbers since they are not used yet.

Bug: 74837756
Test: flash the changes and call incident -d, also updated go/irpf
Change-Id: Idee0e927515e737c9a42a1dc29cb3c05e6d91ca9
2018-03-15 18:31:36 -07:00
Dianne Hackborn
337e01ac10 More work on issue #73301635: Ability to extract device configuration
Now include Gl extensions (thanks to whoever wrote the code
I copied!).

Tweak the protos a bit to include missing info and correct
some things.

Add some new test APIs that are needed for CTS.

Bug: 73301635
Test: atest CtsActivityManagerDeviceTestCases:ActivityManagerGetConfigTests
Change-Id: Ie3f8173d217468246e8b6c7f45b7cbfcb352d60f
2018-02-28 11:29:20 -08:00
Dianne Hackborn
bf5ba6bbcc Implement issue #73301635: Ability to extract device configuration
am get-config can now return its information as a protobuf,
so that we have a nice machine readable representation of the
configuration available.  This is available through the new
"--proto" option.

Also add a new "--device" option which will include additional
device configuration information in the output.

Defined the protos to contain all of this information.  Updated
Configuration to generate everything it should in the proto.

The output has been changed so that configuration history
will not be returned unless you specify the --days option.

Bug: 73301635
Test: Booted, ran, output

Change-Id: I074b92b45d6b1da1c1a499080db9e006d12b9fea
2018-02-23 15:30:04 -08:00
Yi Jin
676d1ace1c Clean up the procstats dump enums and change component to use message.
Bug: 72415114
Test: manually flashed and run: dumpsys procstats --proto
Change-Id: Iea47fa41c04c3c6e8335e040086a0b5d65c22aaf
2018-01-25 17:56:06 -08:00
TreeHugger Robot
ada267a31f Merge "Add more privacy tags and disable procrank util figure out permission to run the command" 2018-01-26 00:54:34 +00:00
TreeHugger Robot
5a0515b325 Merge "Adding privacy tags to JobScheduler and co." 2018-01-26 00:09:14 +00:00
Yi Jin
69040223a9 Add more privacy tags and disable procrank util figure out permission to
run the command

Test: manually flushed to device and run
out/host/linux-x86/bin/incident_report -w -p <A/E/L> <section>

Change-Id: I7c1b6bc03a26de95cb2397d8d653b3b9b3c0e103
2018-01-25 14:38:10 -08:00
Kweku Adams
0f168dee56 Adding privacy tags to JobScheduler and co.
Bug: 72393215
Test: Android builds
Change-Id: Ife5c32a58f6de830274ea13964154dcc10728820
2018-01-24 17:24:42 -08:00
Yi Jin
0d7bc2d17d Tag platform protos with right privacy level.
Bug: 72407926
Test: flash and run incident -p <each section>
Change-Id: Ieb36260bb57b0d38791817d548a9e12429e88987
2018-01-24 22:38:43 +00:00
Yi Jin
148d7f4291 Implement activity --proto --processes
Bug: 66729158
Test: out/host/linux-x86/bin/incident_report -w amprocesses
Change-Id: Iae043203bca954bfc4aadad0460cc56621e9ba05
2018-01-23 16:49:58 -08:00
Vishnu Nair
9a3e406eac Add PhoneWindowManager proto definitions
Bug: 64831661

Test: verified proto dump from winscope
Test: atest FrameworksServicesTests:com.android.server.policy.PhoneWindowManagerTest
Test: atest FrameworksServicesTests:com.android.server.policy.PhoneWindowManagerLayoutTest

Change-Id: I7b0f081d15cfc63d7565431b672bd8be81583aa5
2018-01-11 11:24:46 -08:00
Kweku Adams
85f2fbcb1f incidentd: dumping jobscheduler to proto
Bug: 65750819
Test: flash device and check incident.proto output
Also test: $ cts-tradefed run cts-dev --module CtsIncidentHostTestCases --test com.android.server.cts.JobSchedulerIncidentTest
Change-Id: I4abc01ca893edcbaf4d2254e4f807e06f5cb91f8
2018-01-09 12:05:39 -08:00
Kweku Adams
e6b00c2a16 incidentd: Updating PowerManagerService proto files.
Moving to the proto/.../server directory since PowerManagerService is in
com.android.server.
Extracting enums from other components into their own files.

Bug: 65750826
Bug: 65750806
Test: flash device and check incident.proto output
Change-Id: Ib91b7c08142fa66adf18b6e85106d4cbb5adf660
2017-10-25 15:04:55 -07:00
Yi Jin
d6759d46f9 Enable dumpsys package in incidentd
Test: manually tested on device.
Change-Id: I963fd42684d9e2302f64fdd6cd729e077a9b37ac
2017-10-16 17:39:28 -07:00
Yi Jin
c7f93070b6 Convert proto3 to proto2 to avoid forced zero enum value.
The rationale for this change:
1. When defining enum values for platform, we want to use the current
integers, in some cases zero is not defined, but proto3 enforces a zero
default value.

2. Android Metrics Team uses proto2 on server-side

3. When copying .proto to server-side, the known issue of dropping
unknown fields might affect if using proto3

4. Not much benefits from using proto3

Bug: 67110257
Test: manully generate incident report and it looks normal
Change-Id: Ia63e39de549a46683e9f80fcb74f1d771782b7f4
2017-10-16 11:04:01 -07:00
Yi Jin
129fc6ce19 Implement Activity Manager Broadcasts dump protos
Bug: 66729158
Test: Manually build and flash the system.img and test "activity --proto
broadcasts"
Change-Id: I3cb7474c4a3ab092f38ed6a121b4d034cadfc402
2017-10-11 18:35:14 -07:00
Wale Ogunwale
0d5609ba8c Added WindowConfigurationProto and friends
Also added WindowContainerProto and ConfigurationContainerProto
Will be used by cts tests in upcoming CLs that replace StackId APIs.

Test: adb shell dumpsys window --proto
Bug: 64146578
Change-Id: Id6ca2a93e3d15ac696ab54cb241870e973985967
2017-09-18 07:23:23 -07:00
Joe Onorato
7669012623 Clean up file names for protos
Test: cts-tradefed run singleCommand cts -d --module CtsIncidentHostTestCases
Change-Id: Iea2fc81768082e8e01afa8df86e113665020e7f6
2016-12-20 22:28:56 -08:00
Joe Onorato
1754d744a7 First checkin of incident reporting.
There are a few major pieces here:

incidentd
---------
This daemon (started by init) runs and accepts incoming requests to take
incident reports.  When prompted, it calls into various system services
and fills in an IncidentProto data structure, and then writes the report
into dropbox.

The next steps for incidentd:
    - Security review of SELinux policies. These will be a subset of
      the dumpstate permissions.  Until this is done, incidentd is
      not started at boot time.

incident
--------
This shell command calls into incidentd, and can initiate an incident
report and either capture the output or leave for dropbox.

incident_report
---------------
This host side tool can call adb shell with the correct parameters
and also format the incident report as text.  This formatting code
was left of the device on purpose.  Right now it's pretty small, but
as the number of fields increases, the metadata and code to do the
formatting will start to grow.

The incident_report command also contains a workaround to let it
work before incidentd is turned on by default.  Right now, it is
implemented to call adb shell dumpsys <service> --proto directly,
whereas in the future it will go through the full incidentd flow.

incident_section_gen
--------------------
A build-time tool that generates a stripped down set of information
about the fields that are available.

libincident
-----------
This library contains the code to connect to incidentd, and the
meta proto definitions that are used by the framework protos.
The basics are here now, but they are not fully fleshed out yet.
The privacy.proto file contains annotations that can go in the
proto file that we will later use to filter which fields are
uploaded, and which are used by local sources.  For example, a
device in a test lab is safe to upload much much more information
than a real user.  These will share the same mechanism, but the
user's output will be filtered according to these annotations.

frameworks/core/proto
---------------------
These .proto files contain the definitions of the system's
output.  There is one master android.os.IncidentProto file that
is the top level of an incident report, but some other services
(notification, fingerprint, batterystats, etc) will have others
that are used directly by the logging mechanism.

Other files which are shared by several of the services also go
here, such as ComponentName, Locale, Configuration, etc.  There
will be many more.

There is also a first iplementation of a dump method handling
--proto in the fingerprint service.

IncidentManager
---------------
The java API to trigger an incident report.

Test: Not written yet
Change-Id: I59568b115ac7fcf73af70c946c95752bf33ae67f
2016-12-15 11:23:05 -08:00