Commit Graph

14 Commits

Author SHA1 Message Date
Florian Mayer
cb397475de Merge "Allow zygote to keep socket to heapprofd." am: 4db6cb15de am: ce9b090733
am: f644eaaaa6

Change-Id: I07b1d821f34c427364260d843d6326305aec19c3
2018-10-31 15:27:35 -07:00
Florian Mayer
6ce2d9966d Allow zygote to keep socket to heapprofd.
This allows users to target zygote for heap profiling without
causing it to crash on ForkCommon.

This also allows us to profile zygote in benchmark runs where we want to
profile as many processes as possible.

Bug: 117821125

Test: m
Test: flashed walleye

Change-Id: I3f41b64e0a64e362eafd02cd4e86cb77e434d94c
2018-10-31 10:32:14 +00:00
Dario Freni
4ce4679309 androidfw changes to support /product-services.
See CL I7a6a30bf8e8db9f2738594d187bb9148f138b8da for a more detailed
description of the change.

Test: see CL I7a6a30bf8e8db9f2738594d187bb9148f138b8da description
Bug: 80741439
Change-Id: I6cc9d713c07c319fc2ee1c531af41243bd1d4aee
2018-08-17 16:34:18 +00:00
Andreas Gampe
811f10c645 Merge changes I14df050f,I55c30f78,I269eae0f am: ad7415f11e
am: 3dd16b1eaf

Change-Id: I82179683643a71298d71dd3cbf6916141ba2b2a7
2018-03-14 18:30:51 +00:00
Andreas Gampe
183a5d3cfa Frameworks: Refactor FileDescriptorTable errors
Surface error messages to the caller.

Bug: 74531335
Test: m
Test: Device boots
Change-Id: I14df050feb7f5417bb08d190492c3050cdbb1c1d
2018-03-13 08:18:55 -07:00
Robert Sesek
c0276a54ec Merge "Add Zygote.startChildZygote() to fork a new process that itself is a zygote." am: 554cfd1f1d am: 5b9410c74b
am: 4523bf284a

Change-Id: Ib714e447f06323d38c98de683f5547e66749856e
2018-02-17 04:08:15 +00:00
Robert Sesek
d0a190df8a Add Zygote.startChildZygote() to fork a new process that itself is a zygote.
This adds a new --start-child-zygote argument that instructs the main
zygote to create a new child process that will also be a zygote. The
system_server generates a random name in the abstract socket namespace
for it and the child-zygote to communicate over, and that is passed as
an argument to the new process.

A child-zygote bypasses the normal post-fork-child of the zygote process
in order to preserve itself as a zygote. This means not starting the
Binder threadpool nor launching into ActivityThread. Instead, a
child-zygote calls into its own main function. The main function runs a
ZygoteServer select loop, listening on the socket name specified by the
system_server when it was forked.

Unlike the system zygotes, a child-zygote can be killed without bringing
down the system. Killing a child-zygote will not terminate its child
processes, which will be reparented to init for reaping when they
eventually exit.

Bug: 63749735
Test: m (with multi-project commits landed)
Change-Id: I3e7ebbdba498f8fec1d84cdf927dc43a92be4b68
2018-02-16 14:17:41 -05:00
Jaekyun Seok
1713d9e97a Support /product partition
This CL will support the followings.
- installing a RRO package for framework from /product/overlay
- installing apps from /product/app
- installing priv-apps from /product/priv-app
- installing permissions from
  /product/etc/[default-permissions|permissions|sysconfig]

Bug: 64195575
Test: `mm` under frameworks/base/tests/[libs|privapp]-permissions
adb sync && adb reboot
adb shell cmd package list libraries
  => confirmed com.android.test.libs.product library
adb shell cmd package dump \
  com.android.framework.permission.privapp.tests.product
  => confirmed that the package is a priv-app

And I moved vendor/overlay/framework-res__auto_generated_rro.apk into
system/product/overlay/ on sailfish, and I confirmed that the RRO was
installed properly.

Change-Id: I16175933cebd9ec665d190cc5d564b5414a91827
2018-01-25 12:44:45 +09:00
Narayan Kamath
3879ecc891 fd_utils: address a couple of TODOs.
Drink the android::base koolaid.

Test: make, boots
Change-Id: Ib24b9b59fa3490e80ba78be0199eafa676225b73
2017-03-17 09:43:53 +00:00
Narayan Kamath
84b5511535 fd_utils: switch to libbase logging.
Test: make, boots
Change-Id: I4976508f489ca15af0484f75a9ef02ed575beff5
2017-03-02 17:11:00 +00:00
Narayan Kamath
a352d2473a fd_utils: add missing logging for a couple of failure cases.
Also start using libbase style logging. Other log statements will
be converted in a follow up.

Test: make
Bug: 33579623
Change-Id: I34bb2ccab57e5bdd22aa35be8f8dcb68fdc4e097
2017-03-02 17:11:00 +00:00
Andreas Gampe
8dfa178efb Zygote: Add fdsToIgnore
Add file descriptors that should be ignored in the file descriptor
table check.

Use this to ignore the pipe file descriptors when starting an app
with invoke-with (wrapper).

Bug: 32607405
Test: m
Test: Device boots
Test: Apps start
Test: adb root && adb shell setprop wrap.com.android.calculator2 logwrapper && adb shell am start -S -n com.android.calculator2/.Calculator
Change-Id: I4a30dfc9382d3172cc815bd41b17a123799354f6
2017-01-10 16:55:34 -08:00
Robert Sesek
54e387ddbe Dynamically add the webview_zygote's preloaded APK to the zygote FD whitelist.
This refactors the whitelist to be a class, rather than just a static C array.
The whitelist can then be augmented dynamically when the package path is known
in the webview_zygote.

Test: m
Test: sailfish boots
Test: Enable Multi-process WebView in developer options, perform a search in GSA.

Bug: 21643067
Change-Id: Ia1f2535c7275b42b309631b4fe7859c30cbf7309
(cherry picked from commit 061ee3088a)
2017-01-10 11:44:56 -08:00
Robert Sesek
8225b7c951 Split core/jni/fd_utils-inl.h into a .h/.cpp pair.
(cherry picked from commit 44afe8be8f)

Test: m
Test: sailfish boots

Change-Id: I9ca93f31f6c20b702b2207333a9d56f6592630b0
2017-01-10 11:41:01 -08:00