This packageName is passed so that the process initialization
after the zygote fork can mount appropriate package sandbox.
Bug: 111890351
Test: n/a
Change-Id: I99d6c1b53fffd53d7387dc807106efe5e1dc9b07
This will be used by a follow up CL to call getTransactionCode lazily
instead of doing it during the binder call.
Test: unit tests
Change-Id: I11a997bb8a6268871daf4145a962886b43195c89
The existing appendWhere() methods aren't very friendly for
developers, since they require manual tracking of state to decide if
subsequent standalone chunks should be prefixed with "AND".
While it's tempting to offer direct argument binding on the builder
class, we can't really deliver on that API in a secure way, so instead
add separate bindSelection() method which explicitly burns arguments
into a standalone selection string, which can then be appended to
the builder.
This was the last piece of new functionality being used by
SQLiteStatementBuilder, so we can delete that class and migrate
users back to SQLiteQueryBuilder.
Bug: 111268862
Test: atest frameworks/base/core/tests/coretests/src/android/database/DatabaseUtilsTest.java
Test: atest frameworks/base/core/tests/utiltests/src/com/android/internal/util/ArrayUtilsTest.java
Test: atest cts/tests/tests/provider/src/android/provider/cts/MediaStore*
Test: atest cts/tests/tests/database/src/android/database/sqlite/cts/SQLiteQueryBuilderTest.java
Change-Id: I418f24338c90bae8a9dad473fa76329cea00a8c5
It will help to figure out if calling Binder.getTransactionName has a
performance impact.
Test: manual
Change-Id: I0c9abd2ff3c5255bd67321645dfbf7eda54736bf
Exceptions counts by class name and few new fields for binder calls.
> adb shell cmd stats pull-source 10023
Pull from 10023: { 1532528725000000000 49754068496 (10023)0x10000->java.lang.SecurityException[S] 0x20000->2[I] }
Pull from 10023: { 1532528725000000000 49754068496 (10023)0x10000->java.lang.IllegalArgumentException[S] 0x20000->16[I] }
Test: manual
Change-Id: I4d24528a7df8edde87f629837fb3117a0504d09e
This is the first step to move BinderCallsStats implementation to the
server package in order to have an implementation more specific to the
system server (tracking charger on/off).
Removes the volatile keywords in BinderCallsStats.
Also exposes a clean API to StatsCompanionService instead of
BinderCallsStats directly.
Test: unit test
Change-Id: Ied98c555acc8489420104098561b4608346509b5
Change the sampling method to be random. The previous mechanism recorded
one call for each key (uid/API name) and every X calls for each key:
- This is biased and will make it to interpret the data from
westworld. It was especially unfair for apps using many different APIs
since the first call to each API was always recorded.
- It uses more memory since we will keep track of all the long tail
Simplify/unify the way we keep track of sampled calls.
Do not estimate the CPU usage of non-recorded calls
long samplesCount = cs.callCount / mPeriodicSamplingInterval + 1;
duration = cs.cpuTimeMicros / samplesCount;
It biases the results, let's use an example with 3 calls: 1ms, 3ms, 5ms
with an sampling interval of 2. With the previous algorithm we would get an
average per call of (1+1+3+2+5)/5=2.4ms. With the new one (1+3+5)/3=3ms.
Test: unit tests
Change-Id: I1dd7eb3c6c631b86a53485bccbfa397882cccc92
This commit swaps some internal details of libcore for some
abstractions on dedicated "internal facing" APIs. This reduces the
number of internal APIs used. There is an associated change in
libcore/
Bug: 111055375
Test: build / boot
Change-Id: Idddada1922701bd15475c840eaa76c505e545d33
This reverts commit 420ed9ef22.
Reason for revert: The WeakReference change can prevent memory leak, but
but the extra time spend on creating thousands of WeakReference objects has slowed down system_server startup as reported by b/111658334. Revert this CL for now, will find other approach to prevent memory leak.
Change-Id: I07a5806e36159467459b841f63e2b0c55b6cc10b
This reverts commit 3488f1afcb.
Reason for revert: The change to ArraySet increase system_server startup time by 20ms as reported in b/111658334. It is because add() operation into ArraySet takes much longer than ArrayList.
Change-Id: I1523332a8c9fc74cfef29b119a3c4c54d55596ec
Process of tombstoned have changed the generation flow for
tombstone, and dropbox could not be notified when generating new
tombstone file any more, so dropbox could not copy and compress
tombstone file to /data/system/dropbox. We need to modify
observer events from CLOSE_WRITE to CREATE, and it could
work normally.
Bug: http://b/111608961
Test: 1 After tombstone is triggered, we could see the tombstone
file in the data/system/dropbox directory.
Signed-off-by: Haoran Li <lihaoran5@huawei.com>
Change-Id: I9d6a31773e4a58658ffab214b1e337f27e9f3ae6
(cherry picked from commit fe8d2c9a8c)
Process of tombstoned have changed the generation flow for
tombstone, and dropbox could not be notified when generating new
tombstone file any more, so dropbox could not copy and compress
tombstone file to /data/system/dropbox. We need to modify
observer events from CLOSE_WRITE to CREATE, and it could
work normally.
Bug: http://b/111608961
Test: 1 After tombstone is triggered, we could see the tombstone
file in the data/system/dropbox directory.
Signed-off-by: Haoran Li <lihaoran5@huawei.com>
Change-Id: I9d6a31773e4a58658ffab214b1e337f27e9f3ae6
Widen the definition to take advantage of errorprone support.
Bug: 72666911
Test: m
Test: m RUN_ERROR_PRONE=true javac-check
Change-Id: Id792ee70b41b786da717f916e143786fe6308937
On a real device, the mObservers list size can be close to 20k.
Previously mObservers is an ArrayList of strong Reference and there
is memory leak from it. This is why we changed to WeakReference. It
takes 2ms to remove an Reference element from a 20k ArrayList. But It
takes 9ms to remove a WeakReference element from a 20k ArrayList
. This increases chance of ANR. Now we change from ArrayList to
ArraySet, removing a WeakReference element from a 20k ArraySet only
takes 0.1ms. The memory difference between ArrayList and ArraySet is
minimum.
Fix: 111555898
Test: compare time takes to remove WeakReference element from ArrayList
and ArraySet.
Change-Id: If77633549197bcb3cf5269b537288f0189f2fcf3
Stop using bouncycastle as requested in the bug.
Bug: 111440841
Test: 1. Without changes
a. adb shell bmgr transport android/com.android.internal.backup.LocalTransport
b. adb shell bmgr backupnow com.android.providers.settings
c. adb shell ls /cache/backup/1/_delta/<kv_package> #=> Base64 encoded keys
2. Build and flash this CL
a. adb shell bmgr restore 1 com.android.providers.settings #=> verify stuff restored
b. adb shell rm /cache/backup/1/_delta/com.android.providers.settings/* /data/backup/com.android.internal.backup.LocalTransport/com.android.providers.settings
c. adb shell bmgr backupnow com.android.providers.settings
d. adb shell ls
/cache/backup/1/_delta/com.android.providers.settings # Verify same keys as 1c
Merged-In: I305bbae0e0af3639c1d45def19872e6da84624df
Change-Id: I305bbae0e0af3639c1d45def19872e6da84624df
(cherry picked from commit 7a6e032719)
- Allow to apply rotation animation on non-default display.
- Separate by display:
Rotation related timeout.
Pause/resume rotation.
- Able to get/watch non-default display orientation/rotation.
Bug: 111361251
Test: atest FrameworksServicesTests:DisplayContentTests
Test: go/wm-smoke
Change-Id: I9533f1b90b9969d455b6dc235c5318e39f63ab12
When per-procstate cpu times tracking is turned on,
BatteryStatsImpl tries to access mKernelSingleUidTimeReader but
it's possible that mKernelSingleUidTimeReader hasn't been initialized
yet after a reboot and this could lead to a system_server crash.
Bug: 111523951
Test: manual
Change-Id: Id014f23fbe31fed64fba769f14ba4396a003092e
Stop using bouncycastle as requested in the bug.
Bug: 111440841
Test: 1. Without changes
a. adb shell bmgr transport android/com.android.internal.backup.LocalTransport
b. adb shell bmgr backupnow com.android.providers.settings
c. adb shell ls /cache/backup/1/_delta/<kv_package> #=> Base64 encoded keys
2. Build and flash this CL
a. adb shell bmgr restore 1 com.android.providers.settings #=> verify stuff restored
b. adb shell rm /cache/backup/1/_delta/com.android.providers.settings/* /data/backup/com.android.internal.backup.LocalTransport/com.android.providers.settings
c. adb shell bmgr backupnow com.android.providers.settings
d. adb shell ls
/cache/backup/1/_delta/com.android.providers.settings # Verify same keys as 1c
Change-Id: I305bbae0e0af3639c1d45def19872e6da84624df