Commit Graph

8188 Commits

Author SHA1 Message Date
Primiano Tucci
355753053c Merge "Do not check for debuggable / profilable for app tracing." 2021-02-18 17:52:31 +00:00
Jiashen Wang
6851cf0c51 Add the immutable flag to EuiccManager calls in RecoverySystem
Bug: 170432460
Test: refactoring CL. Existing unit tests still pass
Change-Id: Ibce939eec341cb9f572d13a33762cc5bc6e2ef42
Merged-In: Ibce939eec341cb9f572d13a33762cc5bc6e2ef42
2021-02-17 22:04:23 +00:00
Treehugger Robot
2a2456d3a4 Merge "dumpsys: Print total DMA-BUFs exported from the DMA-BUF heaps framework" 2021-02-16 17:58:25 +00:00
Lorenzo Colitti
b8d9e77b2a Merge "New API for getting uids have specific permissions from SystemConfig" 2021-02-16 08:24:21 +00:00
Florian Mayer
f287f6900c Do not check for debuggable / profilable for app tracing.
This is publicly undocumented and surprising behaviour.

Bug: 179883548
Change-Id: Iceee54c63dc9f5d61e9dcc76a47e11cc4088ed19
2021-02-12 20:27:59 +00:00
Hridya Valsaraju
1ff4e91e6c dumpsys: Print total DMA-BUFs exported from the DMA-BUF heaps framework
This patch adds the total size of DMA-BUFs exported from the DMA-BUF
heaps framework to dumpsys meminfo.

Bug: 167709539
Test: adb shell dumpsys meminfo
Change-Id: I153721a0dc91ee5084a446ba1ce4f8ec9c51c4f0
Merged-In: I153721a0dc91ee5084a446ba1ce4f8ec9c51c4f0
2021-02-12 10:08:23 -08:00
Kalesh Singh
1a8d198b5b Provide an interface to query dmabuf GPU allocations
The DMA buffers mapped by GPU device(s) are already accounted for
in the total exported dmabuf size (ionHeap) size.

To remove GPU memory from lost RAM, provide an API to get only the
DMA buf memory mapped by the GPU device(s).

Bug: 176477627
Test: adb shell dumpsys meminfo
Change-Id: Ie72f46c8de026b143629406714f413677ce6693b
Merged-In: Ie72f46c8de026b143629406714f413677ce6693b
2021-02-12 10:07:30 -08:00
Suren Baghdasaryan
c17cbb303c Extend getPssPid to report itemized memtrack values
Currently getPssPid includes memtrack HAL reported values in the pss
calculation. This makes it impossible to get these values separately.
Extend this interface to include itemized memtrack values.

Bug: 165832481
Test: dumpsys meminfo
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: Ieb7e1b79ad8ecae6023338d9992467952558e2bd
2021-02-12 01:11:39 +00:00
Treehugger Robot
ad688d3e8c Merge changes from topic "b/167709539"
* changes:
  Add total DMA-BUF heap pool size information to dumpsys meminfo
  Add total size of DMA-BUFs exported to 'dumpsys meminfo'
  Rename getIonMappedSizeKb to getDmabufMappedSizeKb
2021-02-10 17:37:30 +00:00
Hridya Valsaraju
365ffff4b5 Add total DMA-BUF heap pool size information to dumpsys meminfo
Some DMA-BUF heaps maintain pools of pre-zeroed memory for faster
allocations. Print the total size of all DMA-BUF heap pools as part of
dumpsys meminfo and use the same in LostRam calculation.

Test: dumpsys meminfo
Bug: 167709539
Change-Id: Ifb61fe596c1a8fab1bd536ec904285e532629b71
Merged-In: Ifb61fe596c1a8fab1bd536ec904285e532629b71
2021-02-10 06:05:36 +00:00
Hridya Valsaraju
363d44d7a0 Add total size of DMA-BUFs exported to 'dumpsys meminfo'
When ION support is not detected, print the total size of DMA-BUFs
exported as part of dumpsys meminfo.

Bug: 167709539
Test: dumpsys meminfo
Change-Id: I3439a8f00cf1aef37e5043b505ed53d47a8a4756
Merged-In: I3439a8f00cf1aef37e5043b505ed53d47a8a4756
2021-02-10 06:05:02 +00:00
Hridya Valsaraju
6ae0be89b9 Rename getIonMappedSizeKb to getDmabufMappedSizeKb
The function is actually calculating the total mapped DMA-BUF memory.

Test: dumpsys meminfo
Bug: 167709539
Change-Id: I5c19dc604cf48c3d7ccbfd2d9a83ddd7b35f20d5
Merged-In: I5c19dc604cf48c3d7ccbfd2d9a83ddd7b35f20d5
2021-02-10 06:04:12 +00:00
paulhu
ba70fa80ac New API for getting uids have specific permissions from SystemConfig
SysetmConfig is internal service for frameworks only which cannot
use by Connectivity mainline module, but PermissionMonitor which
is part of the module needs to get uids that have been granted
INTERNET/UPDATE_DEVICE_STATS permission from SystemConfig.
Therefore, add a new API to SystemConfigManager that can get
these uids from SysetmConfig.

Bug: 177188455
Test: atest SystemConfigTest
Change-Id: I62bdd969b1b813631ed6223df97bda21a39aec2c
2021-02-09 10:11:41 +08:00
Chiachang Wang
8f43b2be54 Create new system API in UserHandle to get uid
For the incoming connectivity mainline, it need to compute the
intersection of a set of uids and appIds for the permission
control. As @UserIdInt values are internal implementation details
of the OS, any mainline modules should use strongly-typed
UserHandle arguments. Thus, create a new API that accepts
UserHandle and appId to get the computed uid.

Bug: 170598012
Test: atest FrameworksNetTests
Change-Id: I046546d2c5c76eac7a251e63e4234776975bf2bc
2021-02-05 02:26:23 +00:00
Steven Moreland
52f933552a Merge "binder: race condition by parcel finalize" 2021-02-03 18:46:50 +00:00
Steven Moreland
f6fee67b6e WatchDog: support dumping AIDL HALs
Similar to how HIDL HALs are here, we don't know the commandline of the
service, so we can dump them based on service name prefixes.

Power stats and lights are added here, for parity w/ HIDL since these
hvae been converted to AIDL.

Fixes: 175322136
Test: after `adb shell am hang`, we can verify the light service is
  dumped, when it wasn't before:

  vsoc_x86_64:/data/anr # cat anr_2021-01-28-22-42-44-969  | grep light
  Cmd line: /vendor/bin/hw/android.hardware.lights-service.example

Change-Id: I8c8b0cff0c102221875114015a5524c03cfb5b5c
2021-01-28 22:53:23 +00:00
Jintao Zhu
15b49e10ae binder: race condition by parcel finalize
Root cause:
1) a client thread calls "transact", and then, reads a java binder object from the java parcel object
2) the java binder object sends BC_ACQUIRE/BC_INCREFS, but still in the queue, not yet flushed to driver
3) the java parcel object is garbage-collect-ed, and, its finalize method may possibly sends BC_FREE_BUFFER

  Because "BC_FREE_BUFFER" is from the java finalize thread, which is different from the "client thread", so, it is possible that "BC_FREE_BUFFER" will be flushed to driver before "BC_ACQUIRE/BC_INCREFS", which makes driver destroy the related "binder_ref" object prematurely.

Consequences of the issue:
  The user space process might always hold the above java binder object, whose "handle value" is indeed invalid because the related "binder_ref" in driver is destroyed. This causes a lot of chaos inside the process:
<a> any binder call on the java binder object will be a failure, with kernel log complain: ...got transaction to invalid handle...
<b> afterward, any new bind object passed to this process will NOT create a brand new one for it, instead, it will be simply and incorrectly mapped to the above old biner object, because the new incoming one will use the same "handle value" as the old one. This will make a mess and many weird bugs.
 First, it may break "binder object identity" compare based functionality. For example, after registering a listener to a service, all following registering may fail because the latter new listener object is mapped to the old one incorrectly. The service will reject them as "already registered".
 Second, binder call on the old binder object is actually dispatched to the new remote binder object, it might even be a success if they are of the same class/interface, which is actually not we expected; and on the other hand, the new binder object may even be of different class/interface, and of course, the binder call may be a failure due to "interface descriptor check".
<c> the user space process cannot recover from the bug automatically unless restart.

Solution:
  Hold a temporary reference to the parcel object until "BC_ACQUIRE/BC_INCREFS" flushed to driver.

Bug: 139327211
Test: monkey test for one day and one night

Co-authored-by: Steven Moreland <smoreland@google.com>

Signed-off-by: Jintao Zhu <zhujtcsieee@gmail.com>
Change-Id: I9345f443996b0bdef9d57ddaad119b86205e817f
2021-01-28 19:38:18 +08:00
Oliver Woodman
a6b77e3294 Merge "API to get SOC manufacturer and model" 2021-01-28 09:07:56 +00:00
Oliver Woodman
be2de18471 API to get SOC manufacturer and model
BUG: 158284209
Test: atest android.os.cts.BuildTest
Change-Id: I9a2e1a4f667e7751252ac0f404d0d56c452718a5
2021-01-26 15:34:18 +00:00
Corina
911c2e8bed Change order of owners.
Some tools use the first owner as default assignee for automatically
file bugs.

Bug: no
Test: no
Change-Id: Iad216857e9b8de705a4a0c4f09389a0efe7aca18
2021-01-26 13:31:56 +00:00
Corina Grigoras
d17c69bccb Merge "Add all storage team to owners." 2021-01-22 16:57:22 +00:00
Corina
6915543849 Add all storage team to owners.
Bug: no
Test: no
Change-Id: Ib4fba7af30cec8efd5fb9115fec9bd354e07a2fc
2021-01-22 14:10:07 +00:00
paulhu
69f79b0aca Expose Build.VERSION.FIRST_SDK_INT as module-lib API
Connectivity service is going to become a mainline module which
will not be able to access hidden APIs. But PermissionMonitor
needs know Build.VERSION.FIRST_SDK_INT for granting network
restricted permission to system packages. Thus, expose the value
as module-lib API to support the usage.

Bug: 170598012
Test: make update-api
Change-Id: Id0ae42120f69faee43eeb7ebd35cae9e26cb7561
2021-01-22 15:30:07 +08:00
Treehugger Robot
0dcf4de7df Merge "Make BugreportManager a public API that respects carrier privileges." 2021-01-19 00:21:25 +00:00
Treehugger Robot
3299d00b87 Merge "New sm command to unmount app data and obb app visibility mount" 2021-01-18 16:20:41 +00:00
Treehugger Robot
d8e3e07264 Merge "Add MOUNT_FLAG_VISIBLE to visible stub volumes" 2021-01-18 14:54:27 +00:00
Youkichi Hosoi
d2905dd086 Add MOUNT_FLAG_VISIBLE to visible stub volumes
The visibility setting of a removable device shared with Chrome OS is
passed via Disk flags. When a device (stub volume) is marked as visible,
we should set the MOUNT_FLAG_VISIBLE flag to it.

Bug: 123377807
Bug: 142684891
Bug: 132796154
Test: Toggle the visibility setting of a removable device in the Chrome
Test: OS Settings app > Confirm that the device is visible to Android
Test: apps only when it is marked as visible.
Test: Tested in R

Change-Id: I19289596345690b1802738122fe274eeb41f9361
2021-01-18 12:09:52 +00:00
Hunter Knepshield
30e7b64d9c Make BugreportManager a public API that respects carrier privileges.
This permission model is only allowed for BUGREPORT_MODE_TELEPHONY to
let carrier apps (even from the Play Store / not pre-loaded) access
BugreportManager to trigger connectivity bugreports.

This also requires SELinux policy changes to allow non-system apps to
get an instance through Context#getSystemService, and then dumpstate
also needs permissions to write public apps' files.

Minor documentation and formatting fixes as well.

BYPASS_INCLUSIVE_LANGUAGE_REASON=leaving variable name derived from
"bugreport-whitelisted" sysconfig alone for now

Bug: 161393541
Test: atest CtsCarrierApiTestCases:BugreportManagerTest
Change-Id: I5a38e7a040fa23146fa6c1e785db102b066ad167
Merged-In: I5a38e7a040fa23146fa6c1e785db102b066ad167
(cherry picked from commit 57fd3440be)
2021-01-15 17:35:45 -08:00
Hunter Knepshield
fffec02113 Pass caller information in cancelBugreport.
In preparation for a broader set of apps using BugreportManager, we
enforce that only the app which started a bugreport is allowed to cancel
it.

Bug: 161393541
Test: atest BugreportManagerTestCases
Test: manual with two apps triggering/cancelling BRs
Change-Id: I430d856014a226ef345bd2349f0601062dcaa8c7
Merged-In: I430d856014a226ef345bd2349f0601062dcaa8c7
(cherry picked from commit 4a1b9e949d)
2021-01-15 17:29:03 -08:00
Ricky Wai
e81ebc69c3 New sm command to unmount app data and obb app visibility mount
This command will be used in tests so tests won't mount data and obb
dirs anymore so won't be killed by system when volume is unmounted.

Bug: 148049767
Test: Enable storage app visibility flag, then run "sm unmount-app-data-dirs  PKG PID USER_ID", data and obb are not mounted in /proc/$PID anymore.
Change-Id: Ie5ddf55471f59c61e1906664b87a9bf889702536
2021-01-15 14:06:29 +00:00
Lorenzo Colitti
c5f2057d02 Merge changes I28e39400,Ibada8b42
* changes:
  UserManager restricted profile SystemApis
  Improve testing of CONNECTIVITY_ACTION broadcasts.
2021-01-14 10:39:48 +00:00
Adam Bookatz
81762facae UserManager restricted profile SystemApis
Makes two new SystemApis:
getRestrictedProfileParent()
canHaveRestrictedProfile()

Temporarily disables VPN Tests that rely on the old APIs until those
tests are updated (b/175883995).

Bug: 171529940
Test: atest FrameworksNetTests:com.android.server.connectivity.VpnTest
Test: Tests for UserManager SystemApis are TODO awaiting completion of new user test infrastructure (b/163890431)
(cherry picked from commit 20ba13f5bc)
Change-Id: I28e39400039631e7d391dc7b0d003e8a38d1f06a
2021-01-14 17:39:13 +09:00
Yo Chiang
f2bf58fb9b Merge "Fix DynamicSystemClient.start() exceptions" 2021-01-13 02:35:28 +00:00
Adam Bookatz
6cd4cd01fb Add User* OWNERS file (part 2)
Part 1 was aosp/1546301.
Two parts are required due to b/175318571.

Test: N/A
Change-Id: I1a89f7d26da70dce36d1e891a8e8ebc4042dc56c
2021-01-12 01:03:39 +00:00
Treehugger Robot
916dfddfd0 Merge "Change log tag of DynamicSystemClient to match class name" 2021-01-06 11:11:58 +00:00
Yo Chiang
4896c7f2ac Merge "DynamicSystemInstallationService: Support remount for DSU guest system" 2021-01-06 08:37:43 +00:00
Yo Chiang
cd65cd4e04 Change log tag of DynamicSystemClient to match class name
Expand the "DynSystem" abbreviation to "DynamicSystem".
For simpler log grepping.

Bug: 165471299
Test: No
Change-Id: Ibec692ae45539dacd55e13ffaa903b58f3bf0417
2021-01-06 08:24:16 +00:00
Yo Chiang
a5c6f7fd6f Fix DynamicSystemClient.start() exceptions
* Remove calls to featureFlagEnabled() as they are causing avc denials,
  plus the feature flag is already deprecated.
* Add Intent flag FLAG_ACTIVITY_NEW_TASK to fix the
  AndroidRuntimeException, as the Context object used to startActivity()
  may not be an Activity object instance.
* Check the nullness of mListener before using it to fix the
  NullPointerException.

Bug: 176795908
Test: atest \
  cts/tests/tests/os/src/android/os/image/cts/DynamicSystemClientTest.java
Change-Id: I265d9912e76c39406e0adeacd2490b62873c94e4
2021-01-06 15:59:37 +08:00
Steven Moreland
e51328b36c Merge "TransactionTooLargeException: doc clarification" 2021-01-05 18:32:33 +00:00
Yo Chiang
848bcdc42a DynamicSystemInstallationService: Support remount for DSU guest system
DSU service would try to install a DSU scratch partition if host system
is debuggable.
If the scratch partition failed to install, then skip installing
scratch, as remount support should be optional.
Otherwise if the guest system is non-debuggable, then the scratch
partition would be ignored by guest, which is harmless.
Otherwise the guest system is debuggable, which means the guest system
would be able to do adb remount.

Relax partition allocation status polling rate from 10ms -> 100ms,
because there's no point polling faster than the screen framerate.

Bug: 165925766
Test: TH
Test: Install a DSU system on a debuggable host, reboot into the guest
  system, and guest system can remount.
Change-Id: I9a8255483cc963ebcf7a2909e68ac69371cb369f
2021-01-05 15:38:42 +08:00
Yo Chiang
d15cbc37d5 Merge "Update OWNERS file for DynamicSystemInstallationService related files" 2021-01-05 03:34:39 +00:00
Yo Chiang
70aa429243 Update OWNERS file for DynamicSystemInstallationService related files
Also sort OWNERS by alphabetical order.

Bug: 165925766
Test: No
Change-Id: Ib272ba802d0f7281aa2d1bbc8b74dc5954dbe13c
2020-12-31 14:10:36 +08:00
Steven Moreland
58311dcc70 TransactionTooLargeException: doc clarification
- buffer is in bytes, not bits (1MB vs 1Mb)
- this exception is actually a heuristic currently, pending b/28321379

Fixes: 149869862
Test: N/A
Change-Id: Id409a1ce7348666ec9ad6437acf67382be0a0a1f
2020-12-30 19:46:57 +00:00
Suren Baghdasaryan
aee45ee0bc Add total GPU usage report into dumpsys meminfo output
With latest kernel changes, total GPU memory usage is reported and can
be obtained via a BPF program. Create JNI interface to query it and
report inside dumpsys meminfo output.

Bug: 171261987
Test: dumpsys meminfo
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Merged-In: I949a13836d5b5bc87fc43f60871b4fbf2add6480
Change-Id: I949a13836d5b5bc87fc43f60871b4fbf2add6480
2020-12-30 17:32:10 +00:00
Steven Moreland
55fe3d16a4 Merge "OWNERS - for binders" 2020-12-29 18:43:29 +00:00
Treehugger Robot
d0c6e0fa08 Merge "Add some comments about thread-safety" 2020-12-29 16:03:08 +00:00
Sudheer Shanka
771aa062b9 Merge "Update usage of allowlist/denylist in some method names/comments." 2020-12-24 08:16:51 +00:00
Sudheer Shanka
ab00eadcc0 Update usage of allowlist/denylist in some method names/comments.
In a previous change (https://r.android.com/1394342), we did a mass update of whitelist->allowlist
and blacklist->denylist in network policy related code. Updating
some usages of those (like allowlisted to allowed) to make them
sound natural.

Test: atest services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java
Test: atest services/tests/servicestests/src/com/android/server/NetworkManagementInternalTest.java
Test: atest hostsidetests/net/src/com/android/cts/net/HostsideRestrictBackgroundNetworkTests.java
Change-Id: I6d34b0bd3cdb64d5872874fd9378bfc962a24f8d
2020-12-24 04:03:33 +00:00
Steven Moreland
0306f8c174 OWNERS - for binders
Forward ownership of libbinder and libhwbinder related things to
respective libbinder and libhwbinder OWNERS sets, to support future
developments.

Bug: 149869862
Test: N/A
Change-Id: If14bfdd89719c7cb1e39594aecdb089d4d5c96e3
2020-12-24 01:16:52 +00:00
Chiachang Wang
b1de9a09bd Merge "[IT02] Expose system api to report radio power state" 2020-12-23 05:19:51 +00:00