OSDN Git Service

android-x86/frameworks-native.git
7 years agoAdd installd logic for compiling secondary dex files
Calin Juravle [Tue, 17 Jan 2017 22:43:25 +0000 (14:43 -0800)]
Add installd logic for compiling secondary dex files

Secondary dex compilation takes almost the same path as primary apk
compilation.

The main difference is in the fact that for secondary dex files we
create the oat dir on the fly and execute dexoptanalyzer (the equivalent
of GetDexOptNeeded) to check if we really need to perform the
compilation.

Test: adb shell cmd package compile -f -m speed --secondary-dex com.google.android.gms
Bug: 32871170

(cherry picked from commit 42451c029b0e87990e5833daea2286bb12c21df5)

Change-Id: Ie5efe6eccc6b8c91ca7bd7c9e680aa7288d79ae8

Merged-In: I2c56d57322899968a338ccabffca575d66f8ee08

7 years agoMerge "lshal --vintf to create a skeleton hal manifest."
Treehugger Robot [Wed, 1 Mar 2017 06:05:13 +0000 (06:05 +0000)]
Merge "lshal --vintf to create a skeleton hal manifest."

7 years agolshal --vintf to create a skeleton hal manifest.
Yifan Hong [Wed, 1 Mar 2017 03:38:24 +0000 (19:38 -0800)]
lshal --vintf to create a skeleton hal manifest.

Run it as follows:
lshal --init-vintf=/data/a.xml
lshal --init-vintf > /data/a.xml

Test: lshal --init-vintf with and without path argument
Bug: 35852743
Change-Id: Ief9385fc2764a487d1a70644699e01133bdc8a8e

7 years agoMerge "lshal: separate timeout for hwservicemanager list"
Treehugger Robot [Wed, 1 Mar 2017 03:50:11 +0000 (03:50 +0000)]
Merge "lshal: separate timeout for hwservicemanager list"

7 years agolshal: separate timeout for hwservicemanager list
Steven Moreland [Wed, 1 Mar 2017 01:52:58 +0000 (17:52 -0800)]
lshal: separate timeout for hwservicemanager list

Bug: 35752836
Test: lshal works
Change-Id: I201da49e375d2d5e9ea67dfdf34ef2d5a8b537b0

7 years agoMerge "Truncate trace output files."
Martijn Coenen [Tue, 28 Feb 2017 09:08:33 +0000 (09:08 +0000)]
Merge "Truncate trace output files."

7 years agoMerge changes I6437dc95,I77261381
Jesse Hall [Sun, 26 Feb 2017 05:54:04 +0000 (05:54 +0000)]
Merge changes I6437dc95,I77261381

* changes:
  vulkan: update Vulkan headers to 1.0.38
  vulkan: Update Vulkan headers to 1.0.22

7 years agovulkan: update Vulkan headers to 1.0.38
Jesse Hall [Fri, 24 Feb 2017 23:13:45 +0000 (15:13 -0800)]
vulkan: update Vulkan headers to 1.0.38

Test: make ; mmm frameworks/native/vulkan
Change-Id: I6437dc951bd694cb848f75d0de7eb7dbe8a4d1fe

7 years agovulkan: Update Vulkan headers to 1.0.22
Jesse Hall [Tue, 26 Jul 2016 22:20:40 +0000 (15:20 -0700)]
vulkan: Update Vulkan headers to 1.0.22

Meaningful changes to platform code:
* VKAPI_ATTR is now defined properly when building for 32-bit ARMv8a.
* The pData parameter to vkCmdUpdateBuffer changed from uint32_t* to
  void*. Alignment is still required to be four bytes (by spec), and
  the size parameter was always supposed to be bytes, not words.

Bug: 29460769
Test: make ; mmm frameworks/native/vulkan
Change-Id: I77261381e5702a3b2bc1d1ea4c0606151547be47
(cherry picked from commit 56d386a7a46c8ac36df8820c3ccf3da048ef1970)

7 years agoMerge "lshal: Fix timeout causes unexpected exits."
Yifan Hong [Wed, 22 Feb 2017 18:28:23 +0000 (18:28 +0000)]
Merge "lshal: Fix timeout causes unexpected exits."

7 years agoTruncate trace output files.
Martijn Coenen [Wed, 22 Feb 2017 08:25:31 +0000 (09:25 +0100)]
Truncate trace output files.

To avoid creating trace files with garbage at the end.

Bug: 35588070
Test: atrace runs
Change-Id: I26ef4c652ca2e2dd8ff9d11d4f380b44791cb960

7 years agolshal: Fix timeout causes unexpected exits.
Yifan Hong [Tue, 21 Feb 2017 22:59:00 +0000 (14:59 -0800)]
lshal: Fix timeout causes unexpected exits.

with thread::detach the background thread keeps running even after
the thread object is destroyed; the background thread will access
caller's stack memory, causing segfault. Change it to a thread join
to avoid the issue. To avoid waiting too long on the child thread,
send a SIGINT if timeout (child thread's signal handler will then
call pthread_exit() to terminate the thread).

Since we are using pthread_* functions, change usage of std::thread
to pthread_t for consistency.

Test: lshal
Test: run lshal with IPC_CALL_TIMEOUT set to zero will no longer
      cause SIGSEGV and SIGABRT (test 10 times)

Bug: 35623669
Change-Id: I4eef8ffd8ff399793648e861ca4c1a2bdcc7ec50

7 years agoMerge "Removed build time variable ENABLE_CPUSETS."
Isaac Chen [Tue, 21 Feb 2017 02:05:22 +0000 (02:05 +0000)]
Merge "Removed build time variable ENABLE_CPUSETS."

7 years agoRemoved build time variable ENABLE_CPUSETS.
Isaac Chen [Thu, 16 Feb 2017 03:51:51 +0000 (11:51 +0800)]
Removed build time variable ENABLE_CPUSETS.

Use runtime check, cpuset_enabled(), instead of build time varianble
usually set in BoardConfog.mk.

Bug: 34726944

Test: Tested on Sailfish
      without cpuset mounted
      with cpuset mounted, but without schedtune
      with cpuset mounted and with schedtune

Change-Id: I00153628db62abfbaa0ba75d571ba1bda0611ff3

7 years agoMerge "Fix lshal cannot be run without root"
Treehugger Robot [Sat, 18 Feb 2017 01:03:15 +0000 (01:03 +0000)]
Merge "Fix lshal cannot be run without root"

7 years agoFix lshal cannot be run without root
Yifan Hong [Fri, 17 Feb 2017 21:38:47 +0000 (13:38 -0800)]
Fix lshal cannot be run without root

Root cause is invoking copy constructor on a Return<T> object
implicitly, while the old object contains a failed status and
gets destroyed. Use the move constructor instead to fix this.

Test: adb unroot && adb shell lshal
Change-Id: I44710166cc5d7da30bf54b10d1860be1b91dc98a

7 years agoMerge "atrace: Don't output service lookup/notification errors."
Treehugger Robot [Fri, 17 Feb 2017 18:38:53 +0000 (18:38 +0000)]
Merge "atrace: Don't output service lookup/notification errors."

7 years agoatrace: Don't output service lookup/notification errors.
Martijn Coenen [Fri, 17 Feb 2017 13:57:38 +0000 (14:57 +0100)]
atrace: Don't output service lookup/notification errors.

Bug: 34933232
Test: android.atrace.cts.AtraceHostTests
Change-Id: If981106fb1bf7db24b9fd173c6936a1e189756f0

7 years agoMerge changes from topic 'lshal'
Yifan Hong [Thu, 16 Feb 2017 18:02:51 +0000 (18:02 +0000)]
Merge changes from topic 'lshal'

* changes:
  lshal: Add option to print cmd lines instead of pids.
  lshal: Add timeout for IPC calls.
  lshal: Allow selecting columns and sorting by column.
  lshal: Refactor lshal to use an Lshal class; combined instance column with interface column

7 years agolshal: Add option to print cmd lines instead of pids.
Yifan Hong [Wed, 15 Feb 2017 01:33:50 +0000 (17:33 -0800)]
lshal: Add option to print cmd lines instead of pids.

Add -m to arguments of lshal. When this flag is set,
/proc/{pid}/cmdline is printed instead of a plain PID.
If the file doesn't exist, it will be striped out from
the PID column as well (the process is considered died
and won't hold a reference to the binder object.)

Test: lshal -icm

Bug: 35160832

Change-Id: I4345bf06112a1f87ce91bec6f6f787703e46cd17

7 years agolshal: Add timeout for IPC calls.
Yifan Hong [Tue, 14 Feb 2017 23:43:31 +0000 (15:43 -0800)]
lshal: Add timeout for IPC calls.

IPC calls into interfaces should be done fault-torelently.
Add a timeout for each IPC call made so that lshal won't be
indefinitely blocked even if the interface don't reply
promptly.

Bug: 35317039

Test: lshal

Change-Id: Icb8157716ad68bddb5b33304b9063aa6f233985d

7 years agolshal: Allow selecting columns and sorting by column.
Yifan Hong [Tue, 14 Feb 2017 01:51:59 +0000 (17:51 -0800)]
lshal: Allow selecting columns and sorting by column.

Examples: see tests below.

Test: lshal
Test: lshal -intpac
Test: lshal --sort=i
Test: lshal --sort=p

Bug: 34984175

Change-Id: Ia09823776a206868a5d58a2ede153a4538147756

7 years agolshal: Refactor lshal to use an Lshal class; combined instance column with interface...
Yifan Hong [Sat, 11 Feb 2017 01:49:58 +0000 (17:49 -0800)]
lshal: Refactor lshal to use an Lshal class; combined instance column with interface column

We need to be able to select columns, sort columns,
and do IPC calls fault-tolerently.
Refactoring lshal.cpp into an Lshal class for more
objective-oriented programming, so that global variables
can be avoided and less parameters will need
to be passed around.

Test: lshal outputs identical output as without this CL, except
with the column merged.

Change-Id: I9668c998da692222aef96ae67bbab8066172543d

7 years agoMerge "Revert "dumpsys: add option to list hardware services.""
Treehugger Robot [Tue, 14 Feb 2017 03:44:52 +0000 (03:44 +0000)]
Merge "Revert "dumpsys: add option to list hardware services.""

7 years agoRevert "dumpsys: add option to list hardware services."
Steven Moreland [Mon, 13 Feb 2017 23:44:17 +0000 (23:44 +0000)]
Revert "dumpsys: add option to list hardware services."

This reverts commit 6270dd1bf7f4a6eaa0e36b2cbb0f9bdd4790b5d8.

Reason for revert: obsolete, removed in favor of lshal
Test: dumpsys_test

Change-Id: I06e256a5bd0995727a3d6f3f88f79a623b1474f3

7 years agoMerge changes from topic 'lshal'
Yifan Hong [Mon, 13 Feb 2017 19:32:37 +0000 (19:32 +0000)]
Merge changes from topic 'lshal'

* changes:
  Dump client PIDs for passthrough HALs.
  Fix permissions for lshal

7 years agoDump client PIDs for passthrough HALs.
Yifan Hong [Fri, 3 Feb 2017 23:23:47 +0000 (15:23 -0800)]
Dump client PIDs for passthrough HALs.

* This is done with registerPassthroughClient in IServiceManager; when a
  service is retrieved through the passthrough service manager, its PID
  will be recoreded by the binderized service manager.
* The action of dumping all available dynamic libraries is now done by
  dumpAllLibraries.
Bug: 34712252
Test: lshal

Change-Id: I7f08e3255ffed0f46435843504e0e225d0d9bbc9

7 years agoFix permissions for lshal
Yifan Hong [Fri, 3 Feb 2017 21:40:04 +0000 (13:40 -0800)]
Fix permissions for lshal

Instead of IServiceManager::debugDump, lshal now relies
on list and get. lshal itself will call getDebugInfo
on each interface, so that each interface can check if
the call is from a root user, then decide to leak
addresses or not.

Bug: 34899586

Test: lshal

Change-Id: I8eb9168c3b071b8b1f27dbeaa0ac27d2067200d7

7 years agoMerge "NDK docs: Fixed in-line comments for A8 and ARGB444 bitmap configurations...
quddusc [Thu, 9 Feb 2017 21:26:19 +0000 (21:26 +0000)]
Merge "NDK docs: Fixed in-line comments for A8 and ARGB444 bitmap configurations. Test: Verified changes with romainguy@. Related bugs: b/26922523"

7 years agoNDK docs: Fixed in-line comments for A8 and ARGB444 bitmap configurations.
Quddus Chong [Wed, 8 Feb 2017 18:38:21 +0000 (10:38 -0800)]
NDK docs: Fixed in-line comments for A8 and ARGB444 bitmap configurations.
Test: Verified changes with romainguy@.
Related bugs: b/26922523

Change-Id: Id51445b09896407e808b519f3ee2f4be90f5b7eb

7 years agoMerge "SurfaceFlinger supports ClearClientTarget for Sideband"
wyau [Tue, 7 Feb 2017 04:07:15 +0000 (04:07 +0000)]
Merge "SurfaceFlinger supports ClearClientTarget for Sideband"

7 years agoSurfaceFlinger supports ClearClientTarget for Sideband
Gray Huang [Wed, 11 Jan 2017 05:41:09 +0000 (13:41 +0800)]
SurfaceFlinger supports ClearClientTarget for Sideband

When clearing the layer's intersection with the dirty region,
HWC2::Composition::Sideband layer needs to be cleared as well.

Bug: 33443134
Test: manual - enter PIP mode with Live Channel
Change-Id: I4fecc7b5db8a2bf220b681bd087264290d1a2443

7 years agoMerge "Fix warning: macro redefined"
Treehugger Robot [Fri, 3 Feb 2017 02:39:19 +0000 (02:39 +0000)]
Merge "Fix warning: macro redefined"

7 years agoMerge "lshal: print pids of client processes."
Treehugger Robot [Thu, 2 Feb 2017 19:32:48 +0000 (19:32 +0000)]
Merge "lshal: print pids of client processes."

7 years agolshal: print pids of client processes.
Yifan Hong [Wed, 1 Feb 2017 23:54:01 +0000 (15:54 -0800)]
lshal: print pids of client processes.

Bug: 34777099
Bug: 34861460

Test: lshal
Test: NFC / light / audio with and without persistent.hal.binderized;
      run lshal to reflect this.

Change-Id: I50aa5d99fb14957b1e40a405836e68c235a22006

7 years agoMerge "Do not -1 for lshal."
Treehugger Robot [Wed, 1 Feb 2017 21:15:42 +0000 (21:15 +0000)]
Merge "Do not -1 for lshal."

7 years agoMerge "Disable integer sanitization on host."
Evgenii Stepanov [Wed, 1 Feb 2017 19:24:10 +0000 (19:24 +0000)]
Merge "Disable integer sanitization on host."

7 years agoMerge "Fix a use-of-uninitialized-value warning"
Treehugger Robot [Wed, 1 Feb 2017 07:09:50 +0000 (07:09 +0000)]
Merge "Fix a use-of-uninitialized-value warning"

7 years agoDo not -1 for lshal.
Yifan Hong [Tue, 31 Jan 2017 23:54:39 +0000 (15:54 -0800)]
Do not -1 for lshal.

Test: compiles
Change-Id: I99e6306a6b82ec85bc84f9572f3e4f2f8cdf2847

7 years agoMerge "Fix -Wdouble-promotion warnings"
Treehugger Robot [Wed, 1 Feb 2017 03:14:59 +0000 (03:14 +0000)]
Merge "Fix -Wdouble-promotion warnings"

7 years agoDisable integer sanitization on host.
Evgenii Stepanov [Wed, 1 Feb 2017 00:37:44 +0000 (16:37 -0800)]
Disable integer sanitization on host.

Test: NFC until https://android-review.googlesource.com/#/c/329510
Change-Id: I0183556d5b945c689934664fe7f15caa18a0997d

7 years agoFix a use-of-uninitialized-value warning
George Burgess IV [Wed, 1 Feb 2017 00:21:25 +0000 (16:21 -0800)]
Fix a use-of-uninitialized-value warning

Caught by clang's static analyzer:
frameworks/base/core/jni/com_google_android_gles_jni_GLImpl.cpp:190:30:
warning: The right operand of '+' is a garbage value
            buf = (char*)buf + offset;

This is because getPointer doesn't always set `offset` to a value. We
could fix it locally by initializing `offset`, but it seems to be less
error-prone to just fix getPointer instead.

Bug: None
Test: Still builds; warning is now gone.
Change-Id: I90bea0c94cf8d7f92a0d9a4db4e64e7e563bfb09

7 years agoMerge "Add permission bits to open calls with O_CREAT"
Treehugger Robot [Tue, 31 Jan 2017 03:29:05 +0000 (03:29 +0000)]
Merge "Add permission bits to open calls with O_CREAT"

7 years agoAdd permission bits to open calls with O_CREAT
George Burgess IV [Wed, 25 Jan 2017 19:36:12 +0000 (11:36 -0800)]
Add permission bits to open calls with O_CREAT

Open needs a third argument if you pass it O_CREAT:
https://linux.die.net/man/3/open

This turns into a compile-time error with FORITFY, so we need this fixed
before our unbroken FORTIFY can go in.

(The TEMP_FAILURE_RETRY open isn't detected by clang FORTIFY, but I
noticed that open_reference_profile potentially passes in O_CREAT as an
open_flag.)

Bug: 32073964
Test: Now builds with clang FORTIFY; CtsCompilationTestCases passes;
manually verified that /data/misc/profiles/ref/*/primary.prof has rw
permissions after a successful `cmd package compile -m speed-profile`.
Change-Id: Ie707d5ad403d2f86c769277b3e0f147c45000a6b

7 years agoMerge "Replace strlen with arraysize in array bounds."
Treehugger Robot [Thu, 26 Jan 2017 20:06:50 +0000 (20:06 +0000)]
Merge "Replace strlen with arraysize in array bounds."

7 years agoFix -Wdouble-promotion warnings
George Burgess IV [Wed, 25 Jan 2017 21:33:38 +0000 (13:33 -0800)]
Fix -Wdouble-promotion warnings

With the new clang FORTIFY, this code emits the following error:

error: implicit conversion increases floating-point precision: 'float'
to 'double' [-Werror,-Wdouble-promotion]

This is because strncpy is now a function, not a macro defined in a
system header. So, the warning is considered to appear in user code
(instead of system code), and is therefore no longer suppressed.

Bug: 32073964
Test: Now builds with clang FORTIFY
Change-Id: Id5fcfe91755535f90b542e11bc42b66976fe24fc
Merged-In: I5e8292d7800434268793bc4db4a96f20b7022e17

7 years agoReplace strlen with arraysize in array bounds.
George Burgess IV [Wed, 25 Jan 2017 19:52:01 +0000 (11:52 -0800)]
Replace strlen with arraysize in array bounds.

clang-FORTIFY doesn't let us evaluate strlen("foo") as a constant
expression that can be used in static array bounds. Instead, we'd need
to either do __builtin_strlen("foo") or arraysize("foo") - 1. Just use
arraysize here, since the extra 1 byte per array isn't likely to be a
terrible thing.

Happy to swap to __builtin_strlen if anyone cares deeply enough.

Bug: 32073964
Test: Now builds with clang FORTIFY.
Change-Id: I4c9b3eb74775901554b939246722bd3a22326d10

7 years agoMerge changes from topic 'lshal'
Yifan Hong [Thu, 26 Jan 2017 18:18:19 +0000 (18:18 +0000)]
Merge changes from topic 'lshal'

* changes:
  Add debugDump() to IServiceManager.
  Add an lshal command.

7 years agoMerge "Fix two bugs in external storage accounting."
Treehugger Robot [Thu, 26 Jan 2017 17:37:23 +0000 (17:37 +0000)]
Merge "Fix two bugs in external storage accounting."

7 years agoAdd debugDump() to IServiceManager.
Yifan Hong [Thu, 26 Jan 2017 06:53:37 +0000 (22:53 -0800)]
Add debugDump() to IServiceManager.

Test: mma
Change-Id: I04289500c7ee42a84d3593b4c0e45a0b829370a7

7 years agoAdd an lshal command.
Yifan Hong [Wed, 25 Jan 2017 22:20:34 +0000 (14:20 -0800)]
Add an lshal command.

lshal lists services registered to the binderized
IServiceManager and all services available to the
passthrough IServiceManager as *.so libraries. It
also dumps the reference count for each service.

Bug: 34712252
Test: adb shell lshal
Change-Id: I9436a033cf736b8a8c307a2e87549c9db6379f3f

7 years agoFix two bugs in external storage accounting.
Jeff Sharkey [Thu, 26 Jan 2017 05:15:42 +0000 (22:15 -0700)]
Fix two bugs in external storage accounting.

When doing a manual tree walk, we always want to inherit fts_number
from the parent fts node.

For create_data_media_package_path(), two of the arguments had been
swapped.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.StorageHostTest
Bug: 2794881730927649
Change-Id: Ic3cbf387cf119aa82af6e380bde9d9b069f6bfb0

7 years agoMerge "Add mode to open call with O_CREAT"
Treehugger Robot [Thu, 26 Jan 2017 01:25:52 +0000 (01:25 +0000)]
Merge "Add mode to open call with O_CREAT"

7 years agoAdd mode to open call with O_CREAT
George Burgess IV [Wed, 25 Jan 2017 21:51:53 +0000 (13:51 -0800)]
Add mode to open call with O_CREAT

This change was already applied internally. For us to submit FORTIFY, we
need to push it out here. Otherwise, we get compile-time errors about
this.

Bug: 32073964
Test: Builds with FORTIFY.
Change-Id: Ib500aca933468c06f7ceb796a9bb6a16c118e366
Merged-In: I63eb3d5499ae7e9ff9a77393763e39b747fd4611

7 years agoMerge "Properly align a packed structure."
Treehugger Robot [Tue, 24 Jan 2017 01:15:06 +0000 (01:15 +0000)]
Merge "Properly align a packed structure."

7 years agoMerge "Update atrace to work with tracefs, not debugfs"
Treehugger Robot [Mon, 23 Jan 2017 18:20:51 +0000 (18:20 +0000)]
Merge "Update atrace to work with tracefs, not debugfs"

7 years agoMerge "dumpsys: add option to list hardware services."
Treehugger Robot [Sat, 21 Jan 2017 21:11:50 +0000 (21:11 +0000)]
Merge "dumpsys: add option to list hardware services."

7 years agodumpsys: add option to list hardware services.
Steven Moreland [Fri, 20 Jan 2017 23:24:51 +0000 (15:24 -0800)]
dumpsys: add option to list hardware services.

This gives a convenient way to dump information about hidl services.
When hidl services dump information themselves as well, that dump will
be made here as well.

Bug: 33382892
Test: dumpsys_test, dumpsys --hw works as expected
Change-Id: Ib08b5d052e63ed6260035ee8d3ad3dac296202b1

7 years agoUpdate atrace to work with tracefs, not debugfs
Paul Lawrence [Tue, 17 Jan 2017 17:50:18 +0000 (09:50 -0800)]
Update atrace to work with tracefs, not debugfs

When tracefs is mounted, tracing is under /sys/kernel/tracing not
/sys/kernel/debug/tracing. Modify atrace to detect this situation and
get the right files.

Bug: 31856701
Test: Run atrace, check output is same where ever tracefs is mounted
Change-Id: I78df0da91d9f56c56077d1b8b9dba7b0126b2d8d

7 years agoMerge "Add Binder support for Parcelable exceptions."
Jeff Sharkey [Fri, 20 Jan 2017 22:45:03 +0000 (22:45 +0000)]
Merge "Add Binder support for Parcelable exceptions."

7 years agoMerge "Add i2c tracing support to atrace"
Treehugger Robot [Fri, 20 Jan 2017 20:07:13 +0000 (20:07 +0000)]
Merge "Add i2c tracing support to atrace"

7 years agoMerge "Add feature flag for TelephonyManager#get/setAllowedCarriers"
Treehugger Robot [Fri, 20 Jan 2017 19:55:15 +0000 (19:55 +0000)]
Merge "Add feature flag for TelephonyManager#get/setAllowedCarriers"

7 years agoAdd i2c tracing support to atrace
Michael Wright [Thu, 18 Aug 2016 18:56:43 +0000 (19:56 +0100)]
Add i2c tracing support to atrace

Cherry-picking from internal master

Test: None
Change-Id: Iaf0daa0982bd8d2355d3590d43ad78711e764ee0

7 years agoMerge "Measure external storage using new GIDs."
Jeff Sharkey [Thu, 19 Jan 2017 22:00:50 +0000 (22:00 +0000)]
Merge "Measure external storage using new GIDs."

7 years agoMeasure external storage using new GIDs.
Jeff Sharkey [Thu, 19 Jan 2017 16:21:36 +0000 (09:21 -0700)]
Measure external storage using new GIDs.

We just defined a new range of GIDs that will be used to mark per-app
data files stored on external storage, so start measuring them.

Also measure all OBB files using another new GID that was defined.

Note that we're relying on the per-app cache GIDs to track cache
usage on *both* internal and external storage, which means that stats
and extStats won't always add up.  (The framework already combines
these values together, and we didn't want to waste precious GID
space on explicitly tracking cache files on external storage.)

Test: builds, boots
Bug: 2794881734263266
Change-Id: Ife087df299ff8ee1a75fce1e39b4b737cf9375d5

7 years agoMerge "First pass at updated cache clearing logic."
Jeff Sharkey [Thu, 19 Jan 2017 16:16:02 +0000 (16:16 +0000)]
Merge "First pass at updated cache clearing logic."

7 years agoMerge "TYPE_DYNAMIC_SENSOR_META should be wake up sensor"
Peng Xu [Thu, 19 Jan 2017 01:11:49 +0000 (01:11 +0000)]
Merge "TYPE_DYNAMIC_SENSOR_META should be wake up sensor"

7 years agoMerge "Clean up and simplify the logic in dexopt"
Calin Juravle [Wed, 18 Jan 2017 23:49:13 +0000 (23:49 +0000)]
Merge "Clean up and simplify the logic in dexopt"

7 years agoMerge changes from topic 'kill_debuggerd'
Josh Gao [Wed, 18 Jan 2017 23:04:08 +0000 (23:04 +0000)]
Merge changes from topic 'kill_debuggerd'

* changes:
  dumpstate: use O_APPEND for anr file.
  dumpstate: switch to using libdebuggerd_client.

7 years agoMerge "libGLES_android: Add generic 32bpp BGRA EGLConfig"
Treehugger Robot [Wed, 18 Jan 2017 23:00:41 +0000 (23:00 +0000)]
Merge "libGLES_android: Add generic 32bpp BGRA EGLConfig"

7 years agoClean up and simplify the logic in dexopt
Calin Juravle [Sun, 15 Jan 2017 00:23:30 +0000 (16:23 -0800)]
Clean up and simplify the logic in dexopt

Make some order in dexopt logic by extracting independent parts in their
own helpers.

It will make further updates of dexopt simpler and easier to reason
about (e.g. for secondary dex files).

Test: device boots
      adb shell cmd package compile -m speed|speed-profile packageName
      install new packages

Bug: 32871170

(cherry picked from commit 4a391f80601d7f65d7e63353363e6d32868161d5)

Change-Id: If0c96174e904519a4332e54553690b691ff63149

7 years agoFirst pass at updated cache clearing logic.
Jeff Sharkey [Wed, 18 Jan 2017 01:05:54 +0000 (18:05 -0700)]
First pass at updated cache clearing logic.

The old clearing algorithm is very naive and it sorts all cached files
globally by modified time.  This sadly lets apps gamify the system by
setting their modified times far in the future, and it's very
expensive because it requires a global filesystem traversal to free
up even the smallest amount of data.

Instead, this CL introduces a much more fair cache clearing algorithm
that deletes files from specific UIDs based on how much cache space
that UID is using proportional to the space allocated to them.  This
new design has several nice properties:

-- It uses the recently added quotactl() feature to rapidly target
the apps that are using the most space.
-- We only need to traverse the filesystem for UIDs that actively
enter the crosshairs of the clearing algorithm.
-- Disciplined apps who stay under their allocated quota will be
the last to have their cached data cleared.
-- This design can be easily adapted to support additional features
such as atomic purging and tombstones.

In summary, the new algorithm is extremely efficient when freeing up
the typical small-to-medium amounts of disk space, and is only
moderately less efficient than the old algorithm when forced to clear
all cached data.

Test: builds, boots, clearing strategy looks sane
Bug: 33965858
Change-Id: I66f95089cb33f1add3f31fcf1082ab2469870fda

7 years agoAdd feature flag for TelephonyManager#get/setAllowedCarriers
Polina Bondarenko [Thu, 12 Jan 2017 20:14:14 +0000 (21:14 +0100)]
Add feature flag for TelephonyManager#get/setAllowedCarriers

Add android.hardware.telephony.carrierlock feature flag declaration.

Bug: 33480084
Test: cts
Change-Id: Ib6ede97d7ee8d6e924c1483ee51f52bdfa09950b

7 years agoMerge "Add systrace details to storage measurements."
Jeff Sharkey [Wed, 18 Jan 2017 01:10:59 +0000 (01:10 +0000)]
Merge "Add systrace details to storage measurements."

7 years agoMerge "servicemanager: selinux: set selinux callbacks early"
Treehugger Robot [Wed, 18 Jan 2017 00:36:55 +0000 (00:36 +0000)]
Merge "servicemanager: selinux: set selinux callbacks early"

7 years agoAdd systrace details to storage measurements.
Jeff Sharkey [Tue, 17 Jan 2017 22:25:01 +0000 (15:25 -0700)]
Add systrace details to storage measurements.

Can be used to find bottlenecks, and confirm that quota stuff is
being used when expected.

Test: builds, boots
Bug: 34341727
Change-Id: Ifefc155e5d3b0c74245e0d287e84df699ce09d16

7 years agodumpstate: use O_APPEND for anr file.
Josh Gao [Sat, 14 Jan 2017 06:09:40 +0000 (22:09 -0800)]
dumpstate: use O_APPEND for anr file.

Bug: http://b/30705528
Test: ran dumpstate, grepped dmesg for new selinux denials
Change-Id: I28814edcf37a7edbde79279feff0e7def64316f2

7 years agodumpstate: switch to using libdebuggerd_client.
Josh Gao [Fri, 6 Jan 2017 02:27:33 +0000 (18:27 -0800)]
dumpstate: switch to using libdebuggerd_client.

Bug: http://b/30705528
Test: manual inspection of dumpstate output
Change-Id: I8f9822f67f1a81fcfa2b3a9120e6631b19b29854

7 years agoAdd Binder support for Parcelable exceptions.
Jeff Sharkey [Tue, 17 Jan 2017 20:53:04 +0000 (13:53 -0700)]
Add Binder support for Parcelable exceptions.

Follow the new framework changes that support sending EX_PARCELABLE
exception types.

Test: builds, boots
Bug: 33749182
Change-Id: I7a856fa89f23aab4f782c4e5ae2beb8166fa8da4

7 years agoMerge "Handle devices without quota, speed up lookup."
Jeff Sharkey [Tue, 17 Jan 2017 16:54:00 +0000 (16:54 +0000)]
Merge "Handle devices without quota, speed up lookup."

7 years agoservicemanager: selinux: set selinux callbacks early
Sandeep Patil [Tue, 27 Dec 2016 20:40:45 +0000 (12:40 -0800)]
servicemanager: selinux: set selinux callbacks early

SELinux library error logs are never be shown in logcat if
there's a failure before the callbacks are set. We missed
all logs from service context initialization because of this.

Bug: 33746484
Test: Restart new service manager to make sure context init logs
show up in logcat.

Change-Id: I5479cf5fe10ceb1a210eda26946b6ea344792e24
Signed-off-by: Sandeep Patil <sspatil@google.com>
7 years agoMerge changes Ic746ea89,Iebaa8063
Treehugger Robot [Tue, 17 Jan 2017 04:02:45 +0000 (04:02 +0000)]
Merge changes Ic746ea89,Iebaa8063

* changes:
  Wrap all installd operations in lock.
  Mask st_mode before comparing it.

7 years agoHandle devices without quota, speed up lookup.
Jeff Sharkey [Tue, 17 Jan 2017 03:57:45 +0000 (20:57 -0700)]
Handle devices without quota, speed up lookup.

Start tracking which block devices have quota support, and gracefully
clear FLAG_USE_QUOTA when no support is present.

Also build a cached map of mounted volumes that support quota, which
halves the average quota calculation speed from 0.70ms to 0.35ms,
since we're no longer parsing procfs every time.

Test: builds, boots, common operations work
Bug: 34249218
Change-Id: Ie791df7801b67495331f3eea256c018860c9b4f6

7 years agoWrap all installd operations in lock.
Jeff Sharkey [Tue, 17 Jan 2017 02:07:18 +0000 (19:07 -0700)]
Wrap all installd operations in lock.

Historically installd has a single lock up in the framework, but
we're starting to call in from multiple locations, so installd needs
to protect itself.

This specifically applies to any disk measurement requests, which
use the optimized fts(3) mode which uses chdir() internally.

Test: builds, boots, common operations work
Bug: 34330051
Change-Id: Ic746ea890ebcc7b2bf923404874b04dbc19d42ad

7 years agoMask st_mode before comparing it.
Jeff Sharkey [Fri, 13 Jan 2017 02:27:03 +0000 (19:27 -0700)]
Mask st_mode before comparing it.

Otherwise it will never match the requested mode_t.

Test: builds, boots, skips when matching
Bug: 34201111
Change-Id: Iebaa8063a72eb6eaf2e773c1d35204617d0f16b8

7 years agoMerge "liblog: use log/log.h when utilizing ALOG macros"
Mark Salyzyn [Thu, 12 Jan 2017 21:59:57 +0000 (21:59 +0000)]
Merge "liblog: use log/log.h when utilizing ALOG macros"

7 years agoliblog: use log/log.h when utilizing ALOG macros
Mark Salyzyn [Thu, 12 Jan 2017 21:57:51 +0000 (13:57 -0800)]
liblog: use log/log.h when utilizing ALOG macros

Audit dropout because ALOG is behind MYLOG ...

Test: compile
Bug: 34250038
Change-Id: I009478157d2267e10f8c09a7faa4b8f7c7c4a1e7

7 years agoMerge "Don't print error if we can't talk to hwservicemanager."
Treehugger Robot [Thu, 12 Jan 2017 21:20:15 +0000 (21:20 +0000)]
Merge "Don't print error if we can't talk to hwservicemanager."

7 years agoDon't print error if we can't talk to hwservicemanager.
Martijn Coenen [Thu, 12 Jan 2017 16:16:31 +0000 (17:16 +0100)]
Don't print error if we can't talk to hwservicemanager.

This currently fails as a non-root user due to SEPolicy,
and is causing CTS test failures. Until we figure out
the policy on b/34242478, don't print an error to allow
the test to pass again.

Test: cts-tradefed run cts --module CtsAtraceHostTestCases --test
android.atrace.cts.AtraceHostTest#testSimpleRun

Bug: 33814619
Change-Id: Ie5578639028e7890284d71bbf1b753f5803ca4af

7 years agoMerge "Replace cutils/log.h and rationalize log/log.h and android/log.h"
Mark Salyzyn [Thu, 12 Jan 2017 15:19:07 +0000 (15:19 +0000)]
Merge "Replace cutils/log.h and rationalize log/log.h and android/log.h"

7 years agoReplace cutils/log.h and rationalize log/log.h and android/log.h
Mark Salyzyn [Thu, 29 Sep 2016 15:08:05 +0000 (08:08 -0700)]
Replace cutils/log.h and rationalize log/log.h and android/log.h

- cutils/log.h treat as deprecated and lead by example
- android/log.h to be used instead of log/log.h if possible
- add system includes that are assumed as side effects
- define LOG_TAG first

Test: compile
Bug: 31289077
Bug: 30465923
Change-Id: I8d99b24c333578c9b5aa9f2a01324bd0bba268dd

7 years agoMerge "Added test cases to dumpsys."
Treehugger Robot [Wed, 11 Jan 2017 18:51:14 +0000 (18:51 +0000)]
Merge "Added test cases to dumpsys."

7 years agoMerge "Cleanup code given PATCHOAT_FOR_RELOCATION has been removed."
Treehugger Robot [Wed, 11 Jan 2017 10:28:16 +0000 (10:28 +0000)]
Merge "Cleanup code given PATCHOAT_FOR_RELOCATION has been removed."

7 years agoAdded test cases to dumpsys.
Felipe Leme [Wed, 3 Aug 2016 01:57:37 +0000 (18:57 -0700)]
Added test cases to dumpsys.

BUG: 28980245
BUG: 33382892

Test: dumpsys_test passes

Change-Id: Ief6c21022abc74022256431351fd6eef789faf39
(cherry picked from commit b6e244914deaffcdeea02deebf7c0da2643f601c)

7 years agoMerge "Methods to calculate user and external disk usage."
Jeff Sharkey [Tue, 10 Jan 2017 04:30:46 +0000 (04:30 +0000)]
Merge "Methods to calculate user and external disk usage."

7 years agoMethods to calculate user and external disk usage.
Jeff Sharkey [Sat, 7 Jan 2017 16:19:35 +0000 (09:19 -0700)]
Methods to calculate user and external disk usage.

Add method to calculate user disk usage, which will be faster than
making a Binder call for every single appId under a user.  Add method
to calculate external disk usage, which uses file extensions to track
usage with "audio", "video", and "images" categories.

Add script to generate optimized file extension matcher logic.

Start measuring internal and external storage space separately; new
GIDs are coming in a future CL.  Pass down all package names, inodes,
and code paths, since shared UIDs host more than one.

Test: builds, boots, stats are consistent
Bug: 2794881732206268
Change-Id: Icb9843ac5159e0e5f1503d9b64e0bcae407e1a5d

7 years agoMerge "Surface: Use async lock/unlock in copyBlt"
Jesse Hall [Mon, 9 Jan 2017 05:07:29 +0000 (05:07 +0000)]
Merge "Surface: Use async lock/unlock in copyBlt"

7 years agoMerge "egl: Add NULL check for num_config parameter"
Jesse Hall [Sat, 7 Jan 2017 23:44:22 +0000 (23:44 +0000)]
Merge "egl: Add NULL check for num_config parameter"

7 years agoMerge "Unversion NDK stub libraries."
Treehugger Robot [Fri, 6 Jan 2017 20:53:07 +0000 (20:53 +0000)]
Merge "Unversion NDK stub libraries."

7 years agoUnversion NDK stub libraries.
Dan Albert [Thu, 5 Jan 2017 23:58:50 +0000 (15:58 -0800)]
Unversion NDK stub libraries.

The system versions of these libraries aren't versioned yet.

Bug: https://github.com/android-ndk/ndk/issues/278
Test: make ndk
Change-Id: I73e4ebcac151c4039df6261aa6674accb0204706