Commit graph

40172 commits

Author SHA1 Message Date
TreeHugger Robot
820ef15058 Merge "Parse IfIndex for Netlink RTM_NEWADDR / RTM_DELADDR event" into pi-dev 2018-06-06 13:51:24 +00:00
Mark Salyzyn
ea03e1f841 liblog: expect content only if ro.logd.kernel is enabled
On svelte devices, CTS test liblog#android_logger_get_ fails on the
missing kernel buffer because it is not enabled to save space.

Test: gTest liblog_unit_tests
Bug: 109669791
Change-Id: Iaf46fe9713d3462a56885515a67db640544345ab
2018-06-05 08:42:51 -07:00
Inseob Kim
9bd3ee1c4f Support /product/bin
Bug: 80422611
Test: m -j succeeded and permissions of files under /product/bin are set
correctly

Change-Id: I83377d809c47c92da6b226d2853ea6a7462fb127
Merged-In: I83377d809c47c92da6b226d2853ea6a7462fb127
(cherry picked from commit 25195daaca)
2018-06-01 10:38:57 +09:00
TreeHugger Robot
f88508898c Merge "Support product-specific libraries" into pi-dev 2018-06-01 01:00:28 +00:00
Yin-Chia Yeh
c5c84baaf8 Camera: add DISABLE error code
Test: CTS CameraEvictionTest + IdleUidTest
Bug: 77486868
Change-Id: I1411d6667776963435ce25bd643a33c41d224921
2018-05-31 12:14:14 -07:00
Inseob Kim
e5c2de355b Support product-specific libraries
Product-specific libraries in /product/lib can be exposed to Android
apps by adding the list of the libs into
/product/etc/public.libraries-<companyname>.txt. The libs MUST be named
as lib<name>.<companyname>.so.

Bug: 73095206
Test: with taimen
mma -j and runtest.sh. The libs are all loaded in system, but not in
vendor. After reinstalling app using adb -r and reopening app, only
libraries listed in .txt are loaded

Change-Id: I7c386813c72a7b225a7f244b6c5fec4ac0660fd3
Merged-In: I7c386813c72a7b225a7f244b6c5fec4ac0660fd3
(cherry picked from commit 67cb05654c)
2018-05-31 09:59:21 +09:00
TreeHugger Robot
39edb87aaf Merge "healthd_mode_charger: unblank the screen only on first frame" into pi-dev 2018-05-24 07:03:36 +00:00
Andrew Chant
c70e76f1a4 Merge "Add cwren to libmetricslogger OWNERS" into pi-dev 2018-05-24 01:30:58 +00:00
TreeHugger Robot
f6f8751fd6 Merge "Make per-application memcg hierarchy configurable via a property" into pi-dev 2018-05-24 01:20:17 +00:00
Thierry Strudel
ac2aa7d7b1 healthd_mode_charger: unblank the screen only on first frame
Original code is unblank screen for all frames of the first
cycle, unblank is needed only before the first frame of the
first cycle.

Bug: 74771887
Change-Id: I51d8390e359335a0b1cb127b096db1a8b889b169
Signed-off-by: Thierry Strudel <tstrudel@google.com>
2018-05-23 17:30:16 -07:00
Suren Baghdasaryan
cbb690299f Make per-application memcg hierarchy configurable via a property
Introduce ro.config.per_app_memcg Android property to enable/disable
per-application memcg hierarchy.
On low-ram devices (ro.config.low_ram=true) ro.config.per_app_memcg
defaults to true, otherwise it defaults to false.

Bug: 80201565
Test: set ro.config.per_app_memcg=true and verify /proc/<app_pid>/cgroup
membership (memory:/apps/uid_xxx/pid_xxx)
Test: set ro.config.per_app_memcg=false and verify /proc/<app_pid>/cgroup
membership (memory:/)
Change-Id: Iabd3ef6c9c16c774b9da959a7f43b5f66df120a3
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2018-05-23 16:23:20 -07:00
Andrew Chant
2cd9d92a1d Merge "Add Hardware Reliabilty metrics to C header" into pi-dev 2018-05-23 21:25:45 +00:00
Andrew Chant
77b720e458 Add cwren to libmetricslogger OWNERS
Bug: 69978775
Test: None.
Change-Id: Ic48e37fa4a1fa192bcd948954dc056219535e0b8
2018-05-23 14:16:42 -07:00
Andrew Chant
358471f749 Add Hardware Reliabilty metrics to C header
Expose Hardware Reliabilty TRON metrics constants
for logging via C++ interfaces.

Bug: 69978775
Test: Logged events from Pixelstats HAL
Change-Id: I9a1c4467d31f64ae3c43e35b0a4cf5a92157c39f
2018-05-22 15:55:49 -07:00
Jordan Liu
428a6ffaf8 Merge "Add a new directory to store downloaded apns" into pi-dev 2018-05-22 21:12:31 +00:00
Tom Cherry
8b491495a3 Merge "init: finer grained permissions for ctl. properties" into pi-dev 2018-05-22 20:15:07 +00:00
Tom Cherry
9ad11c0eee Merge "init: allow entering of network namespaces" into pi-dev 2018-05-22 17:13:41 +00:00
Christopher Ferris
1ddef8852a Merge "Fix bug when doing signal handler lookup." into pi-dev 2018-05-22 16:24:45 +00:00
Tom Cherry
1debdcf1cf init: finer grained permissions for ctl. properties
Currently, permissions for ctl. property apply to each action verb, so
if a domain has permissions for controlling service 'foo', then it can
start, stop, and restart foo.

This change implements finer grainer permissions such that permission
can be given to strictly start a given service, but not stop or
restart it.  This new permission scheme is mandatory for the new
control functions, sigstop_on, sigstop_off, interface_start,
interface_stop, interface_restart.

Bug: 78511553
Test: see appropriate successes and failures based on permissions
Change-Id: I6ce915ae39954a67eb6fe1795a93cf715c352ae4
2018-05-22 08:02:35 -07:00
TreeHugger Robot
93d48fe0b6 Merge "Add files to CleanSpec.mk" into pi-dev 2018-05-22 05:26:16 +00:00
Suren Baghdasaryan
20686f061e lmkd: Do not set soft_limit_in_bytes on high-end devices
Setting memory.soft_limit_in_bytes on high-end devices with large memory
reserves affects performance of memory-hungry applications that have
large workingsets and keep thrashing because of the memory limits imposed.
Limit the usage of memory.soft_limit_in_bytes to low-memory devices only.
Add debug messages for future troubleshooting to capture cases when
vmpressure events are being ignored.

Bug: 78916015
Test: collect vmstat while running a heavy app
Change-Id: Ib4434b96d2be802ef89960b573486eae8d12f198
Merged-In: Ib4434b96d2be802ef89960b573486eae8d12f198
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2018-05-21 23:17:46 +00:00
TreeHugger Robot
34de3c84fe Merge changes from topic "generic_by_name" into pi-dev
* changes:
  Adds /dev/block/by-name/<partition> symlinks
  Removing block device by-num symlinks
2018-05-21 23:14:38 +00:00
Christopher Ferris
d299a7ab58 Fix bug when doing signal handler lookup.
The new lld linker uses all non-zero offset executable maps. There was
a bug when trying to find if the stack is in a signal handler that caused
the code to read the wrong place in the elf. Fixed by not adding the elf
offset to the relative pc.

Also fixed the unwind_for_offline tool to dump multiple stacks if necessary.

Added new offline unit test that would have failed with the old code.

Bug: 79936827

Test: Ran unit tests and libbacktrace unit tests.
Test: Dumped backtraces of system pids.
Test: Ran 137-cfi art test.
Change-Id: Iaca8c18c2a314902e64c3f72831234297e8dcb1b
Merged-In: Iaca8c18c2a314902e64c3f72831234297e8dcb1b
(cherry picked from commit 239425b9fa)
2018-05-21 21:33:02 +00:00
Niklas Lindgren
f0a5bbda88 Add a new directory to store downloaded apns
downloaded apns-conf.xml will be stored in the folder
/data/misc/apns/ to make sure TelephonyProvider gets
access.

Bug: 79948106
Test: Manual
Change-Id: I4ba0596fa6523c0eb96328dbe46ead02587bd9b8
Merged-In: I4ba0596fa6523c0eb96328dbe46ead02587bd9b8
2018-05-21 12:09:10 -07:00
Tom Cherry
2fa7451e9b init: allow entering of network namespaces
Add the ability to enter a network namespace when launching a service.
Typical usage of this would be something similar to the below:

on fs
  exec ip netns add namespace_name

service vendor_something /vendor/...
  capabilities <lower than root>
  user not_root
  enter_namespace net /mnt/.../namespace_name

Note changes to the `ip` tool are needed to create the namespace in
the correct directory.

Bug: 73334854
Test: auto team verified
Merged-In: Ifa91c873d36d69db399bb9c04ff2362518a0b07d
Change-Id: Ifa91c873d36d69db399bb9c04ff2362518a0b07d
(cherry picked from commit aead51b418)
2018-05-21 15:52:13 +00:00
Bowgo Tsai
5ee7dae840 Adds /dev/block/by-name/<partition> symlinks
During uevent processing, some "by-name" symlinks will be created.
    /dev/block/<type>/<device>/by-name/<partition>

<type> can be: platform, pci or vbd.
<device> might be: soc.0/f9824900.sdhci, soc.0/f9824900.sdhci, etc.
<partition> might be: system, vendor, system_a, system_b, etc.

e.g., on a non-A/B device:
    /dev/block/platform/soc.0/f9824900.sdhci/by-name/system
    /dev/block/platform/soc.0/f9824900.sdhci/by-name/vendor

On a A/B device:
    /dev/block/platform/soc/1da4000.ufshc/by-name/system_a
    /dev/block/platform/soc/1da4000.ufshc/by-name/system_b
    /dev/block/platform/soc/1da4000.ufshc/by-name/vendor_a
    /dev/block/platform/soc/1da4000.ufshc/by-name/vendor_b

However, those symlinks are "device-specific".

This change adds the "generic" symlinks in ueventd, in addition to
the existing symlinks, when the possible "boot devices" are specified
in device tree. e.g.,

    &firmware_android {
	compatible = "android,firmware";
	boot_devices ="soc/1da4000.ufshc,soc.0/f9824900.sdhci";
    }

The following symlinks will then be created on the aforementioned non-A/B
and A/B devices, respectively.

    /dev/block/by-name/system
    /dev/block/by-name/vendor

    /dev/block/by-name/system_a
    /dev/block/by-name/system_b
    /dev/block/by-name/vendor_a
    /dev/block/by-name/vendor_b

Note that both <type> and <device> are skipped in the newly create symlinks.
It assumes there is no more than one devices with the same <partition>,
which is the assumption of current first stage mount flow.

Finally, when 'boot_devices' in DT is absent, it fallbacks to extract
'boot_devices' from fstab settings. e.g., using 'soc/1da4000.ufshc',
'soc.0/f9824900.sdhci' for a fstab with the following content:

   /dev/block/platform/soc/1da4000.ufshc/by-name/system
   /dev/block/platform/soc.0/f9824900.sdhci/by-name/vendor

Bug: 78613232
Test: adb shell ls /dev/block/by-name
Change-Id: Iec920b5a72409b6a2bdbeeb290f0a3acd2046b5d
Merged-In: Iec920b5a72409b6a2bdbeeb290f0a3acd2046b5d
(cherry picked from commit 8eec38f4e4)
2018-05-19 09:31:35 +08:00
Bowgo Tsai
ff17cc31e5 Removing block device by-num symlinks
The uevent.partition_num easily collides between partitions, for
example:

  Both /dev/block/sda3 and /dev/block/sdd3 will generate the same symlink:
    /dev/block/platform/soc/1da4000.ufshc/by-num/p3

This change remove those by-num symlinks as there seems no effective
user of it.

Bug: 78613232
Test: m init_tests && \
      adb push $OUT/data/nativetest64/init_tests/init_tests /data/. && \
      adb shell /data/init_tests

Change-Id: I8dfa8dc1a2f9fc9296aa30f33e905bf158b501de
Merged-In: I8dfa8dc1a2f9fc9296aa30f33e905bf158b501de
(cherry picked from commit 95591bd00e)
2018-05-19 09:28:42 +08:00
Paul Crowley
fe305ab286 Add option to create metadata mount point
Test: booted metadata-encrypted device
Bug: 79781913
Change-Id: Ie922db20314c04409c98700bfb1aff3d111275f0
2018-05-18 14:10:56 -07:00
Rubin Xu
3668291d8e Parse IfIndex for Netlink RTM_NEWADDR / RTM_DELADDR event
Bug: 64692591
Test: cts-tradefed run commandAndExit cts-dev -m CtsHostsideNetworkTests -t com.android.cts.net.HostsideVpnTests
Change-Id: Icb2ae1264f0d2fcd285b04edd27641175dd2646f
2018-05-16 23:39:09 +01:00
TreeHugger Robot
7905b1e162 Merge "Only log the lmkd state change when the killing really happened." into pi-dev 2018-05-16 16:03:19 +00:00
Logan Chien
5789b80a2b Merge "Always use versioned VNDK directory" into pi-dev 2018-05-16 09:38:57 +00:00
Logan Chien
9afd9b488f Add files to CleanSpec.mk
This commit removes stale files from incremental builds:

* /system/etc/ld.config.txt,
* /system/etc/llndk.libraries.txt
* /system/etc/public.libraries.txt

These files are replaced by versioned ones.

Bug: 78605339
Test: Those files are removed in incremental builds
Change-Id: I7925fa45b47397829bde835ab3c479611faffa33
2018-05-16 11:34:11 +08:00
Logan Chien
6a145749be Always use versioned VNDK directory
Bug: 78605339
Test: sailfish-userdebug builds and boots
Test: sailfish boots with GSI
Change-Id: I7da5845b5c1caed3b73d7665f1db672f2764c2a8
2018-05-16 11:34:05 +08:00
Yang Lu
5564f4ee08 Only log the lmkd state change when the killing really happened.
BUG: b/78603347

Test: statsd test

Change-Id: I0345a47e1cd1c79a67103e401a2eb0a7fbe0631b
2018-05-15 16:54:45 +00:00
Colin Cross
05dca7ae96 Make memunreachable_test more robust against false negative leaks
For some reason, the memunreachable tests are rock solid on the
devices covered by APCT, but catch a ton of false-negatives on
hikey960, which show up as failures that look like:
system/core/libmemunreachable/tests/MemUnreachable_test.cpp:200: Failure
Expected equality of these values:
  1U
    Which is: 1
  info.leaks.size()
    Which is: 0

These happen when a stray copy of a pointer is lying around that
points to the memory it is expected to leak.  The stray pointers
can be on the stack or in the jemalloc thread cache of freed
allocations, which is always considered active memory.

Add some extra cleanups to get rid of old pointers.
1.  Clear the tcache when destructing UnreachableMemoryInfo
2.  Clear the stack and tcache before and after each test
3.  Make MemunreachbleTest.twice match MemunreachableTest.stack

Also fix MemunreachableTest.notdumpable, which was only passing
when run as root, which was bypassing what the test was trying
to cover.  Make the test pass when run as non-root, and skip
when the test is running as root.

Bug: 79701104
Test: memunreachable_test
Test: memunreachable_test as root
Change-Id: Ia6c6df11e76405d08118afcc19c1fe80a6684c56
Merged-In: Ia6c6df11e76405d08118afcc19c1fe80a6684c56
(cherry picked from commit ca71f170b7)
2018-05-14 22:17:44 -07:00
Josh Gao
09b309807f Merge "adb: fix double close in jdwp_service." into pi-dev 2018-05-15 04:50:43 +00:00
Dan Willemsen
0051684905 Revert "Only log the lmkd state change when the killing really happened."
This reverts commit 5e60f88cab.

Reason for revert: broke some builds

Bug: 78603347
Change-Id: I46bf6face35f5399d7d43146b360c0703eedfb1a
2018-05-15 03:26:05 +00:00
Josh Gao
d88f3b6964 adb: fix double close in jdwp_service.
Bug: http://b/78793027
Test: treehugger
Change-Id: Ie66d12e70bdaf09148e3d672e3c7c3da9e8ab2fe
(cherry picked from commit b7a9956cbc)
2018-05-14 17:36:45 -07:00
Yangster-mac
5e60f88cab Only log the lmkd state change when the killing really happened.
Test: statsd test
BUG: b/78603347
Change-Id: Ie08b0c3260f2f96b48e9e12c2c88208a3613042d
2018-05-14 22:25:29 +00:00
Suren Baghdasaryan
da88b24c97 lmkd: Enable more logs during a kill
Logs that provide information about memory conditions during a process
kill event contain useful information and do not affect device
performance because these events are rare. Enabling them even when
ro.config.debug flag is not set will help in understanding low memory
conditions.

Bug: 79572814

Change-Id: Iae6e9bb612b9a7904ca491de3f1ddc727f24c7e0
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2018-05-11 21:03:14 +00:00
Gwendal Grignou
232ce729f5 Merge "allow config/sdcardfs directory to be seen for ARC++" into pi-dev 2018-05-11 01:36:14 +00:00
Logan Chien
cff5b8a7d0 Merge "libctuils: Exclude qtaguid.cpp from VNDK-SP variant" into pi-dev 2018-05-10 06:05:25 +00:00
android-build-team Robot
c8b1a2524e Merge "Documented adb install --instant" into pi-dev 2018-05-09 18:53:27 +00:00
android-build-team Robot
289668011f Merge "Move libstatssocket from frameworks/base to system/core/" into pi-dev 2018-05-09 18:08:46 +00:00
Felipe Leme
95c5b7f358 Documented adb install --instant
Test: m -j32 adb && ./out/host/linux-x86/bin/adb help 2>&1 | grep instant
Bug: 79422318

Change-Id: I2830a9e3cf81becac1a6334670d8dc487fe72322
    (cherry picked from commit 807be77c25)
2018-05-09 09:42:55 -07:00
Logan Chien
94223374c8 libctuils: Exclude qtaguid.cpp from VNDK-SP variant
This commit excludes `qtaguid.cpp` from the VNDK-SP variant of
`libcutils.so` because the interface of `libnetd_client.so` may vary
between AOSP releases.

Besides, these functions don't work in vendor processes either because
VNDK-SP libraries are loaded in an isolated `vndk` linker namespace,
which cannot access `/system/lib[64]/libnetd_client.so` directly.  This
change makes it easier to spot the issue at build time and saves several
bytes.

Test: Build aosp_walleye-userdebug and
/system/lib[64]/vndk-sp-$VER/libctuils.so no longer exports qtaguid_*
functions.

Bug: 79329469
Change-Id: Idf6b60f6e58371ea320193641669d1e4412d62b8
Merged-In: Idf6b60f6e58371ea320193641669d1e4412d62b8
(cherry picked from commit 25b742c627)
2018-05-09 10:16:12 +08:00
Gwendal Grignou
8526413941 allow config/sdcardfs directory to be seen for ARC++
Normally, the whole configfs is mounted on /config and /config will be
word readable:

sailfish:/ $ ls -ld /config/*
drwxrwx--- 258 system package_info 0 2018-05-08 16:08 /config/sdcardfs
sailfish:/ $ ls -ld /config/
drwxr-xr-x 3 root root 0 1969-12-31 16:00 /config/

On ARC++, we only mount-bind config/sdcardfs, so it is important that
/config is set properly.

It is actually 0500, so system could not see /config/sdcardfs, even if
/config/sdcardfs is set properly:
Although root can, as system uid, we can not reach /config/sdcardfs:
:/ $ ls -ld /config
dr-x------ 3 root root 31 2018-05-02 21:56 /config
:/ $ ls -ld /config/sdcardfs
ls: /config/sdcardfs: Permission denied

With this change, system (and systemservice) is able to reach
/config/sdcardfs:
:/ $ ls -ld /config
dr-xr-xr-x 3 root root 31 2018-05-02 21:56 /config
:/ $ ls -ld /config/sdcardfs
drwxrwx--- 109 system package_info 0 2018-05-08 15:29 /config/sdcardfs

Bug: 63876697
Test: After change, package service is able to create the bindings in
/config/sdcardfs.

Change-Id: I7e9b99d7af2ad001fbb1b95bee35d494e861be78
Signed-off-by: Gwendal Grignou <gwendal@google.com>
2018-05-08 16:18:48 -07:00
Logan Chien
88f5b6aa5d Merge "init: Use sepolicy version instead" into pi-dev 2018-05-08 03:42:15 +00:00
Yao Chen
b13a102c0a Move libstatssocket from frameworks/base to system/core/
So that lmkd can build on PDK.

Bug: 79349329
Test: builds locally
Change-Id: I981e6ef9f9769b873640e5f169a9495ccea2f25c
2018-05-07 17:19:10 -07:00
Josh Gao
35c76427a2 Merge changes I19704971,I20e0537a into pi-dev
* changes:
  tombstoned: make missing O_TMPFILE workaround actually work around.
  tombstoned: don't bail out if we fail to unlink a file that isn't there.
2018-05-04 21:37:42 +00:00