setuid() and family can fail. Check return values to make
sure this doesn't happen unexpectedly.
Also call setgid() to drop root group permissions.
Change-Id: Id06fbe6239e2ed2fe23368695e333514e0581e6d
A logic error would allow not deleting data when uninstalling a system
app upgrade that's of a newer release than the on on the system
partition. If the system app had a database upgrade and this happened,
you might be in trouble.
Luckily it appears no one ever does this in code. You'd have to manually
get there doing:
adb uninstall -k updated.system.package
Change-Id: I3110fedf2d147975a0635c71898d985dd642a2c1
A few lines down "ps" is run through a null check, so apparently there
could be some screwy system conditions where this is encountered. And,
in fact, this was encountered through an updated system pacakge that
managed to delete the package from /system/app during testing. It left
the PackageSetting in mDisabledSysPackages which would cause a deference
of a null variable.
Change-Id: Ic7faca569abd16a87a8a69c20df08c11a274a001
The get/set for the pluginPath is leftover from the Gear's plugin
and is no longer useful now that plugins are loaded from their
own APK using the package manager. These methods were modified to
be no-ops in froyo, but the documentation was never completed.
Change-Id: I20f6593445d877a3dae9b9f51d5198a3509255d6
http://b/2811032
Finally.
This also fixes that little 1px gap that would occasionally
show through to the carbon fiber background (changed to
steel cord for now) between the last notification and the
windowshade's handlebar. It still gaps a little while you're
dragging, due to the asynchronous motion of the various
windows involved, but when the panel is still you shouldn't
see any background. (Man, that drove me crazy.)
Bug: 2949229
Change-Id: If085f4ab7dfb7c3868c30469661907d5d63f070b
Summary:
- libcore: new Java based SamplingProfiler
- dalvik: remove old SamplingProfiler native bits
- frameworks/base: New placeholder SamplingProfilerIntegration
- vendor/google: remove old profiler snapshot parsing code
Details:
libcore
A new 100% Java SamplingProfiler. While it has more overhead that
the old native one, the new one can actually collect more than the
current PC and frame pointer, so you can get useful context of
where your app is spending time. It currently provides ASCII hprof
format output for use with tools like PerfAnal
dalvik/src/main/java/dalvik/system/SamplingProfiler.java
Unit test for the new SamplingProfiler
dalvik/src/test/java/dalvik/system/SamplingProfilerTest.java
Add core-tests-dalvik
JavaLibrary.mk
dalvik
Removing native code that supported the old SamplingProfiler
vm/Dvm.mk
vm/native/InternalNative.c
vm/native/dalvik_system_SamplingProfiler.c
frameworks/base
Placeholder SamplingProfilerIntegration. Later plans include
generating EventStackTrace protobufs.
New SamplingProfiler does not have a global instance, so
SamplingProfilerIntegration provides one in INSTANCE. Old binary
snapshot format is temporily replaced with ASCII hprof data.
core/java/com/android/internal/os/SamplingProfilerIntegration.java
Simplified interface for zygote profile snapshotting
core/java/com/android/internal/os/ZygoteInit.java
Current SamplingProfilerIntegration does not track event loop
explicitly, but hprof information does include thread information.
core/java/android/app/ActivityThread.java
vendor/google
Removing code for parsing old SamplingProfiler snapshot format
tools/samplingprofiler/Android.mk
tools/samplingprofiler/NOTICE
tools/samplingprofiler/profiler.iml
tools/samplingprofiler/profiler.ipr
tools/samplingprofiler/pull-snapshots.sh
tools/samplingprofiler/sorttable.js
tools/samplingprofiler/src/com/android/profiler/PrintHtml.java
Support complex characters in plugins.
Complex characters like chinese are sent via the onKeyMultiple()
callback. The WebView passes these characters to Webkit so that
non-text inputs (e.g. plugins) can process them.
Change-Id: I49575bb8a583f9f3580f5734ad87cc7c00b2bda9
http://b/2900114
- Collect data at better times.
- Collect per-thread CPU usage as soon as possible after the ANR, and print
in log.
- Based on new per-thread CPU usage, limit the number of processes we
collect stacks from to not include inactive not interesting procs.
- Improve the way ProcessStats compute and reports its data.
Change-Id: I12b17fb47d593d175be69bb792c1f57179bf4fdf
singleLine flag is set to false by default. However, when no singleLine or input
type is provided, the inputType of the TextView is not set to
EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE for edit texts.
Change-Id: Id747d3319afcddb3ab6ae0463947e8b3e470ef73
- Fixed click when re-enabling effect during the turn off phase:
make sure the effect states where effect is processed are the same
where volume control is delegated to effect.
- Fixed click when effect is deleted while still active: do not apply
volume ramp if an effect having volume control was just removed from the
effect chain.
Also fixed a crash when PCM dump is enabled in effect bundle wrapper.
Change-Id: Ib562f5cf75c69af75df0e862536262e2514493e4
Add "bluetooth" to the list of toggleable radios. Because this string
is in the Settings DB, I had to bump the version number. Why is this in
the settings DB anyway, rather than a carrier config option?
I also discovered that the SystemUI package copied the entire contents of
res/values/defaults.xml from SettingsProvider, when I originally tried
to update the unreferenced SystemUI version of the setting. To prevent
future confusion, I removed all of the values from the SystemUI version
of res/values/defaults.xml.
Change-Id: Ib8a75c85b9db5c1963b65538ee2765d5087e67d2
This was causing stack stitching problems where a one-way call with
violations followed by a two-way call without violations was getting
the previous one-way call's violation stack stitched on to the second
caller's stack.
The solution is a little more indirect than I would've liked
(preserving the binder's onTransact flags until enforceInterface) but
was seemingly necessary to work without changing the AIDL compiler.
It should also be sufficiently cheap, since no new calls to
thread-local IPCThreadState lookups were required. The additional
work is just same-thread getter/setters on the existing
IPCThreadState.
Change-Id: I4b6db1d445c56e868e6d0d7be3ba6849f4ef23ae