History log of /frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
76d4fc84518b3560fc0e8d912a09c1eefefe85ac 08-Feb-2017 Andreas Gampe <agampe@google.com> Framework: Clean up RuntimeInit/ZygoteInit/WrapperInit

Move methods where they belong.

(cherry picked from commit 4e66db8d0c60e89f3a87bb05f38f82bda032ff0f)

Test: m
Test: Device boots
Change-Id: I805c6493078e960ff5b70d84dd93d2da6c7aa797
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
dc589ac82b5fe2063f4cfd94c8ae26d43d5420a0 11-Nov-2016 Sudheer Shanka <sudheersai@google.com> Update usage of ActivityManagerNative.

- Remove references to ActivityManagerProxy.
- Add isSystemReady to ActivityManager.

Bug: 30977067
Test: cts/hostsidetests/services/activityandwindowmanager/util/run-test android.server.cts
adb shell am instrument -e class com.android.server.am.ActivityManagerTest,com.android.server.am.TaskStackChangedListenerTest \
-w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner
Change-Id: I07390b6124fb1515821f5c0b37baf6ae74adc8fa
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
fc46e9b643881b7b2ab76854f3a0ac077e9def8d 22-Oct-2016 Sudheer Shanka <sudheersai@google.com> Move IActivityManager to aidl.

Bug: 30977067
Test: Existing tests are passing, dump commands still working.
Change-Id: I9cf81c4d381ebce14a6c701e409cbb269f2ff1fb
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
4ebf60b7cfa10cc6d7268881f721bf4b761312c8 09-Aug-2016 Tobias Thierer <tobiast@google.com> Merge "Ensure apps cannot prevent uncaught exceptions being logged." am: f61a449ee9 am: 8431c55fb8 am: 62360649c8
am: 1c47ebcf84

Change-Id: I7dce05184017dc221f021423acb4215de0a157f4
8431c55fb85ca8f5f02e8d9ed91148dcfb50cb9e 09-Aug-2016 Tobias Thierer <tobiast@google.com> Merge "Ensure apps cannot prevent uncaught exceptions being logged."
am: f61a449ee9

Change-Id: I826c175547a73123cd438ebe6991efee39a433d0
addbf9015a65ed7704a4fc22f36380dd153698da 21-Jul-2016 Tobias Thierer <tobiast@google.com> Ensure apps cannot prevent uncaught exceptions being logged.

Let RuntimeInit use an UncaughtExceptionPreHandler to log an exception
rather than relying on UncaughtHandler, which apps can replace. This
makes it easier to diagnose application death, especially during app
compatibility testing for a new version of Android.

Test: Verified manually, with the help of a small sample app (not
checked in), that stacktraces for RuntimeExceptions thrown on main
or background threads are logged even when the app set a default
UncaughtExceptionHandler that swallows the exception with no action.

Note that such an inappropriate UncaughtExceptionHandler will still
cause threads to die without the app being killed, which it should be.
In an exception then happens on the main thread, the app will freeze
until the ANR dialog kicks in after a few seconds. I have manually
verified that this behavior is unchanged from before this CL.

No new integration tests are included because the default system
behavior has not changed.

Bug: 29624607
Change-Id: Ie87377b0bcadc3ba4083a8ab1bedb8f3dd95a4bd
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
8ad86a3d1a1378362ffa4217dca609e3556cf72a 02-Aug-2016 Tobias Thierer <tobiast@google.com> Stop profiling on uncaught exception.

When "handling" an uncaught exception, make an attempt to stop
profiling. In case profiling was active, this will avoid losing
the profiling buffer.

This change is required as a base in order for
https://android-review.googlesource.com/#/c/249721/
to merge cleanly.

(Cherry picked from commit 4c79fea9efea7cfa739cf5b5f525ddadb28e52a6)
Bug: 26291225
Change-Id: I35f352e5f28eafe4702da9eae587c3b65c360b3a
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
ba816e0c9efd8cd2aeef618a819a2ad46b742f87 19-Jan-2016 Simon Baldwin <simonb@google.com> Refactor ZygoteInit to support a WebView-specific zygote.

This is a non-functional change that separates out functionality
that should be shared between the system zygote and the WebView
zygote from that which is system zygote specific.

* Move MethodAndArgsCaller to Zygote.
* Split out server socket functions into ZygoteServer.
* Add a new (stub, for now) WebViewZygoteInit class.

Bug: 22084679
Bug: 21643067
Change-Id: I4c508a42af7ab7b53d10570ad53b846df7782cc4
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
f8880561e67e1da246970b49b14285efd4164ab1 26-Feb-2016 Jeff Sharkey <jsharkey@android.com> When system server goes down, crash apps more.

Similar to first patch, but now using new "rethrowFromSystemServer()"
method which internally translates DeadObjectException into
DeadSystemException. New logic over in Log.printlns() now
suppresses the DeadSystemException stack traces, since they're
misleading and just added pressure to the precious log buffer space.

Add some extra RuntimeInit checks to suppress logging-about-logging
when the system server is dead.

Bug: 27364859
Change-Id: I05316b3e8e42416b30a56a76c09cd3113a018123
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
d888beb9bfca2da6bba303cd7db809ccefa7b996 18-Feb-2016 Andreas Gampe <agampe@google.com> Frameworks/base: Use Log.printlns in RuntimeInit

Make printlns in Log public-@hide so it can be used.

Print uncaught exceptions that will terminate the process in
RuntimeInit using printlns, so that long exception traces are not
being truncated.

Bug: 27245306
Change-Id: Ib24635f0ebdd80bd125e367302cab6a78e6a210a
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
4c79fea9efea7cfa739cf5b5f525ddadb28e52a6 29-Jan-2016 Andreas Gampe <agampe@google.com> Frameworks/base: Stop profiling on uncaught exception

When "handling" an uncaught exception, make an attempt to stop
profiling. In case profiling was active, this will avoid losing
the profiling buffer.

Bug: 26291225
Change-Id: Ie5f5517b46ed89d0456a4aac9d4ff3b713d1d8aa
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
fbb32f6440ed74a4d27eec03569520580d00da42 12-Jun-2015 Narayan Kamath <narayan@google.com> Better systrace slices for application startup.

This change adds three new timeslices :

- PostFork : As soon as possible after the app forks from the
zygote. Can be used in conjunction with the system_server
"Start proc:" event to derive an upper bound on fork() and
zygote overhead.

- RuntimeInit & ActivityThreadMain for ZygoteInit#runtimeInit
and ActivityThread#main.

ActivityThread#handleBindApplication and higher level functions
are already well instrumented in systrace. handleBindApplication
should occur immediately after ActivityThread#main.

Note that we use the Activity manager tag to make it easier to
correlate these new events with surrounding events (Start proc
and handleBindApplication) that are already using the AM tag.

bug: 21632700
Change-Id: Ibc01f1721f962c913f3c02a51763b6feb1eb6a4d
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
da74a628f55fe32a8f8d8542689032f4f6f1c44c 12-Feb-2015 Piotr Jastrzebski <haaawk@google.com> Register DDM handlers at the beginning of main method.

Compiler initializes RuntimeInit during compilation and stores an
initialized version of the class in oat file. Same thing happens to
DdmServer which handles DDM packets in JDWP thread started during JVM
creation. This means that after the creation of JVM all
DDM packets are handled by DdmServer.dispatch and since it's already
initialized during compilation it has all framework related handlers
already registered. If a packet arrives before AndroidRuntime.startReg
is called then framework native methods are not yet registered and the
processing of the packet fails with UnsatisfiedLinkError.

To fix this problem the registration of framework related DDM handlers
is moved to the beginning of ZygoteInit.main and RuntimeInit.main. This
means that the handlers won't be registered until main method is called
and that's guaranteed to be after AndroidRuntime.startReg is called. It
also guarantees that DDM packets will be properly handled as soon as
Java code is executed.

Bug: 18081539.
Change-Id: I9c674f53f3f62d58c46886e0b60698182e08f0c3
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
5232271a41323594ae406be7476b6ca2f08af3d8 27-Aug-2014 Dianne Hackborn <hackbod@google.com> Fix issue #17146552: system anr

Add a safe path for Slog.wtf that doesn't acquire an activity manager
lock or block in any way.

Change-Id: I8fef8251a0cb85081442cae55d85063944248d15
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
29564cd24589867f653cd22cabbaac6493cfc530 07-Aug-2014 Narayan Kamath <narayan@google.com> Remove system_server classes from the boot image.

We set the system_server classpath in the environment
(like we do with BOOTCLASSPATH). After the zygote forks
the system_server, we dexopt the classpath (if needed)
and then launch the system server with the correct
PathClassLoader. This needed several small / medium
refactorings :

- The logic for connecting to installd is now in a separate
class and belongs in the system_server.
- SystemService / SystemServiceManager have now moved to
classes.jar. They are only used from there, and since they
use Class.forName, we want them to be loaded by the
system_server classloader, and not the bootclassloader.
- BootReceiver now moves to frameworks.jar, because it is
used by ActivityThread and friends.

bug: 16555230

Change-Id: Ic84f0b2baf611eeedff6d123cb7191bb0259e600
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
69eb6f57e34fb78050adcedcda8479cf2ad0c418 09-Apr-2014 Mark Salyzyn <salyzyn@google.com> Native Runtime: Add LOG_ID_CRASH

Change-Id: I4e3a82636901c5169cc6b714a4fec815cd757c58
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
35980b2cf51c06c1bdad66b7f8fb629d9c17052f 03-Sep-2013 Eric Rowe <erowe@google.com> Add PID and application to Java crash printout

Bug: 10568405
Change-Id: I508e89bf7ea58e15a8460099036e270139b2e2a9
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
941adc95e121332b49aedb5406b6037a6395aea6 27-Aug-2013 Christopher Tate <ctate@google.com> Make sure to actually log when Log.wtf() hiccups

Bug 10494724

Change-Id: I687d7df73a8f4594d42955f100d928e98bbd9b30
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
4280c4a93ea17f2e9d3f651e49d8c13dc3fb92aa 16-Mar-2012 Jeff Brown <jeffbrown@google.com> If an application calls System.exit() terminate it immediately.

There is no graceful way to kill Android application processes.
They typically have many threads running doing various things
When System.exit() is called, those threads just keep going
while the cleanup actions run until the process finally.

Performing shutdown actions can easily cause more harm than good.
For example, closing the Binder driver's file descriptor may
cause other threads waiting on Binder to wake up and then crash
in nasty ways after receiving EBADF.

So when an Android application exits, skip the cleanup and just
call _exit() to end it all.

Bug: 6168809
Change-Id: I29790c064426a0bf7dae7cdf444eea3eef1d5275
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
16f5f5cc9d4c480fac3dc7f176f3f1edfbd256f4 16-Mar-2012 Jeff Brown <jeffbrown@google.com> Delete useless JNI methods.

Change-Id: Ie7c7638c79fc9c6a43f45604ad9a40ebc58b93c7
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
e1dfcb7ab01fb991079ec1f70f75281a0ca9073e 08-Jul-2011 Elliott Hughes <enh@google.com> Pass the targetSdkVersion through to the zygote-forked dalvik.

This will let dalvik implement backwards-compatibile behaviors based on
an app's targetSdkVersion.

Bug: 4772166
Change-Id: I935c5ea9144e8b4e6e21089547287486e2234b7f
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
8568db534118fc14cc28100306d51626464ff319 29-Jun-2011 Jesse Wilson <jessewilson@google.com> Move socket tagging from libcore.

Change-Id: I7515896936c5bbd212c88e2801b831914219a925
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
ebed7d6e35f7f960e6e6add2b8ab7c7a31a511c3 17-May-2011 Jeff Brown <jeffbrown@google.com> Support wrapping app processes to inject debug instrumentation.
Bug: 4437846

Change-Id: I4552501c693716b14714afb5c5248edaca9547ab
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
43a17654cf4bfe7f1ec22bd8b7b32daccdf27c09 07-Apr-2011 Joe Onorato <joeo@google.com> Remove the deprecated things from Config.java. These haven't been working since before 1.0.

Change-Id: Ic2e8fa68797ea9d486f4117f3d82c98233cdab1e
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
f890fab5a6715548e520a6f010a3bfe7607ce56e 20-Dec-2010 Patrick Dubroy <dubroy@google.com> Ensure bitmaps aren't freed while referenced from a display list

Also removes the reference queue finalizers. They aren't necessary
anymore now that Bitmaps are allocated in the heap.
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
8718a51a5b6daab57fd55f5a6c083aa51c9f0f94 15-Oct-2010 Jesse Wilson <jessewilson@google.com> Close System.out and System.err streams when they are made unreachable.

Change-Id: I295a9b2e5eb2d4e94b042f3a51e2f39b58a47d49
http://b/3072844
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
02890fd0f98b3b8d98baf0bda1ea906afd723d8b 07-Aug-2010 Romain Guy <romainguy@google.com> Replace Bitmap's finalizers with PhantomReferences.

This change also removes the use of SoftReferences for View's
drawing cache.

A bitmap now creates a PhantomReference enqueued in a reference
queue provided by the new Finalizers class. This queue is polled
from a thread started after forking zygote. That thread is in charge
of clearing the references after GC runs and of calling reclaim()
on them. The reclaim() method is now how finalizers are run.

Note that a PhantomReference cannot be kept in the instance it
refers to, which is why they are kept in a separate List.

Change-Id: If3c1a5e9dc23fa49e34857860d730f5cf5ad5926
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
438d0595121a7a2cdf19741e76e3c0e21a5c173d 10-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> Introduce "StrictMode"

This is a new public API for developers to opt-in to strict rules
about what they're allowed to do on certain threads. (this is the
public face of the @hide dalvik.system.BlockGuard, added recently...)

In practice this will be used for developers to opt-in to declaring
that they don't want to be allowed to do various operations (such as
disk I/O or network operations) on their main UI threads. (these
operations are often accidental, or even when they are fast come with
a good chance of being slow or very slow in some cases....)

Implementation wise, this is just a thread-local integer that has a
bitmask of the things that aren't allowed, and more bits for saying
what the violation penalty is. The penalties, of which multiple can
be chosen, include:

* logging
* dropbox uploading for analysis/reporting
* annoying dialog
* full-on crashing

These are all only very roughly implemented at this point, but all
parts now minimally work end-to-end now, so this is a good checkpoint
commit before this gets too large.

Future CLs will polish all the above 4 penalties, including
checksumming of stacktraces and minimizing penalties for duplicate
violations.

Change-Id: Icbe61a2e950119519e7364030b10c3c28d243abe
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
c9421ba1f46d9f9aeee833e1fde2cc263b058411 12-Mar-2010 Dianne Hackborn <hackbod@google.com> Fix issue #2492387: system server crash in WallpaperManagerService

Also move some of the important framework error logs over to Slog.

Change-Id: If6697c3e4f18498612ebd7b0e4e4f042fd713372
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
1c9131c91f27c8258dfad0a92cee105275f5422a 13-Feb-2010 Dan Egnor <egnor@google.com> Remove all traces of the old checkin service (and its associated parental
control interfaces) from the framework.
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
60d8762413e8daba5f73559786312a9ec5e3b827 17-Dec-2009 Dan Egnor <egnor@google.com> DropBox logging of app & system server crashes.

The crashes are also reported to the event log (and of course the
main logcat, like they always have been). Ordinary Log.e(t,m,e) isn't dropboxed
but there's a new Log.wtf() which always is. (Still @pending in this change.)

Add a hook to IPowerManager to crash the system server on demand
(only for apps with REBOOT permission, since it's basically a restart).
This is not exposed in PowerManager, must be invoked directly -- mostly
this is there so "Bad Behavior" in dev tools can do it.
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
b7f0367cec1c744aa66ef397b0244e25d507491c 10-Dec-2009 Dan Egnor <egnor@google.com> Eliminate CrashData and friends.

(CrashData was a custom-marshalled crash-info class used for a server crash
reporting system I am deprecating). Use ApplicationErrorReport.CrashInfo
instead to report crash details (mostly the stack trace) from RuntimeInfo to
ActivityManagerService, since we're likely to need the crash information in
that form anyway.

Remove the (long-disabled) flags and support for the "Debug" button
in the crash dialog.

Further gut the ICheckinService interface by removing the crash-reporting
APIs (and everything that calls them), plus the synchronous checkin()
method (which has been stubbed out for a while now).

A new dropbox-based crash reporting system is in the works, but not part
of this change.
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
d0f80d445644bfc08b62339f01766b924e42dc4d 19-Sep-2009 Jesse Wilson <jessewilson@google.com> Setting the default HTTP user agent at runtime init.

I can't do this in HttpURLConnection directly, since that would
cause a forbidden dependency from Dalvik on Android.
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
e540833fdff4d58e37c9ba859388e24e2945ed45 05-Sep-2009 Bob Lee <crazybob@crazybob.org> Integrated the profiler into the framework. We run it all the time if the persist.sampling_profiler
system property is set. Saves snapshots to the SD card.
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java