Commit Graph

25 Commits

Author SHA1 Message Date
George Burgess IV
02bf04ac01 Merge "Fix a 'memory leak'" am: 38e7338d92
am: bc49cb8460

Change-Id: I3ecf0ecdf20bb61bda76fff547f920040ded47d6
2018-06-05 19:56:22 -07:00
George Burgess IV
9fb8177ca5 Fix a 'memory leak'
Realistically, this memory will be reclaimed by the OS when we return
here. Regardless, we do a similar cleanup above if an exec() function
fails, and having the free here makes our tooling slightly happier.

Complained about by the static analyzer

Bug: None
Test: Ran the analyzer. It no longer complains about this leak.
Change-Id: Ia7107c585cc38fef8bd7c59d85ff896b04e93658
2018-05-15 18:03:00 -07:00
Yi Jin
b8344dc72f Fix command line tool to set the right privacy enum.
Test: manual
Change-Id: I3f0845ea32b46f1a028f8b6d3d4180a90a47beb5
2018-01-24 18:25:33 -08:00
Yi Jin
22769e0123 Fixed several bugs found for incidentd
1. Add logging for proto can't be parsed by incident_report
2. Close opened file descriptor of incident report request!
3. Fix invalid syntax of auto-gen section_list.cpp

Bug: 67849582
Test: manually run incident and checks /proc/<its pid>/fd
Change-Id: I38e6ac28de09aca6243ad536ed41d8059e08ba24
2017-10-18 13:17:32 -07:00
Chih-hung Hsieh
e1e0785c38 Merge "Use -Werror in frameworks/base" am: 16fbd3a1d8 am: 0bfb717a37 am: 9f004b1752
am: decc397b26

Change-Id: Id4abbc6cb95b2eb96f535b6c1c5295cb27c9d2b0
2017-10-16 20:39:41 +00:00
Chih-hung Hsieh
0bfb717a37 Merge "Use -Werror in frameworks/base"
am: 16fbd3a1d8

Change-Id: Iab69cf4f99cf4bedd12eb7764c773a893bfe5343
2017-10-16 19:24:53 +00:00
Chih-Hung Hsieh
c7edf078f9 Use -Werror in frameworks/base
* Fix unused variable and return value warnings.

Bug: 66996870
Test: build with WITH_TIDY=1
Change-Id: I890e65a20848d00559ba5a4f9691be1347b456af
2017-10-13 16:25:16 -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
Kweku Adams
ee6495982f incidentd: Fix printing of repeated scalar fields.
Also add check for when enum value can't be found and fixing output
formatting for some int types.

BUG: 65633831
Test: check incident_report output of repeated enums.
Change-Id: I329eef9b3bb0026259ea465ab67e71952df1a4e4
2017-10-05 16:48:00 -07:00
Chih-hung Hsieh
e640a8284d Merge "Revert work around clang-tidy segmentation fault."
am: a47e513464

Change-Id: Ie04d0d16a05c35a865776571f95078e63bc1bf47
2017-10-04 06:38:31 +00:00
Chih-Hung Hsieh
ca8dbebe1e Revert work around clang-tidy segmentation fault.
Bug: 34740546
Test: build with WITH_TIDY=1 and
WITH_TIDY_CHECKS="*,-readability-*,-google-readability-*,-google-runtime-references"

Change-Id: If99c75cab6a2bec0c6b38aa17189668b4943478d
2017-10-03 20:23:10 -07:00
Dan Willemsen
24041fe213 Merge "Convert incident_report and incident-section-gen to Android.bp"
am: d928842ab6

Change-Id: I0e0ff3d75ce5f9dc302052c1da057db8d5d35cd7
2017-09-09 22:11:38 +00:00
Dan Willemsen
760d57a888 Convert incident_report and incident-section-gen to Android.bp
See build/soong/README.md for more information.

Test: m incident_report incident-section-gen
Test: mmma frameworks/base
Change-Id: If1a930b40196139d29e63f6558bc4a75faca1967
Merged-In: If1a930b40196139d29e63f6558bc4a75faca1967
2017-09-09 19:24:33 +00:00
Dan Willemsen
b29045ce9d Merge "Convert incident_report and incident-section-gen to Android.bp" into oc-mr1-dev-plus-aosp
am: 2dae0e246e

Change-Id: I2abad0b8486a3d632d5b186b53d7ff3f89318993
2017-09-09 19:23:52 +00:00
Dan Willemsen
fc6d511d66 Convert incident_report and incident-section-gen to Android.bp
See build/soong/README.md for more information.

Test: m incident_report incident-section-gen
Test: mmma frameworks/base
Change-Id: If1a930b40196139d29e63f6558bc4a75faca1967
2017-09-08 23:36:58 -07:00
Yi Jin
f32af48069 Fix parsing enum types in incident report tool as well as adding
some additional loggings

Test: manually flashed to device and test calling IncidentManager.java
functions
Change-Id: I69610414edde865b20ba632837f037fbe43f99db
2017-08-11 17:28:12 -07:00
Yunlian Jiang
7a757a0f08 fix a memory leak.
This fixes a memory leak
 warning: Potential leak of memory pointed to by 'buffer' [clang-analyzer-unix.Malloc]

Bug:None
Test: The warning is gone.
Change-Id: I50bfd9f7d70964da0f1808b73fc6554831020214
2017-07-25 16:19:19 -07:00
yawanng
e725325270 Revert work around clang-tidy segmentation fault.
Bug: 34740546
Test: build with WITH_TIDY=1 and
WITH_TIDY_CHECKS="*,-readability-*,-google-readability-*,-google-runtime-references"

Change-Id: Ie0885744bdf07d1a66792b61d8a49305162bcd71
2017-06-12 09:45:47 -07:00
Yunlian Jiang
89547ce017 fix some memory leaks.
This fixes some warnings like

warning: Potential leak of memory pointed to by 'target'
[clang-analyzer-cplusplus.NewDeleteLeaks]

Bug: None
Test: The warnings are gone.
Change-Id: I3708671bbc9965133439664b766df3236d1b01bf
2017-04-20 10:28:00 -07:00
Chih-Hung Hsieh
fca7aac5ec Work around clang-tidy segmentation fault.
This should affect only builds that call clang-tidy.
Without this change, clang-tidy has segmentation fault
when compiling several files in the incident_* directories.

Bug: 34740546
Test: build with WITH_TIDY=1 and
DEFAULT_GLOBAL_TIDY_CHECKS="*,-readability-*,-google-readability-*,-google-runtime-references"

Change-Id: Idfd46f36c01ccdd401eb54b750bc9d962c29ddeb
2017-01-26 18:47:14 -08:00
Joe Onorato
73c109a089 turn off warning that proto generated code causes.
Test: make
Change-Id: Ife3006dc16691dd95a2cc3d36c9b8832970601c9
2016-12-20 22:28:56 -08:00
Joe Onorato
5a991adaf5 Fix varargs bug that made incident_report print incorrectly.
Test: incident_report 3000
Change-Id: I397677ecd6e50ad143518416c8fa3e408139189b
2016-12-20 22:28:56 -08: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
b69b95f0bd Fix the mac build
Change-Id: Id4a5c3b1a6fbebcf2079152c31a907536d7f950d
2016-12-16 13:16:40 -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