chromium/third_party/android_platform/README.chromium

Name: Android Platform engineering tools
Short Name: android platform development
URL: https://android.googlesource.com/platform/development
Version: unknown
Date: 2014/05/02
Revision: 1b10ec4
License: Apache 2.0
License File: LICENSE
Security Critical: no
Shipped: no

Description:
Android Platform engineering tools, specifically:
1. stack symbolization scripts
2. IntelliJ formatting settings.
   Taken from commit: 622d3d4c5b3bee50fd335f3282d9e9d64ae0f5f7

Local Modifications:
Only picked the few components useful to Chromium (as listed above).

The scripts have been modified to better suit Chromium development. Changes
include, but are not limited to, the following:
Added option to change the amount of symbolization done.
Updated output directories to be set by environment variable or --flags
When calling addr2line, check the symbol is a file that looks like it contains
    symbols.
Added support for parsing LOG(FATAL) and DCHECK errors and their
    stack traces, as emitted by src/base/debug/stack_trace_android.cc
Added support for finding symbols when library is loaded directly from the APK.
Changed the toolchain to remove references to 4.6 toolchains.
Added support for arch=x64 as an alias to arch=x86_64
Added debug logging and --verbose parameter.
Used fast ELF symbolizer for symbols.py and tombstones
Added code address adjustment for the debuggerd output from pre-M Android
    where relocations are packed.
Added code to capture java stderr for better handling of native->java crashes.
Fixed invalid using decl in logging header debug.h
Only attempt to symbolize with ELF libraries.

Changed the stack scripts to use llvm tools instead of gnu toolchain.
Additionally use symbolizer instead of addr2line, objdump, etc, since llvm symbolizer
is more efficient in finding function names, line numbers etc.

Speedup symbolization by avoiding unnecessary APK manifest extraction loops.

Changed the symbolizer to act in a passthrough mode when reading from stdin, so
    adb logcat can be piped through it to symbolize on the fly.

Made the symbolizer agnostic to the width of pointers.
Clamping the padding on symbolized names to 80 columns.

Added an option to the symbolizer passthrough mode to flush the output regularly
    which simplifies its intereaction with logcat_monitor's transform_func [1]
    within the test runners [2] and [3].
    [1] https://crsrc.org/c/third_party/catapult/devil/devil/android/logcat_monitor.py;drc=dc3e9bf012e68f78efc07dff48cdc023fc130739;l=40
    [2] https://source.chromium.org/chromium/chromium/src/+/main:build/android/pylib/local/device/local_device_instrumentation_test_run.py?q=local_device_instrumentation_test#:~:text=def%20_ArchiveLogcat(self%2C%20device%2C%20test_name)%3A
    [3] https://source.chromium.org/chromium/chromium/src/+/main:build/android/pylib/local/device/local_device_gtest_run.py#:~:text=def%20_ArchiveLogcat(self%2C%20device%2C%20test)%3A