This commit fixes two somewhat related issues in shell_service.
- The fd returned by StartSubprocess is owned by a unique_fd
contained in the Subprocess object, but also gets closed by the
caller. Resolve this by duping the returned file descriptor.
- A Subprocess object can be destroyed immediately after its initial
construction in StartSubprocess if we're sufficiently unlucky.
Split up the fork/exec and "start management thread" steps, so that
we can safely do everything we need to do on the Subprocess before
handing it over to the thread that'll eventually destroy it.
Also includes squashed patches from AOSP master that allow for use of
unique_fd inside adb.
Bug: http://b/29254462
Change-Id: Id9cf0b7e7a7293bee7176919edc758597691c636
(cherry picked from commit c0e6e40cc9)
(cherry picked from commit 54c72aaccc)
(cherry picked from commit 2c5d1d7cd9)
(cherry picked from commit 2a7b86337f)
(cherry picked from commit 13ea01db45)
(cherry picked from commit 344778da41)
* Also log to the BootEventRecordStore to check lossiness.
* Log factory_reset_current_time_failure separately.
Bug: 27550578
Change-Id: Id3d579a74a59ac28290cb7d6048765519f9ba59b
(cherry picked from commit fff95ba5dd)
This reverts commit 756b6a53a7.
The change is updated to use utimes (instead of futimens) since only
support for seconds resolution is required.
Bug: 27836969
Change-Id: I7134f759fb643e1a149158fcf6e20f76538b57d3
(cherry picked from commit c0dc139b4a)
This reverts commit 13b42bf8a8.
I accidentally merged the wrong version of this change (this version had to be reverted on master).
Change-Id: I651e3bf50515daed08464a49ace2eefefdad89c0
Fixed a file descriptor leak while I was in here.
Bug: 27550578
Change-Id: I8e252e4f5bb3c4e2ae96a1560fbb32ae636722a0
(cherry picked from commit 6f28299d0d)
This change introduces new metrics to discern boot time on encrypted devices:
* post_decrypt_time_elapsed
* boot_decryption_complete
* boot_complete_post_decrypt
* boot_complete_no_encryption
Bug: 27497357
Change-Id: I8d3a411029bd6a45f80589ff67c408593e133a87
(cherry picked from commit c08e996ac8)
In an effort to track down the source of some wonky data being reported.
Bug: 27550578
Change-Id: I1f08447c0203e7982d1b44bc04b531e96358c223
(cherry picked from commit 0660b307b8)
The zero value is meaningless and skews the histogram buckets.
Bug: 27477664
Change-Id: Idd641aa3005819905a2ecf664d2a5781dbbff59b
(cherry picked from commit 3bf9b147f2)
This is necessary to match the mapping in the internal infrastructure.
Bug: 21724738
Change-Id: I292166ff5c0dea7f3d771627120f16af4c56073b
(cherry picked from commit 6f74c0b843)
This value is read from the ro.boot.bootreason system property.
Bug: 21724738
Change-Id: I43bef3d85ba9c8d87669a91da1aa675d9a86e348
(cherry picked from commit a4a1a4ac85)
boot events in the LOCAL_INIT_RC file, bootstat.rc.
This change also creates the /data/misc/bootstat dir during the
filesystem creation block in init.rc.
Bug: 21724738
Change-Id: I2ad6913c0235d5f926c6ef8b3c65d650159c6ed7
* Clarify the README.md that the logs data may be utilized by anyone.
* Fix a whitespace issue.
Bug: 21724738
Change-Id: Id472485f505afb14588ccd645844a3f4a728abc2
The bootstat command enables the measurement and logging of boot time
metrics
for GMS devices.
BUG:21724738
Change-Id: I331456dd38a60fb4ef24a4d5320909dbad30db66