876ad4571e2eab037a2537f7334220e249a78343 |
|
26-Nov-2016 |
caozhiyuan <cao.zhiyuan@zte.com.cn> |
init: Fix sync issue on property trigger. This issue reproduces in the following senario. 1. ("", "") is added to queue; 2. property_triggers_enabled is set to 1; 3. user defined property is triggered, like sys.usb.config=adb; 4. ("sys.usb.config", "adb") is added to queue; 5. main loop interpret ("", "") and queue all current triggers to execution, so ("sys.usb.config", "adb") is queued for execution for the first time. 6. main loop interpret ("sys.usb.config", "adb"), it is queued for execution for a second time. The second time makes ASIT fail. (cherry pick from AOSP commit b104c502e1db80eda9751b0cba19e2e24fc0c3c0) Bug: http://b/28218187 Change-Id: I230e175e0dca8989f1e5bd812398da90082d0ec1 Signed-off-by: caozhiyuan <cao.zhiyuan@zte.com.cn>
/system/core/init/init.cpp
|
a3cc6026301db08285028c760af2665a66b3cc44 |
|
13-Apr-2016 |
Elliott Hughes <enh@google.com> |
Remove undocumented functionality from init. Bug: http://b/28151340 Change-Id: I5360502c79d9113a13055bf017b39c099033e947
/system/core/init/init.cpp
|
9261ad13ed8a6bf5d43450f3eb5a48ecd65587f1 |
|
23-Mar-2016 |
dcashman <dcashman@google.com> |
init: Fix typo. Bug: 27681085 Change-Id: I4308435a5b58189852c991d1bec65ed11933566a
/system/core/init/init.cpp
|
69022e03d81e43455cf7c21555314c4d08664311 |
|
22-Mar-2016 |
dcashman <dcashman@google.com> |
Temporarily add set_mmap_rnd_bits brillo exception Bug: 27794137 Change-Id: Idc6fc1e208bdb19556173d40215feb66e235c6d6
/system/core/init/init.cpp
|
5d36813dc8d3be3f62856cf5147b828a7a8594a7 |
|
17-Mar-2016 |
dcashman <dcashman@google.com> |
Set mmap_rnd_bits to maximum value. Also make sure it is above a minimum threshold, else abort. Bug: 27681085 Change-Id: Id03ede491e5e013a2a7a090abb306d00cb74f901
/system/core/init/init.cpp
|
9e9efcadc5144e465314d30ca7b3db0ec0a2bc57 |
|
07-Dec-2015 |
Sami Tolvanen <samitolvanen@google.com> |
init: set ro.boot.flash.locked from ro.boot.verifiedbootstate If ro.oem_unlock_supported is specified for the device and it supports verified boot, export lock status in ro.boot.flash.locked. Bug: 26039090 Change-Id: Ie7844aeb458c97944c72d46ea962b9cfb0a7875d
/system/core/init/init.cpp
|
4f71319df011d796a60a43fc1bc68e16fbf7d321 |
|
05-Dec-2015 |
Elliott Hughes <enh@google.com> |
Track rename of base/ to android-base/. Change-Id: Idf9444fece4aa89c93e15640de59a91f6e758ccf
/system/core/init/init.cpp
|
e36a85cdcc93a84a6869fc8fc3fc82e3639d4398 |
|
01-Dec-2015 |
Tom Cherry <tomcherry@google.com> |
restorecon /property_contexts /property_contexts exists before selinux policies are loaded, so we must restorecon before other processes can access it Bug: 21852512 Change-Id: Ie983caac635eb928ab19eea996a5625f3673de39
/system/core/init/init.cpp
|
2d8f1d4c478b9d921730d3fc9b290315e2ff9f04 |
|
09-Nov-2015 |
Nick Kralevich <nnk@google.com> |
Merge "Enable hidepid=2 on /proc"
|
c39ba5ae32afb6329d42e61d2941d87ff66d92e3 |
|
08-Nov-2015 |
Nick Kralevich <nnk@google.com> |
Enable hidepid=2 on /proc Add the following mount options to the /proc filesystem: hidepid=2,gid=3009 This change blocks /proc access unless you're in group 3009 (aka AID_READPROC). Please see https://github.com/torvalds/linux/blob/master/Documentation/filesystems/proc.txt for documentation on the hidepid option. hidepid=2 is preferred over hidepid=1 since it leaks less information and doesn't generate SELinux ptrace denials when trying to access /proc without being in the proper group. Add AID_READPROC to processes which need to access /proc entries for other UIDs. Bug: 23310674 Change-Id: I22bb55ff7b80ff722945e224845215196f09dafa
/system/core/init/init.cpp
|
1dcf325844df54a3a2d274f37dea8dd676391eed |
|
09-Nov-2015 |
Rom Lemarchand <romlem@android.com> |
init: skip "name" DT entry DTs have a standard "name" entry which is not to be turned into an android property, so skip it. Change-Id: I79f6638b4123358c8d80510c1666cf5d4561160e
/system/core/init/init.cpp
|
d7aea443d9bc0b1f37a2c31d0d476d61ff41fb66 |
|
02-Oct-2015 |
William Roberts <william.c.roberts@intel.com> |
property_service: log pid,uid and gid of setprop client When auditing setprop denials, it is often unclear of who the process is in a multi-process domain. To help identify the invoker, log the pid, uid, and gid of the caller. Before: avc: denied { set } for property=wifi.xxx ... After: avc: denied { set } for property=wifi.xxx pid=30691 uid=123 gid=345 ... Change-Id: I5cdcb3d18fbd52e0987b5e1497b9f6620c6c742a Signed-off-by: William Roberts <william.c.roberts@intel.com>
/system/core/init/init.cpp
|
b7349902a945903f9e36a569051f5131beb0bc24 |
|
26-Aug-2015 |
Tom Cherry <tomcherry@google.com> |
init: Use classes for parsing and clean up memory allocations Create a Parser class that uses multiple SectionParser interfaces to handle parsing the different sections of an init rc. Create an ActionParser and ServiceParser that implement SectionParser and parse the sections corresponding to Action and Service classes. Remove the legacy keyword structure and replace it with std::map's that map keyword -> (minimum args, maximum args, function pointer) for Commands and Service Options. Create an ImportParser that implements SectionParser and handles the import 'section'. Clean up the unsafe memory handling of the Action class by using std::unique_ptr. Change-Id: Ic5ea5510cb956dbc3f78745a35096ca7d6da7085
/system/core/init/init.cpp
|
bac3299720623f4226bca103b26260052732ad30 |
|
31-Jul-2015 |
Tom Cherry <tomcherry@google.com> |
Create Service and ServiceManager classes Change-Id: I363a5e4751ad83d2f4096882a6fbbeddca03acfe
/system/core/init/init.cpp
|
96f67316a22bc9236aed70b198e91a5406389e5b |
|
30-Jul-2015 |
Tom Cherry <tomcherry@google.com> |
init: use std::vector<std::string> for argument passing Change-Id: Ie7a64e65de3a20d0c7f7d8efc0f7c1ba121d07fe
/system/core/init/init.cpp
|
fa0c21c94ccb98bfa5cf3cc7a6b220be4a5fa378 |
|
24-Jul-2015 |
Tom Cherry <tomcherry@google.com> |
init: Create classes for Action and Command This creates the concept of 'event_trigger' vs 'property_trigger' Previously these were merged into one, such that 'on property:a=b && property:b=c' is triggered when properties a=b and b=c as expected, however combinations such as 'on early-boot && boot' would trigger during both early-boot and boot. Similarly, 'on early-boot && property:a=b' would trigger on both early-boot and again when property a equals b. The event trigger distinction ensures that the first example fails to parse and the second example only triggers on early-boot if property a equals b. This coalesces Actions with the same triggers into a single Action object Change-Id: I8f661d96e8a2d40236f252301bfe10979d663ea6
/system/core/init/init.cpp
|
f13b1b31399aa501514eb9beeef303d1ae2e0e14 |
|
25-Jul-2015 |
Lee Campbell <leecam@google.com> |
init: Adding support to import directories Support added so init scripts can now import directories. BUG: 22721249 Change-Id: I02b566bfb50ea84469f1ea0c6ad205435a1df286 TEST: Tested importing a folder on arm64 emulator
/system/core/init/init.cpp
|
ee530065648d7fdf1bb80c76385cc54a6d661dc8 |
|
25-Jul-2015 |
Yabin Cui <yabinc@google.com> |
init: expand_props for onrestart commands. It is only a temporary fix. I hope the code can be moved into a member function of class Command. Bug: 22654233 Change-Id: I38c24fb624e54986a953f44d398b3b80c3795d24
/system/core/init/init.cpp
|
00ede7d2626f9343d330dc6f5286bba3e99e41d0 |
|
24-Jul-2015 |
Yabin Cui <yabinc@google.com> |
init: do expand_props before calling the builtins. Also switch expand_props to std::string. Bug: 22654233 Change-Id: I62910d4f74e2b1a5bd2b14aea440767a2a8462b7
/system/core/init/init.cpp
|
74edcea90e31a3795e58aa1b2bbe96032f0bcd61 |
|
24-Jul-2015 |
Yabin Cui <yabinc@google.com> |
init: Let property_get return std::string. Bug: 22654233 Change-Id: Id6091f58432f75e966b9871256049fbe17766c10
/system/core/init/init.cpp
|
4800dbf1da2b7d866c67c7375a55057f2b6c6d52 |
|
16-Jul-2015 |
Nick Kralevich <nnk@google.com> |
init: refuse to start process if domain transition not defined When SELinux is in enforcing mode, any process executed by init must have a domain transition defined. See https://android-review.googlesource.com/108640 for details. This prevents an executable spawned by init from remaining in init's (very powerful) SELinux domain. However, this is only enforced when SELinux is in enforcing mode. During new device bringup, it's common to run an Android device in globally permissive mode. In globally permissive mode, SELinux denials are logged only, but otherwise ignored. If appropriate SELinux domain transitions are not defined from init to init spawned processes, this could cause misleading SELinux denials attributed to init instead of the child process. To help address these misleading denials, modify init to not spawn processes unless a domain transition is defined. This essentially enforces the rules in https://android-review.googlesource.com/108640 on both permissive and enforcing kernels. While I'm here, change some "freecon()" calls to "free()", with the long term goal of deleting freecon() entirely. Change-Id: I3ef3a372bb85df61a3f6234cb1113cc25fc6506a
/system/core/init/init.cpp
|
d62f0608d9d67bf647cf15debbd163e84584fe44 |
|
13-Jun-2015 |
Elliott Hughes <enh@google.com> |
init support for cgroups. This adds the "writepid" option that instructs init to write the child's pid to the given filenames (such as /dev/cpuctl/bg_non_interactive/cgroup.procs and/or /dev/cpuset/foreground/cgroup.procs). Bug: http://b/21163745 Change-Id: I121bb22aa208bc99c4fb334eb552fdd5bcc47c1a
/system/core/init/init.cpp
|
4d87095ebfefdb9e641492462f0a0e21d5b96ecf |
|
13-Jun-2015 |
Nick Kralevich <nnk@google.com> |
Remove calls to is_selinux_enabled() d34e407aeb5898f19d4f042b7558420bbb3a1817 removed support for running with SELinux completely disabled. SELinux must either be in permissive or enforcing mode now. Remove unnecessary calls to is_selinux_enabled(). It always returns true now. Change-Id: Ife3156b74b13b2e590afe4accf716fc7776567e5
/system/core/init/init.cpp
|
17fff893c04971b519d25d52b07f51111353cba5 |
|
02-Jun-2015 |
Mark Salyzyn <salyzyn@google.com> |
init: change exec parsing to make SECLABEL optional Allow SECLABEL to be - to denote default Change-Id: I58cdc6c805dc6e50dc42b7e13e72d0eaf4864f11
/system/core/init/init.cpp
|
c7331d02d1c6b1e51b3a1210506f38fd61819495 |
|
14-May-2015 |
Elliott Hughes <enh@google.com> |
Reduce the coldboot timeout to 1s. 5s was already a ridiculously long time to delay booting, and some OEMs are trying to make it even more insane: https://www.codeaurora.org/cgit/quic/la/platform/system/core/commit/?h=lp&id=fd23edd48272976d2fb333f377242173f92aa343 Let's at least ensure that Nexus and Android One devices don't take forever to boot... Bug: http://b/19899875 Change-Id: I9680c166a759360f34118e51cd0645e12b6bd5c8
/system/core/init/init.cpp
|
e5ce30fed81d1918a259be092dcd8bfffc3c2649 |
|
07-May-2015 |
Elliott Hughes <enh@google.com> |
Clean up init /proc/cmdline handling. Helped debug a problem where the N9 bootloader incorrectly concatenated the various command lines. Bug: http://b/20906691 Change-Id: I0580b06f4185129c7eedf0bdf74b5ce17f88bf9c
/system/core/init/init.cpp
|
d34e407aeb5898f19d4f042b7558420bbb3a1817 |
|
28-Apr-2015 |
Nick Kralevich <nnk@google.com> |
init: remove support for disabled SELinux Remove support for androidboot.selinux=disabled. Running with SELinux disabled is not a supported configuration anymore. SELinux must be in enforcing in shipping devices, but we also support permissive for userdebug/eng builds. Don't try security_setenforce() if we're already in enforcing mode. A kernel compiled without CONFIG_SECURITY_SELINUX_DEVELOP does not have a permissive mode, so the kernel will already be enforcing once the policy is loaded. Bug: 19702273 Change-Id: I07525a017ddb682020ec0d42e56a2702c053bdeb
/system/core/init/init.cpp
|
f667a3247a7e814355feedbc08c6bbc92a9409b5 |
|
26-Apr-2015 |
Nick Kralevich <nnk@google.com> |
init: get rid of the remaining double mounts Don't double mount /dev and its subdirectories anymore. Instead, the first stage init is solely responsible for mounting it. Don't have init prepare the property space. This is the responsibility of the second stage init. Don't have SELinux use the property space to determine how we should be running. Instead, create a new function and extract the data we need directly from /proc/cmdline. SELinux needs this information in the first stage init process where the property service isn't available. Change-Id: I5b4f3bec79463a7381a68f30bdda78b5cc122a96
/system/core/init/init.cpp
|
178299fd459b7622e9e3de05a48d6ba050f92bec |
|
26-Apr-2015 |
Nick Kralevich <nnk@google.com> |
Merge "init: don't double mount /proc and /sys"
|
9dec93bfeb7a4c1ef49745f60f551e0b11a35b2d |
|
26-Apr-2015 |
Nick Kralevich <nnk@google.com> |
init: don't double mount /proc and /sys The first stage init mounts /proc and /sys, and then the second stage init also mounts /proc and /sys on top of the existing mount. Only mount these two directories once, in the first stage init. Not yet fixed: the double mounting of /dev. Removing the double mounting doesn't work right now because both init stages are trying to create a property space, and if the double mount of /dev goes away, the property service in the second stage init fails to work. Change-Id: I13719027a47526d074390c2b1a605ad99fb43a8f
/system/core/init/init.cpp
|
eedbe81f753fd19e5eb2238187c5618e9153bf55 |
|
25-Apr-2015 |
Nick Kralevich <nnk@google.com> |
init: fix write_file checkreqprot logic error write_file() returned -errno on error, not -1. Callers who check for -1 would falsely believe that the write was successful when it wasn't. Fixup write_file so that it return -1 on error consistent with other functions. Change-Id: Ic51aaf8678d8d97b2606bd171f11b3b11f642e39
/system/core/init/init.cpp
|
a1f6a4b13921f61799be14a2544bdbf95958eae7 |
|
25-Apr-2015 |
Nick Kralevich <nnk@google.com> |
init: remove mkdir /dev /proc /sys These directories are already present in the initial ramdisk, and these mkdir calls are no-ops. Change-Id: I528f9e96a3471de904845a2f9e09c1b6ff83a708
/system/core/init/init.cpp
|
929f4070767d1e4806c058849178afa13d9ded1e |
|
25-Apr-2015 |
Elliott Hughes <enh@google.com> |
Switch init to epoll. Not just because it's what the cool kids are doing --- it also lets us simplify the inner loop and decouple it from whatever systems want to be woken to perform some activity if there's data to be read on some fd. Currently this is just used to clean up the existing signal handling, keychord, and property service code. Change-Id: I4d7541a2c4386957ad877df69e3be08b96a7dec5
/system/core/init/init.cpp
|
c6c26ed781d9ae1ba388cebba63532d2ecda3227 |
|
25-Apr-2015 |
Elliott Hughes <enh@google.com> |
Clean up property service initialization. All the code that was being delayed does is create a socket. We can do that straight away, avoid the overhead, and simplify our main loop. The keychord fd, on the other hand, seems a little tricky. It looks like /dev/keychord isn't immediately available, at least not on N9; we have to wait for ueventd to set us up the bomb. Change-Id: I020e75b8e4b233497707f0a3cbbb6038b714161f
/system/core/init/init.cpp
|
9042cae40b60f37294073b59744d04c18033a07c |
|
25-Apr-2015 |
Elliott Hughes <enh@google.com> |
Clean up init signal handling a little. We can set it up earlier, and error reporting like this helped me find the SELinux problem with the last change to this code. Change-Id: If0f38bc5ff0465c4030e2d39d34f31f49b2d8487
/system/core/init/init.cpp
|
662baefbb7ceaf2f2502f4e7752d4a6d835f216a |
|
25-Apr-2015 |
Elliott Hughes <enh@google.com> |
Merge "Setup signal handler before any exec command"
|
f65730e620dde083133b8c1ab61c0d07b4dd8c2f |
|
24-Apr-2015 |
Elliott Hughes <enh@google.com> |
Revert "Revert "Make init re-exec itself for its SELinux domain transition."" This reverts commit 4217374611ada50f33aee544f015f6f9dfbf7ced. It turns out that the kernel passes any unrecognized arguments on to init, and (at least) N6 and N9 have such arguments. My lazy check of argc was thus insufficient to recognize what stage of init we were in, so we'd skip to stage 2 and not set up SELinux. And apparently you can get a very long way with SELinux off... We'll fix that in a later change. Bug: 19702273 Change-Id: I43b3fb722fed35dd217cb529cbcac9a29aff4e4b
/system/core/init/init.cpp
|
4217374611ada50f33aee544f015f6f9dfbf7ced |
|
24-Apr-2015 |
Nick Kralevich <nnk@google.com> |
Revert "Make init re-exec itself for its SELinux domain transition." shamu isn't booting. This reverts commit adf0d1bbfa4bc560c2106f14afa8258a11c48bf6. Change-Id: I89d568838cebbe14cc4a8ae3843f0f1ac54987af
/system/core/init/init.cpp
|
adf0d1bbfa4bc560c2106f14afa8258a11c48bf6 |
|
23-Apr-2015 |
Elliott Hughes <enh@google.com> |
Make init re-exec itself for its SELinux domain transition. Change-Id: I38adabe5789d671e3f7d21936071a758ec8cea8a
/system/core/init/init.cpp
|
4f673306fc20736be4f4fab602718f9dd28ff5e9 |
|
18-Apr-2015 |
Johan Redestig <johan.redestig@sonymobile.com> |
Setup signal handler before any exec command Fixes init deadlock when an exec command was called in an on-init section. The exec command handling relies on that the signal handler mechanism is working to know when to continue executing commands. Change-Id: Ib0ce75ffad7cf3bf926c93d0506b2fe3e5a92630
/system/core/init/init.cpp
|
da40c00137f75543a69972f1be506e2d14a41845 |
|
28-Mar-2015 |
Elliott Hughes <enh@google.com> |
Log more timing information from init. Also make important events in init's life NOTICE rather than INFO, and ensure that NOTICE events actually make it to the kernel log. Also fix the logging so that if you have a printf format string error, the compiler now catches it. Also give messages from init, ueventd, and watchdogd distinct tags. (Previously they'd all call themselves "init", and dmesg doesn't include pids, so you couldn't untangle them.) Also include the tag in SELinux messages. Bug: 19544788 Change-Id: Ica6daea065bfdb80155c52c0b06f346a7df208fe
/system/core/init/init.cpp
|
db3f267c99411b10144998c6c1f1a6288d0191bc |
|
20-Mar-2015 |
Elliott Hughes <enh@google.com> |
Clean up property setting code. In particular, ensure that all property_set failures are reported. Change-Id: Iab94a28bcba2346868c0f39bcfe26e55a2c55562
/system/core/init/init.cpp
|
d679bc9e568fa1e7d1d2ce9f478b1d4f00dae42a |
|
20-Mar-2015 |
Elliott Hughes <enh@google.com> |
Lose bootmode and console globals. Also remove some code marked "TODO: these are obsolete. We should delete them". Change-Id: I6255cee4cb6680bfcbc5b46366990309cba95037
/system/core/init/init.cpp
|
6a52443d31d4de56ead022a55f63683316d96634 |
|
28-Feb-2015 |
Rom Lemarchand <romlem@android.com> |
Parse boot properties from device tree - Make sure compatible DT node is "android,firmware" - Set ro.boot.* properties from firmware/android/ DT node (cherry-pick of cbcbea27c70846a96f4bba2f7cb245f937de4d3f.) Change-Id: If3d0716831516cb3d3fde1f75d57e2691d42d054
/system/core/init/init.cpp
|
bbc01d825448a738160716f95d9cc38f2be5f4f1 |
|
20-Mar-2015 |
Elliott Hughes <enh@google.com> |
Merge "Remove /proc/cpuinfo parsing"
|
0dccc888bd1d48acf412edd2b5279e5d1040b156 |
|
19-Mar-2015 |
Elliott Hughes <enh@google.com> |
Remove useless memset from init. Change-Id: Ia880810bb2c9a976dceeb0ffdba0cb98e69e3c6d
/system/core/init/init.cpp
|
cc86fb2b29b13570ff416d4590a8cab705b19ec3 |
|
18-Mar-2015 |
Elliott Hughes <enh@google.com> |
Switch init over to _PATH_DEFPATH. Bug: 19564110 Change-Id: I343b4a360b10319dca13ab01f2d411ff940e9052
/system/core/init/init.cpp
|
74b34f3cb79aa8f2c5ba6a9dcc46d0dd84cdac86 |
|
28-Feb-2015 |
Rom Lemarchand <romlem@android.com> |
Remove /proc/cpuinfo parsing - Clean up the paths for ro.revision and ro.hardware parsing - Use ro.hardwre in ueventd instead of parsing the kernel command line (cherry-pick of 38b340a52f8e864650db8bae1eb88d5c00485db0.) Bug: 19366018 Change-Id: I018a293f3d46e736a8b65132b5b00b0f7c20edae
/system/core/init/init.cpp
|
58c3bacc38072dafa77e5d33bffa4d3a2a4d2562 |
|
11-Mar-2015 |
Elliott Hughes <enh@google.com> |
Fix a printf format string (caught by clang but not GCC). Change-Id: I665756615eef74b05ef92f5865d910f29ead0695
/system/core/init/init.cpp
|
8d82ea05cb0945ba6cb8bf321b9ffbd0b6932745 |
|
07-Feb-2015 |
Elliott Hughes <enh@google.com> |
Implement exec. Change-Id: I20329bc9b378479d745b498d6a00eca0872cd5ab
/system/core/init/init.cpp
|
e2d63af002a3b494f6bd464f2652b6e1997e7a52 |
|
18-Feb-2015 |
Yabin Cui <yabinc@google.com> |
Move sprintf to snprintf. Bug: 19340053 Change-Id: Id0d866e6195ed4752b4be6081eeb2aab8b1dbe9a
/system/core/init/init.cpp
|
a197ff12dd336a9945ad1164402980296f9c235c |
|
05-Dec-2014 |
Yongqin Liu <yongqin.liu@linaro.org> |
bootchart: fix bootchart can not be triggered problem bootchart uses a file on the data partition to decide if it should collect data for bootchart, but the data partition will be mounted by the mount_all command in the "on fs" section, and it will be only added into the action queue when command "trigger fs" is executed, but that's after the bootchart_init action (late_init). This change makes bootchart_init a builtin command of init, and make it executed as the first command of "on post-fs" section which will be triggered after the "on fs" section. This change also refactors the bootchart code to all be in bootchart.cpp. Change-Id: Ia74aa34ca5b785f51fcffdd383075a549b2a99d9 Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
/system/core/init/init.cpp
|
f682b4786a4093efb23bf80d69bf80eb274b145b |
|
06-Feb-2015 |
Elliott Hughes <enh@google.com> |
Clean up reading and writing in init. This isn't particularly useful in and of itself, but it does introduce the first (trivial) unit test, improves the documentation (including details about how to debug init crashes), and made me aware of how unpleasant the existing parser is. I also fixed a bug in passing --- unless you thought the "peboot" and "pm" commands were features... Bug: 19217569 Change-Id: I6ab76129a543ce3ed3dab52ef2c638009874c3de
/system/core/init/init.cpp
|
c0e919c92062360a69b771722677d041c9998403 |
|
04-Feb-2015 |
Elliott Hughes <enh@google.com> |
Stop using #if for conditional compilation. Use regular 'if' to prevent bitrot. Also remove remaining typedefs. Change-Id: I2e6ca928e2db29b88b643cf990ff05cfb0be94a6
/system/core/init/init.cpp
|
f3cf438714aa1284d8a58e2f3b108ba93f6d3abb |
|
04-Feb-2015 |
Elliott Hughes <enh@google.com> |
Build init as C++. This is just the minimal change to keep it building. Change-Id: I245c5b8413a1db114576c81462eb5737f5ffcef2
/system/core/init/init.cpp
|