Commit graph

31416 commits

Author SHA1 Message Date
Jin Qian
26b2be0d30 storaged: stop binder threads before exiting
Test: kill healthd when storaged is running
Bug: 36652060
Change-Id: Ie55fb6cb7c8c6df6ce6bc4820c476b90cc0f4165
2017-04-04 19:44:01 +00:00
Jin Qian
566e63da53 storaged: exit if batteryproperties service is dead.
storaged relies on batteryproperties service (healthd) to provide
charger stats. If healthd is killed, kill storaged as well. Both
will be restarted by init process anyway to restore a correct state.

Test: kill healthd when storaged is running
Bug: 36652060
Merged-In: Ia785bb6f5ea259aa43cd1efab9505ebefaf3db12
Change-Id: Ia785bb6f5ea259aa43cd1efab9505ebefaf3db12
2017-04-04 17:45:41 +00:00
Jin Qian
4882eaba25 storaged: use sp<> to keep refcount for storaged_t object
BatteryListener takes sp<> as parameter. Passing raw storaged_t ptr
to BatteryListener will cause the ptr to be freed when BatteryListener
releases the sp<>. Keep a refcount in storaged to prevent this from
happening.

Test: kill healthd while storaged is running
Bug: 36652060
Change-Id: I96bc45a3bedb39eb7158b8f6c86334b5b31c9346
2017-04-03 23:13:26 -07:00
TreeHugger Robot
71de1368c0 Merge "fs_mgr: removing fs_mgr_read_fstab_with_dt()" into oc-dev 2017-04-04 05:36:53 +00:00
Martijn Coenen
6c2b3e5fd8 Merge "Restorecon new vndservice_contexts file." into oc-dev 2017-04-04 03:41:48 +00:00
Josh Gao
845a2f9b4a debuggerd_test: add test for process/thread names.
Make sure that we can get the process/thread names for nondumpable
processes with capabilities.

Bug: http://b/36237221
Test: /data/nativetest/debuggerd_test/debuggerd_test32
Change-Id: Iedd4eae18065c2e64abeebff15e3b9b09a630550
(cherry picked from commit a5199a9e43)
2017-04-03 18:14:50 -07:00
TreeHugger Robot
49ab678930 Merge "add shutdown animation" into oc-dev 2017-04-03 23:51:41 +00:00
Eino-Ville Talvala
5658a29c0c Merge "Include vendor gralloc0 flags in gralloc1 conversion." into oc-dev 2017-04-03 22:03:14 +00:00
Tom Cherry
78a215ff55 Merge "Make init builtin command installkey respect property updates" into oc-dev 2017-04-03 21:58:45 +00:00
Keun-young Park
c50b39994d add shutdown animation
- Run shutdown animation during shutdown if surfaceflinger is
  available / running.
- services necessary for animation should be added to animation
  class.
- Keep debugging tools while non-critical services are terminated:
  logd, adbd, tombstoned

bug: 36526187
Test: many reboots

(cherry picked from commit 7830d59500)

Change-Id: I83011e3f843e6b64c56c453a996db738f497877a
2017-04-03 12:38:01 -07:00
Martijn Coenen
7c1e0d84ab Restorecon new vndservice_contexts file.
Bug: 36052864
Test: boots
Change-Id: Ib0a5904ffb8ed2d865ab85adbf4cdefd52e6a27d
2017-04-03 11:08:58 -07:00
Jin Qian
ba27df4d0f storaged: skip batteryproperties listener if uid_io not available
uid_monitor is the only user of batteryproperties, no need to register
a callback if uid_io not enabled.

Test: run storaged without uid_io, plug/unplug usb cable
Merged-In: If890a93fec155b67c450341c54b44bb18d3aae3d
Change-Id: If890a93fec155b67c450341c54b44bb18d3aae3d
2017-04-03 16:48:44 +00:00
Jin Qian
808f703609 storaged: add support for ufs health info
Test: adb logcat -d -b events | grep storaged_emmc_info
Bug: 36228467
Merged-In: I519fe2b8a99c1c31f1fe720bd671904d1ab609bb
Change-Id: I519fe2b8a99c1c31f1fe720bd671904d1ab609bb
2017-04-03 16:48:30 +00:00
Jin Qian
8197093497 storaged: read emmc health data from sysfs
Sysfs data is straightforward so we don't need parsing anymore.

Also removed periodical check since data is set only once during
driver initialization. Checking at every device boot or storaged
restart should be sufficient to monitor long term status change.

Test: adb logcat -d -b events | grep storaged_emmc_info
Bug: 36228467
Merged-In: I2a181f52c9f19de1e679a3a905aaebafe4d08227
Change-Id: Ic05e353f0af9363f3bcbe793ba0c351082e446ca
2017-04-03 16:48:14 +00:00
Mark Salyzyn
e98f1a9c56 Merge changes I0c3887f2,I8fc585bb into oc-dev
* changes:
  logd: correctly label identical lines
  logd: strip out empty trailing iovec
2017-04-03 14:20:01 +00:00
Bowgo Tsai
608a4a6b3e fs_mgr: removing fs_mgr_read_fstab_with_dt()
Currently there is no client requires fs_mgr_read_fstab_with_dt() so
remove this API. Devices with fstab entries in device tree should use
fs_mgr_read_fstab_default() to get default fstab, or just use
fs_mgr_read_fstab_dt() to get those in device tree.

Bug: 35811655
Test: normal boot sailfish
Test: run factory data reset in sailfish
Test: recovery boot sailfish
Test: adb sideload in sailfish

Change-Id: I1579d81cea7366cf3867cfe5ad56feb36cbb7246
(cherry picked from commit acc1c3c792)
2017-04-01 13:36:53 +08:00
Mark Salyzyn
b88ec1352f logd: correctly label identical lines
Move lastTid array from local in LogBuffer::flushTo to per-reader
context in LogTimes::mLastTid and pass into LogBuffer::flushTo.

Replace NULL with nullptr in touched files.

Simplify LogTimeEntry::cleanSkip_Locked initialization of skipAhead
to memset, to match mLastTid memset initialization.

Test: gTest liblog-unit-tests, logd-unit-tests & logcat-unit-tests
Test: adb logcat -b all | grep chatty | grep -v identical
Bug: 36488201
Change-Id: I0c3887f220a57f80c0490be4b182657b9563aa3f
2017-03-31 15:13:07 -07:00
Mark Salyzyn
dd609d810b logd: strip out empty trailing iovec
If the last buffer has zero length, strip it out of the iovec
issued to SocketClient::sendDatav().

Test: gTest liblog-unit-tests, logd-unit-tests, logcat-unit-tests
Bug: 36497967
Change-Id: I8fc585bbec63402d0e818ff4c620fdd7edcc38dc
2017-03-31 15:12:29 -07:00
Janis Danisevskis
650d22bb53 Make init builtin command installkey respect property updates
init used to block on installkey such that it was unable to
process property events. This lead to a deadlock by which
the Keymaster HAL would wait indefinitely for the
hwservicemanager.ready=true.

This fixes the issue by implementing the builtin in terms of
do_exec, which allows init to stay responsive to properties
while waiting for the child to terminate.

Bug: 36278706
Test: Add a 3s delay into hwservicemanager before it sets the property
      hwservicemanager.ready and the device still boots.

(cherry picked from commit 9cc51728af)

Change-Id: Ia241059d95c610ab01a314969ba23c003333bbba
2017-03-31 09:58:25 -07:00
Bowgo Tsai
3a30b4861c fs_mgr_avb_ops: stores the by-name prefix of /misc instead of fstab struct
fs_mgr_avb_ops->read_from_partition() relies on the by-name prefix to
get the device file when reading a partition. Previously we store the
fstab struct and use fs_mgr_get_entry_for_mount_point() for every read.

It's better to do that once and store the by-name prefix for later use.

Bug: 33254008
Test: test AVB on bullhead
Change-Id: Ie999851b529f984e29ccbf39fb52a8220056fe0c
(cherry picked from commit f5bbfd64a9)
2017-03-31 14:36:08 +08:00
Bowgo Tsai
1aa6eaf821 fs_mgr_avb: allow top-level vbmeta struct to be in 'boot' partition
get_hashtree_descriptor() currently restricts HASHTREE descriptor to be
either in /vbmeta or in the same partition for dm-verity setup.

Also allows it to be from /boot partition because the top-level vbmeta
might be appended at /boot in legacy devices without /vbmeta.

Bug: 35880930
Test: test AVB on bullhead with top-level vbmeta being at /boot
Change-Id: I1ebd16a3c9f17bced6055146e8843b5918a737eb
(cherry picked from commit 37a0b318ef)
2017-03-31 12:30:13 +08:00
TreeHugger Robot
e6b7328b57 Merge "Retry write operation when getting ENOBUFS." into oc-dev 2017-03-31 04:19:30 +00:00
Daichi Hirono
6f6210dd5c Retry write operation when getting ENOBUFS.
Previously libappfuse set SO_SNDBUF to the maximum message size. However
it does not prevent ENOBUF and it made AppFusePerfTest#testReadWriteFile
flaky.

The CL let FuseBuffer retry write operation when getting ENOBUFS.

Bug: 34903085
Test: libappfuse
Change-Id: I1602474d852e1599f6e69103bcf6f18277a5644b
2017-03-31 01:50:50 +00:00
Josh Gao
dd61876771 tombstoned: add tests for b/36685795.
Add some tests for edge cases which may have triggered b/36685795.

Bug: http://b/36685795
Test: debuggerd_test
Change-Id: I20670684c8dae422af157be21e44ba5d6d3214d3
(cherry picked from commit 352a84574d)
2017-03-30 17:52:24 -07:00
Josh Gao
df8cb05498 tombstoned: fix a race between intercept and crash_dump.
Previously, there was no way to detect when tombstoned processed an
intercept request packet, making it possible for a intercept request
followed by a crash_dump being processed in the wrong order.

Add a response to intercept registration, to eliminate this race.

Test: debuggerd_test
Change-Id: If38c6d14081ebc86ff1ed0edd7afaeafc40a8381
(cherry picked from commit 460b336d6a)
2017-03-30 17:52:24 -07:00
Josh Gao
ef042d3fc5 tombstoned: refactor request dequeuing a bit.
Also make it loop, so that upon failing to start a dequeued crash
request, we continue to the next one.

Bug: http://b/36685795
Test: debuggerd_test
Change-Id: I94889125f16f4681c6fa0fa9cac456302602ce01
(cherry picked from commit 807a45807b)
2017-03-30 17:52:24 -07:00
Josh Gao
a1bd1733ae tombstoned: don't increment num_concurrent_dumps until success.
Previously, we would increment num_concurrent_dumps and fail to
decrement it if we failed to start the request. Change this to
only increment after we've successfully started the dump.

Bug: http://b/36685795
Test: debuggerd_test
Change-Id: I66169ed56ed44271e1d8fe1298d95260be7a32a3
(cherry picked from commit 13078245a0)
2017-03-30 17:52:24 -07:00
Wonsik Kim
281531bdcb Revert "init: use read_file and write_file to implement do_copy builtin"
Bug: 36726045
Test: gts-tradefed run gts --abi x86 -m GtsMediaTestCases -t com.google.android.media.gts.MediaCodecCencTest#testCENC_DASH_FMP4_H264_360P_PLAYREADY_CENC
This reverts commit 82bac0de6d.

Change-Id: I3b754f429499daec804a0ad25529294216c39a40
2017-03-30 17:15:17 -07:00
Keun-young Park
e41bf08f56 send SIGTERM only once
- Processes capturing SIGTERM signal will not terminate and
  killProcessGroup will timeout after retry. This gives 200ms
  of waiting per such process. Change it to retry only once as
  SIGTERM will keep failing for such process.

bug: 36696408
Test: check time spent in SIGTERM for reboot

(cherry picked from commit 506cb020c8ab080a6765b8300c84d751557ef744)

Change-Id: If080ae3aa00f1614b25cc3f673eeb70c9713ef6e
2017-03-30 14:17:18 -07:00
Keun-young Park
e1adb869da add killProcessGroupOnce
- killProcessGroup retries if it fails while
  killProcessGroupOnce only tries once.
- useful for sending signal like SIGTERM once.

bug: 36696408
Test: will add usage to init

(cherry picked from commit a88e425e0f5502062c7f3088d53b1b0ce8ef803e)

Change-Id: Ie8eb338ee919b499948baf2a220e584b54293a89
2017-03-30 14:17:09 -07:00
Keun-young Park
54df8375ba set zero shutdown timeout for eng build
- still it will take time to kill services, < 3 secs in tested device.

bug: 36678028
Test: reboot

(cherry picked from commit 56425ed87e1ad7c63437d67c3b17ed7e2ba8d340)

Change-Id: I75b5843b08cdcdbf67c4fe500aa0dd7302dd44d7
2017-03-30 14:13:42 -07:00
Tao Bao
adcb843de7 Merge "fs_mgr: change the log level in fs_mgr_get_boot_config()" into oc-dev 2017-03-30 17:15:18 +00:00
Wei Wang
058188d345 libcutils: remove schedgroup fds [DO NOT MERGE]
am: bcb6419fc9  -s ours

Change-Id: I0ff94dc5292e12d4c2626d5049553b19514ad1ed
2017-03-30 00:02:16 +00:00
TreeHugger Robot
5f12c799a5 Merge changes from topic 'update-verified-priority-bump' into oc-dev
* changes:
  init.rc: launch update_verifier with exec_start
  init: replace property_get with its android::base equivalent
  init: remove unused cutils includes
  init: add exec_start command
2017-03-29 23:12:22 +00:00
Mathias Agopian
ed6aad1cbb Merge "split LightRefBase out of RefBase" into oc-dev 2017-03-29 23:08:15 +00:00
Wei Wang
bcb6419fc9 libcutils: remove schedgroup fds [DO NOT MERGE]
After removing bg_non_interactive cgroup, there is only a ROOT cgroup.
This CL removes the no-op trying to set cgroup.
It also removes the attempt to open non-exist bg_non_interactive cgroup.

Bug: 36649832
Test: marlin boosts and cgroup ROOT task looks normal
Change-Id: Idef1dfdaa71fde63c98c73a3d37f65416aa6f2e2
2017-03-29 14:34:46 -07:00
Mathias Agopian
44cee05904 split LightRefBase out of RefBase
Bug: 36532900
Test: compiled
Change-Id: I3088e1a219e04cf924744d3a0c2d374918bb6395
2017-03-29 20:39:06 +00:00
Tom Cherry
aaeb792312 init.rc: launch update_verifier with exec_start
This allows update_verifier to raise it's priority and ioprio.

Bug: 36511808
Bug: 36102163
Test: Boot bullhead
Test: Verify boottime decrease on sailfish
Change-Id: I5710c6a98dc7acee9063d1fa1d1c80668f0f1528
(cherry picked from commit 1e2d8c7fce)
2017-03-29 13:37:54 -07:00
Tom Cherry
e249097f6d init: replace property_get with its android::base equivalent
Slowly try to decouple property_service.cpp from the rest of init.

Test: Boot bullhead
Change-Id: I267ae0b057bca0bf657b97cb8bfbb18199282729
(cherry picked from commit ccf23537ee)
2017-03-29 13:34:56 -07:00
Tom Cherry
af5102a4f0 init: remove unused cutils includes
Test: Boot bullhead
Change-Id: I629f9c3863f00fa38f87a68442c2380d28764718
(cherry picked from commit 1ec1bd918c)
2017-03-29 13:34:52 -07:00
Tom Cherry
2d80467165 init: add exec_start command
Exec services may also want to set other service flags such as
priority.  Instead of expanding the exec syntax to handle this, create
a new command, exec_start, that will treat an existing service
definition as an exec service.  The new exec_start command will start
the service then halt init from executing further commands until the
service has exited.

This change additionally encapsulates the waiting_for_exec logic into
ServiceManager and removes the ambiguous 'bool' return value from
Reap() which previously indicated if a Reaped service was an exec
service or not.

Bug: 36511808
Bug: 36102163
Test: Bullhead boots, services run with exec_start as they do exec.

Change-Id: I44f775cf1c1dd81d5c715f44fdc150c651a2c80a
(cherry picked from commit b27004aa05)
2017-03-29 13:34:48 -07:00
Eino-Ville Talvala
944e5e0c52 Include vendor gralloc0 flags in gralloc1 conversion.
Map GRALLOC_USAGE_PRIVATE_* fields into bits 28-31 of both producer
and consumer usage for gralloc1.

Test: Camera output works as normal, CTS not regressed
Bug: 35215313
Change-Id: I0736e0f513b193373b822830dbb0efe3f4263770
2017-03-29 12:08:55 -07:00
Sandeep Patil
f5b99d4fe2 init: explicitly label all selinux files in rootfs
With system and vendor split, the files under them get labelled
differently as part of b/36527360. These files also include selinux
policy files if the policy is split. In order to consistently label
them, all sepolicy files on rootfs also are labelled with labels
matching to that of the ones in system and vendor. So, this now requires
init to explicitly label *all* selinux files in rootfs after
initializing selinux.

Test: Boot angler and ensure servicemananger continues to work (uses
      /{plat,nonplat}_service_contexts).
Test: Sideloaded OTA to angler to ensure recovery continues to work.
Test: Launch and load a website in Chrome.
Test: Launch camera and take picture, record video.

Change-Id: I4134eae80b5b51f381b549eb18e604cf271f9eb5
Signed-off-by: Sandeep Patil <sspatil@google.com>
2017-03-29 10:33:41 -07:00
Sandeep Patil
74df5bab16 init: consolidate restorecon after selinux initialization in single function
Test: Boot sailfish
Change-Id: I423028f12a84c4e0c12c9bdde52b6d795d45b620
Signed-off-by: Sandeep Patil <sspatil@google.com>
2017-03-29 10:31:26 -07:00
Bowgo Tsai
89a91d9ea9 fs_mgr: change the log level in fs_mgr_get_boot_config()
fs_mgr might try to get a non-existing config through fs_mgr_get_boot_config()
on a device (e.g., for backward compatibility). Lower the log level to INFO
so it won't appear on the recovery screen.

Bug: 35811655
Test: recovery boot sailfish
Change-Id: I81497259aff3691740170abeef932d363b52be35
(cherry picked from commit 0f34094a17)
2017-03-28 21:28:53 -07:00
Daichi Hirono
8e16ceecb7 Change FuseAppLoop so that it can process messages asynchronously.
Previously FuseAppLoopCallback needs to return values in a synchrnous
manner. The CL changes it to asynchronous mannger so that apps can
process FUSE message asynchrnously.

Bug: 35229514
Test: FuseAppLoopTest
Change-Id: I8edcfdb003a25cfd5e9c490ec871140220b21e35
(cherry picked from commit f5d15f9fc4)
2017-03-29 00:13:58 +00:00
TreeHugger Robot
df937b8255 Merge "Add gralloc usage conversion functions" into oc-dev 2017-03-28 20:55:51 +00:00
Wei Wang
bc41166d56 libcutils: remove sched_set/getscheduler
Bug: 36667354
Test: angler taking video
Change-Id: Ic077d856212c48610a0587c60d1186090166da2b
(cherry-picked from a8d59faa75)
2017-03-28 20:19:16 +00:00
Jesse Hall
33eab3a829 Add gralloc usage conversion functions
Converting gralloc1 / ..graphics.allocator@2.0 usage to gralloc0 usage
requires more than just ORing bits and truncating: the CPU_READ_OFTEN
bits don't match up correctly. Add utility functions for converting
back and forth which handle this properly.

Test: boot bullhead-eng
Change-Id: I1cee972feaea486d5607c60acead2e870c2c9549
2017-03-28 08:22:54 -07:00
Steven Moreland
94f3ca8776 Merge "init: add class_restart" am: 8678872a00 am: ee7137208e
am: 0bd29405c0

Change-Id: I068cfa11752439d68b6f62a7cbc473250c7ab068
2017-03-28 04:36:41 +00:00