summaryrefslogtreecommitdiff
path: root/core/jni/AndroidRuntime.cpp
AgeCommit message (Collapse)Author
2022-03-15Merge SP2A.220305.013Haamed Gheibi
Bug: 220074017 Change-Id: Idfdd94e902f656ac65a2a75dfdd199f6f85ba472
2021-07-27Merge SP1A.210723.002Scott Lobdell
Change-Id: I220cdfc5cb9db40162fd33f400a54591018d54cf
2021-07-22Implement java PerformanceHintManager on top of nativeBo Liu
Note some exceptions became silence errors in this conversion. Test: None Bug: 194204196 Change-Id: Ia3cc7f2396f2e307a23b40b3f104a2fa90352196
2021-07-14Merge SP1A.210709.002Haamed Gheibi
Change-Id: I4610885d5d770d858895057cdd9fea387a5e33dd
2021-07-09Merge SP1A.210624.001Scott Lobdell
Change-Id: I96a39cdca22771b76e89caebd53ed52416005092
2021-07-02Add dalvik.vm.force-java-zygote-fork-loopHans Boehm
Bug: 192020504 Test: Check logcat with and without the flag. Change-Id: Ia46a011125a6e245bbd9065d708d1f905d56e3af Merged-In: Ia46a011125a6e245bbd9065d708d1f905d56e3af (cherry picked from commit f2a815dcbf134e22a60c13121d0a94bf5d018ed5)
2021-07-02AndroidRuntime: pass odsign verification status to ARTOrion Hodson
ART will refuse to load on-device generated artifacts if odsign verification status suggests files have been tampered with. (cherry picked from commit a8b24392a1da6c3441f38acd623fbefaaa97d723) Bug: 180949581 Test: manual Merged-In: I772b5b7b191310bf7c7797161a304a1ab6f53c5e Change-Id: Ia0e5ebf4c763678fef55139af60b169f0e6fdeee
2021-06-21Merge SP1A.210616.001Daniel Norman
Change-Id: I9acdc955f698dbebb8fad19cfd5cb71fcdd27b45
2021-06-18Merge "Revert "Revert "Release cblocks back to the free pool""" into sc-devTreeHugger Robot
2021-06-17Merge SP1A.210604.001Brian Orr
Change-Id: I5200ee05285ae422d5e9c1c00f45709a5d6188be
2021-06-09Parse dalvik.vm.ps-min-save-period-ms propertyCalin Juravle
Test: adb shell setprop dalvik.vm.ps-min-save-period-ms 300; Bug: 185979271 Merged-In: I2f30675b335ca0b9b1f1d30144fcdfa4fc680b41 Change-Id: I2f30675b335ca0b9b1f1d30144fcdfa4fc680b41 (cherry picked from commit a2ba369d2017aa1918367810f54b3fe4a5a17057)
2021-06-03Revert "Revert "Release cblocks back to the free pool""Jaegeuk Kim
This reverts commit 516cb2d025a8c5dc67f4a926bdbb79c0e3725b4c. Reason for revert: Add back after merging f2fs/f2fs-tools changes removing immutable bit stuffs Bug: 188928405 Change-Id: I6a6fcde1190bff14abe1a67a75b8e7be95d89072
2021-06-03Merge "Revert "Release cblocks back to the free pool"" into sc-devJohn Tsai
2021-06-03Revert "Release cblocks back to the free pool"John Tsai
This reverts commit e41b029d8530d29eb18937662da8c5ea2939dda7. Reason for revert: b/189985437 com.android.tradefed.targetprep.TargetSetupError[APK_INSTALLATION_FAILED|520001|DEPENDENCY_ISSUE]: Failed to install com.android.devicehealthchecks with ... Change-Id: I06fe7d94f6dab474c74b093de8692f08d4031b62
2021-06-02Merge "Switch media fw permissions checks to AttributionSource" into sc-devSvetoslav Ganov
2021-06-01Switch media fw permissions checks to AttributionSourceSvet Ganov
Attribution source is the abstraction to capture the data flows for private data across apps. Checking permissions for an attribution source does this for all apps in the chain that would receive the data as well as the relevant app ops are checked/noted/started as needed. Teach speech recognition service about attribution chains. If an implementation does nothing the OS would enforce permisisons and do blame as always. This apporach leads to double blaming and doesn't support attribition chains where app calls into the default recognizer which calls into the on device recognizer (this nests recursively). If the implementer takes advantage of the attribution chain mechanims the permissions for the entire chain are checked at mic access time and all apps are blamed only once. Fixed a few bugs around finishing ops for attribution chains. Also ensured that any app death in a started attribution chain would lead to finishing the op for this app bug: 158792096 Test: (added tests for speech reco) atest CtsMediaTestCases atest CtsPermissionTestCases atest CtsPermission2TestCases atest CtsPermission3TestCases atest CtsPermission4TestCases atest CtsPermission5TestCases atest CtsAppOpsTestCases atest CtsAppOps2TestCases Merged-In: Ic92c7adc14bd2d135ac13b96f17a1b393dd562e4 Change-Id: Ic92c7adc14bd2d135ac13b96f17a1b393dd562e4
2021-05-28Release cblocks back to the free poolTodd Kennedy
Modern f2fs implementations starting in S support compression natively within the file system. The data blocks of specific installation artifacts [eg. .apk, .so, ...] can be compressed at the file system level, making them look and act like any other uncompressed file, but consuming a fraction of the space. However, the unused space is not free'd automatically. Instead, we must manually tell the file system to release the extra blocks [the delta between the compressed and uncompressed block counts] back to the free pool. Because of how compression works within the file system, once the blocks have been released, the file becomes read-only and cannot be modified until the free'd blocks have again been reserved from the free pool. For these installation artifacts, that is not a concern. Test: atest CtsAppSecurityHostTestCases:SplitTests Test: atest CtsAppSecurityHostTestCases:IsolatedSplitsTests Test: atest CtsAppSecurityHostTestCases:PkgInstallSignatureVerificationTest Test: atest CtsLibnativehelperTestCases Test: atest PackageManagerTests Test: Manual. Boot the device and see cblocks for stub APKs are released Test: Manual. Disable and re-enable stub APK and see cblocks are released Bug: 188928405 Change-Id: I4b29dab263d02a79d7b1593d35ae28101d33679a
2021-05-17Add TunnelModeStateListener in java+jniGalia Peycheva
When tunnel mode is being used (meaning when there is a sideband stream in one of the layers in SurfaceFlinger), the blur can't be computed over that layer. In that case, SF blurs are disabled, which results in a translucent buffer to be drawn. This CL introduces a listener, which is registered with the SurfaceFlinger and receives a callback whenever the tunnel mode enabled state changes. This way, the BlurController can properly send updates to apps that blurs are disabled/enabled. Bug: 171457637 Test: atest TunnelModeStateListenerTest Test: atest TunnelModeStateReporterTest Change-Id: I6ffba1c342352ad65a32c0efc4ecbc07811245d9
2021-05-13Merge SP1A.210510.001Brian Orr
Change-Id: Ia86f3e18206beabe334e3081cedbaf5b3274f78e
2021-05-07Merge "Enable PerfettoJavaHeapStackProf in the zygote." am: 45087d31f8 am: ↵Wessam Hassanein
12dfac6247 am: a431288fbe Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1692305 Change-Id: I2a54da650a1e8d35530cdf77a41a338ab90582e6
2021-05-06Merge "Enable PerfettoJavaHeapStackProf in the zygote."Wessam Hassanein
2021-05-06Merge "Allow ART profile saver period to be parsed from sys props" am: ↵Treehugger Robot
44da0f67b4 am: 41cb7914b8 am: 55e2972686 Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1698088 Change-Id: I00b86c46ef1b48bff084858814ad9457bc55e977
2021-05-05Allow ART profile saver period to be parsed from sys propsCalin Juravle
Test: manual Bug: 184714236 Bug: 185979271 Change-Id: I4ab069e8c4de9f73b7951845e7cb80bc00642e22
2021-05-05Enable PerfettoJavaHeapStackProf in the zygote.Wessam Hassanein
This allows us to collect Java Heap Profiler data directly without needing to set the flag similar to PerfettoHprof. Test: Passing Tests Local Testing Bug: 160214819 Change-Id: Id4888107c7b12f076de8237fd42bab49319566b5
2021-04-23Merge SP1A.210412.001Scott Lobdell
Change-Id: I0e1c2f5679d5f721cd605b7da785959763311698
2021-04-10Merge "Retire `ro.kernel.android.checkjni` from AndroidRuntime.cpp" am: ↵Treehugger Robot
25807e2f86 am: 5609c37a4f am: fcd90b1a1b Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1670529 Change-Id: I350c527e1fe0a6badddddcfd150f97c7207c570c
2021-04-09Retire `ro.kernel.android.checkjni` from AndroidRuntime.cppRoman Kiryanov
this property is deprecated and emulator now populates `dalvik.vm.checkjni` to use instead. Bug: 182291166 Test: getprop dalvik.vm.checkjni Signed-off-by: Roman Kiryanov <rkir@google.com> Change-Id: Ie94b0d6c2e48b731d9cfe0ead380e0f52f662f37
2021-04-09Merge SP1A.210407.002Scott Lobdell
Change-Id: Iaad2b7cc2aeba166f003d0d460bc8ce29d1caab3
2021-04-02Merge SP1A.210329.001Scott Lobdell
Change-Id: I1e21c5890b5b2e2f2855f09960bc8eec8aa922bf
2021-04-02Merge "HDR info listener" into sc-devJohn Reck
2021-03-31HDR info listenerJohn Reck
Bug: 182312559 Test: SilkFX listener is called Change-Id: I2c93f6ab51263a905c17a7afabb845317d33419d
2021-03-30Per process DMA-BUF statsIoannis Ilkos
In order to detect memory regressions caused by improper handling of dma-buf buffers we need to measure how this memory is used. This change: - Introduces DmabufInfoReader which wraps libmeminfo and provides per-process DMA-BUF stats. - Specifically, measures buffers mapped to the process address space (from /proc/pid/maps). This is supported on all devices. - For devices running 5.4+ (where the system processes can query fdinfo) also measures the total retained memory (either by mmap or an open fd). - Introduces a statsd atom that collects this for all running managed processes. Non-managed processes will also hold dmabufs, but the likelihood of them causing issues (post-launch) is smaller so I am trading them off for cheaper collection (if indeed we encounter such problems, they will definitely be caught by the total dmabuf counters). Test: manual Bug: 183708249 Change-Id: I5e0ef58ac1a66ebe2d280c5733de46ba84f75a46
2021-03-25Use connectivity APIs from framework-connectivityRemi NGUYEN VAN
Instead of compiling framework-connectivity source into frameworks-minus-apex, have the APIs loaded separately from framework-connectivity. Bug: 171540887 Test: device boots, has connectivity Change-Id: I8f07ff2082c3de80821e121807e66a43a870de7b
2021-03-24Merge SP1A.210311.001Scott Lobdell
Change-Id: Id1a205bf3f0609c0b13e4bea377056c3b06299fa
2021-03-12Merge "Add madvising of .odex, .vdex and .art files" am: fcf61e805a am: ↵Jagadeesh Pakaravoor
876927e795 am: 252a7a0f4f Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1611231 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I9d95090140d41f11fc996622c3787a2950194205
2021-03-11Merge "Add attributionTag to audio-recordings" into sc-devNate Myren
2021-03-11Add attributionTag to audio-recordingsPhilip P. Moltmann
... by switching from packageName/uid/pid to the Identity class. This allows up to track which parts of the app trigger audio-recordings. Test: atest CtsAppOpsTestCases CtsNativeMediaAAudioTestCases Fixes: 160150145 Change-Id: I0913a336a862e4a1cb38b9d967cfbdc490513ab0
2021-03-10Add madvising of .odex, .vdex and .art filesJagadeesh Pakaravoor
1. When mmaping {.art, .odex, .vdex} files madvise them to MADV_WILLNEED 2. Add system properties to limit the madvise size/range Test: presubmit Bug: 178853586 Change-Id: I7bd882e3e1021d48f00f297c4dd1d5a8098c087d
2021-03-10Merge "Move VerityUtils from services.jar to core.jar" into sc-devVictor Hsieh
2021-03-01Merge SP1A.210222.001Scott Lobdell
Change-Id: If3509f3a660e820f4c8c0b29e007faa868e1f089
2021-02-26Merge "Add zygote native fork loop" am: 43a9a8089f am: dd81ed70c7 am: 925ecc3f80Hans Boehm
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1540230 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I3afb617aab80b073b56fa0c61398ae6d42800a75
2021-02-24Merge "JNI wrapper for FpsListener." into sc-devAlec Mouri
2021-02-23Add zygote native fork loopHans Boehm
Do not return to Java mode between consecutive fork operations. This greatly reduces the Zygote overhead, since we no longer need to stop and restart Java daemons. By not switching back to Java mode, and being careful about what memory we touch between forks, we also keep the Zygote heaps much more stable, facilitating page sharing between the zygote and all its children. Under normal operation we should no longer allocate any memory in the zygote between forks. That applies to both the Java and C++ heap. This makes the zygote behave much more like the mental model many of us had assumed: It has nearly constant memory contents, which are copy-on-right cloned at each fork. This does not apply to the initial system server and webzygote forks, that are currently still handled differently. This includes 1. Add ZygoteCommandBuffer, and switch the argument parsing code to use it. This slightly reduces allocation and enables (3). 2. Support process specialization in the child, even when the arguments are already know, Leverages existing Usap code. 3. Add support for forking multiple child processes directly to the ZygoteCommandBuffer data structure. This directly uses the buffer internals, and avoids returning to Java so long as it can handle the zygote commands it sees. FUNCTIONALITY CHANGE: We now limit the total size of the zygote command, rather than the number of arguments. Initial performance observations: [ These are not perfect, since I'm comparing to numbers before I started. There may have been other moving parts, but they should be minor. ] System-server-observed launch latency: [Not the best metric, but easy to measure. In particular, this does not represent a significant reduction in application launch time.] Based on measuring the last 10 launches in a lightly used cf AOSP instance, the system server latency from requesting an app launch to response with the pid (which does not require the child to execute anything) went from an average of about 10.7(25) msecs to 6.8(9) and 7.9(16) in two tries with the CL. (The parenthetical numbers are maxima from among the 10; the variance appears to have decreased appreciably.) Dirty pages: The number of private dirty pages in the zygote itself appears to have decreased from about 4000 to about 2200. The number of dalvik-main private dirty pages went from about 1500 to nearly zero. Initially ART benchmarking service claim -1.88% in PSS. But this is not consistently repeatable. Drive-by fix: Call setAllowNetworkingForProcess on usap / native loop path. Bug: 159631815 Bug: 174211442 Test: Boots AOSP Change-Id: I90d2e381bada1b6c9857666d5e87372b6a4c1a70
2021-02-23Merge "Camera2: Add jpeg encoding support for all camera extensions" into sc-devTreeHugger Robot
2021-02-22Move VerityUtils from services.jar to core.jarVictor Hsieh
There is a demand to use VerityUtils outside of services from core. This allows the class to be used from both places. Bug: 180414192 Test: m Change-Id: I8da2e3df218547208799a238eab2d54545194d00
2021-02-17Camera2: Add jpeg encoding support for all camera extensionsEmilian Peev
Enable consistent Jpeg output support for all present camera extensions. Extensions with exclusive YUV_420 support will include an extra SW encoding pass before the processed results can be queued back to the client surface. Bug: 179818844 Test: Camera CTS Change-Id: I461e54024f150925ca1a5a57ff7b327712ce0e96
2021-02-12JNI wrapper for FpsListener.Alec Mouri
Hidden api for exposing the fps counter to WM Shell, so that the fps for a task can be reported. Bug: 174956756 Test: E2E integration with SurfaceFlinger for angry birds Change-Id: I9818aded2755ad07fd3abf3f616e8e6940bad268
2021-02-11Check CPU time_in_state from one placeRafal Slawik
Move the check whether CPU eBPF tracking is supported to one place to avoid repeating it in every reader. Bug: 179485697 Test: existing tests pass Change-Id: Id6d23614c3d1dde86b66de14bc09f5976f183625
2021-01-26Merge SP1A.210122.003Scott Lobdell
Bug: 178561525 Change-Id: Ifb7c4a1c94e1f4cab710826d57282b981a46e990
2021-01-22Merge SP1A.210105.001Scott Lobdell
Change-Id: Iebfaf27bb339a99d9303a53e6c2c397b0001c814