Commit Graph

1528 Commits

Author SHA1 Message Date
Narayan Kamath
ca2197b045 Update javadoc for android.os.Bundle.
Call out the fact that defaultValue is returned if a null
mapping exists for a given key.

bug: https://code.google.com/p/android/issues/detail?id=68453
Change-Id: Ifa6e94c1dee47809f70cadcb668cb98cb8dbef14
2014-06-19 10:46:00 +01:00
Robin Lee
6959133d84 Add Environment call: get config dir for some user
This returns a read-only directory accessible to any app running as the
same user, containing various configuration files written by the system.

Change-Id: I635de184fc285b8fef166b782bbc1ac79f8f0687
2014-06-05 14:34:23 +00:00
Robin Lee
e46e600412 Merge "Assign AID_EVERYONE gid to newly-created processes" 2014-06-04 20:51:55 +00:00
Elliott Hughes
df0e9ed553 am 862be912: Merge "Updated Trace.h to recognize ATRACE_TAG_BIONIC."
* commit '862be91276ec9532b3ed00d43fc7a750f1e6adb0':
  Updated Trace.h to recognize ATRACE_TAG_BIONIC.
2014-05-28 21:41:30 +00:00
Brigid Smith
461ac24b8c Updated Trace.h to recognize ATRACE_TAG_BIONIC.
Bug: 15116468
Change-Id: I6aef941c6b6bd59347855f7265e701a3aaa08edc
2014-05-28 14:21:06 -07:00
Narayan Kamath
be3dc5754f am 402120a2: Merge "Wait for secondary zygote before bringing up the system_server."
* commit '402120a2236b294dff9a51461cb22400a6ef67f6':
  Wait for secondary zygote before bringing up the system_server.
2014-05-15 13:38:17 +00:00
Narayan Kamath
402120a223 Merge "Wait for secondary zygote before bringing up the system_server." 2014-05-15 13:34:09 +00:00
Torne (Richard Coles)
dcc9cf03a8 am 41ec8c96: Merge "Avoid supported ABI list containing "unknown"."
* commit '41ec8c9672fccce90a7156bcd856f59a36e93ad3':
  Avoid supported ABI list containing "unknown".
2014-05-14 15:31:28 +00:00
Torne (Richard Coles)
da8c037c8b Avoid supported ABI list containing "unknown".
If one of the ABI list system properties is undefined/empty (as
ro.product.cpu.abilist64 is on a 32-bit only device), getString returns
"unknown", which ends up creating a 1-element array with "unknown" as a
member. Fix this to instead just get the empty string and split that
into a 0-element array.

Change-Id: I0d0a54eb06bb04427bcf0487e2a16d4180b81116
2014-05-14 16:17:26 +01:00
Narayan Kamath
64cd907af9 Wait for secondary zygote before bringing up the system_server.
The zygote that's responsible for starting up the system server
now checks if there's another zygote on the system, and waits
for it to start up. Also, a few minor clean ups :

- Address a long standing TODO about zygote retries.
- Have functions throw IOException where appropriate and
  wrap them in ZygoteStartFailedEx with a filled in cause.

bug: 14869939

Change-Id: I9e514659b79b3d2c98a4c5f93c0c376843f6c881
2014-05-13 15:24:26 +01:00
Narayan Kamath
69da8a124e am 2a9a0471: Merge "Package manager changes for dual zygote stack."
* commit '2a9a047140b8da8f9cd7147c8bed60eeb61d1b6a':
  Package manager changes for dual zygote stack.
2014-05-01 14:00:43 +00:00
Narayan Kamath
0349e8c478 Package manager changes for dual zygote stack.
- Pass down the app's instruction set to dexopt so that
  it can compile the dex file for the right architecture.

- Also pass down the app's instruction set to rmdex, movedex
  and getSize so that they can construct the cache file
  location properly.

- Temporarily compile "system" jars such as am,wm etc. for
  both architectures. A follow up change will ensure that
  they're compiled only for one architecture (the same
  arch. as the system server).

- Java "shared" libraries are now compiled for the right
  architecture when an app requires them.

- Improve the app native library ABI detection to account
  for system apps installed in /system/lib{64}/<packagename>
  and also handle sdcard and forward locked apps correctly.

(cherry-picked from commit b4d35dc8e9702f9d0d82d35a105f0eea35672b52)
2014-05-01 13:54:48 +00:00
Narayan Kamath
99253c2da9 am fde59428: Merge "Handle /oem and /vendor as well"
* commit 'fde594288bff0b8f95567e6b27f273f50f0c5f87':
  Handle /oem and /vendor as well
2014-05-01 13:53:08 +00:00
Narayan Kamath
9f34234f1c am b916d8ad: Merge "Implement FileUtils#contains."
* commit 'b916d8adffd7ea3588bc178e1ee03f68f0a409e5':
  Implement FileUtils#contains.
2014-05-01 13:52:55 +00:00
Christopher Tate
c84471c2e0 Handle /oem and /vendor as well
Bug 13170859

(cherry-picked from commit 740888f62e)

Change-Id: I7b5e206697fcbec146cac6cd83fca5c583a8cbd7
2014-05-01 13:51:33 +00:00
Narayan Kamath
d6d1dbac3f Implement FileUtils#contains.
Partial cherry-pick of changes 4ca728c0 and 21de56a9, which
can't be cherry-picked due to their large surface area.

Change-Id: Ife46e150d360cd5241dea93863141749233c1805
2014-05-01 14:01:44 +01:00
Bill Yi
293513a59d Merge commit '0b62467b142b61ee1e449ba958ba37dfd961ef56' into HEAD 2014-04-29 16:07:29 -07:00
Robin Lee
e66b6890ee Assign AID_EVERYONE gid to newly-created processes
Change-Id: I0ec45e07d77a4e6a47b6ba0d761c8375f433f528
2014-04-29 12:53:39 +01:00
Elliott Hughes
34385d352d Track libcore.os' move to android.system.
(This is partial, but should cover everything in AOSP master except
for the zygote.)

Change-Id: I1042c99245765746a744c44e714095cb2c6cb75d
2014-04-28 11:11:32 -07:00
Neil Fuller
43582df3db Changes to support asynchronous close interruption
This change contains fixes to base from libcore change
I37de3e7d1a005a73821221e6156d10b95c595d7a

Bug: 13927110

Change-Id: I2d96e50307611c269dcf47886cd4d976854da8fc
2014-04-23 16:40:35 +00:00
Narayan Kamath
2d84a406bf Workaround 64 bit devices that don't have zygotes yet.
This can be fixed by tweaking their BoardConfig as well,
but that leads to all sorts of other problems.

For now, fall back to the primary zygote if the secondary
is unavailable. This will fail if shared libraries for the
primary zygote ABI are unavailable, but that won't be the
case just yet.

bug: 13970103
Change-Id: Ifa107e43ca95023d57a0d9c641e4fddaccd9a888
2014-04-11 19:24:53 +01:00
Ramin Zaghi
ff0c470833 System services detect and register app CPU ABIs
This patch uses the NativeLibraryHelper class to
match native libraries in an .apk package with
those listed in 'ro.cpu.abilist' property.
The result is stored in packages.xml and the
ApplicationInfo class.

This information will be used by the ActivityManager
to decide which zygote to use to launch the given
app.

Change-Id: I3ec3d050996d8f4621f286ca331b9ad47ea26fa0
2014-04-09 17:20:13 +01:00
Ramin Zaghi
1378aba7ae Re-implement native library search and copies.
We now use a two step approach :

- First we look through the list of shared libraries in an
  APK, and choose an ABI based on the (priority)  list of ABIs
  a given device supports.
- Then we look through the list of shared libraries and copy
  all shared libraries that match the ABI we've selected.

This fixes a long-standing bug where we would sometimes copy
a mixture of different ABIs to the device, and also allows us
to clearly pick an ABI to run an app with.

The code in NativeLibraryHelper has been refactored so that all
file name validation & matching logic is done in a single place
(NativeLibrariesIterator). This allows us to avoid a lot of
redundant logic and straightens out a few corner cases (for eg.
where the abi determination & copying logic do not agree on
what files to skip).

bug: https://code.google.com/p/android/issues/detail?id=65053
bug: 13647418

Change-Id: I34d08353f24115b0f6b800a7eda3ac427fa25fef
Co-Authored-By: Zhenghua Wang <zhenghua.wang0923@gmail.com>
Co-Authored-By: Ramin Zaghi <ramin.zaghi@arm.com>
Co-Authored-By: Narayan Kamath <narayan@google.com>
2014-04-09 17:16:40 +01:00
Narayan Kamath
4444dcd0ad Allow connections to multiple zygotes.
Adds a new String argument "abi" to Process.start.
This method will now query the zygotes to
determine what ABIs the primary and the secondary
zygote support (the secondary is optional) and dispatch
a fork request over the right zygote connection.

Both zygotes are assumed to be active at all points.

Change-Id: I460319b4481ff1c1666e8172223691820658a35c
2014-04-09 15:07:10 +01:00
Narayan Kamath
f626ca2c96 Don't allow MemoryFiles of negative length.
Prevents us from converting a (signed) jint into an
(unsigned) size_t and having horrible things happen.

Change-Id: I0f04e2eb9852ae7fc49b435fd0974f56e86751a4
2014-04-08 16:14:10 +01:00
Narayan Kamath
973b4663b0 Move zygote startup logic to the frameworks.
The Zygote class is now in com.android.internal.os. It is
responsible for the vast majority of work before and after
the call to fork(). It calls back into the Runtime via
the new dalvik.system.ZygoteHooks class to allow the Runtime
to perform pre fork cleanup and post fork initialization.

The native code in Zygote.cpp is a direct and straightforward
port of the existing code in art. Most differences are
superficial, for example :
- We use C style logging (ALOGE) instead of stream based
  logging.
- We call env->FatalError() instead of using LOG(FATAL)

Change-Id: Ia101fb2af12d23894fe57e4134d2bc6d142e5059
2014-04-02 10:18:43 +01:00
Chad Brubaker
aa5a99b3b8 am 1fce89d9: am de4e7b49: Merge "Include the interface for clearDnsInterfaceForUidRange" into klp-dev
* commit '1fce89d946760a1bcf3a733f55494f963eab00c2':
  Include the interface for clearDnsInterfaceForUidRange
2014-03-21 23:09:21 +00:00
Chad Brubaker
1fce89d946 am de4e7b49: Merge "Include the interface for clearDnsInterfaceForUidRange" into klp-dev
* commit 'de4e7b4947998638e0345ab9a181bf35a8827bef':
  Include the interface for clearDnsInterfaceForUidRange
2014-03-21 20:56:37 +00:00
Chad Brubaker
1b66923148 Include the interface for clearDnsInterfaceForUidRange
With netd allowing overlapping rules for uid range rules the interface
name is needed to make sure only the correct rule is removed.

Bug: 12134439
Change-Id: I94f77f154f49ca8d5f6cf49683a4473cc92c3eb7
2014-03-15 15:31:47 -07:00
Greg Hackmann
5468a5c117 am 9e413bf4: am bbfc08b3: Merge changes I6d4fdada,Ia34899a4
* commit '9e413bf4e562d98b6efeb157369f152edd5f0261':
  open("/dev/rtc0") failure in AlarmManagerService.setTime() should be non-fatal
  Move time setting code from SystemClock to AlarmManagerService
2014-03-10 18:04:47 +00:00
John Spurlock
5becf411fb am 0a3cb2ce: am b2bd63f0: Merge "Fix doc typos in Vibrator.java" into klp-docs
* commit '0a3cb2ce1b2472b7e4ca6739eaeaa50975abf6ab':
  Fix doc typos in Vibrator.java
2014-03-10 16:26:57 +00:00
John Spurlock
0a3cb2ce1b am b2bd63f0: Merge "Fix doc typos in Vibrator.java" into klp-docs
* commit 'b2bd63f00631b68df3595a4369ec4802e6443bc7':
  Fix doc typos in Vibrator.java
2014-03-10 16:24:31 +00:00
John Spurlock
0f49c28e7a Fix doc typos in Vibrator.java
Change-Id: Ie95cd7fa16042897e6acf94badec98bc19bde57a
2014-03-10 11:29:35 -04:00
Elliott Hughes
6a4faf1c72 am b2f07b27: am 4a809272: Merge "Fix documentation for Parcel.readException()."
* commit 'b2f07b27725bed9716114c46df2cf636eb366f6f':
  Fix documentation for Parcel.readException().
2014-03-08 01:51:55 +00:00
Paul Duffin
6b786e0012 am 75d67c6a: am d562a9b5: Merge "Improve Parcel\'s handling of non-primitive arrays"
* commit '75d67c6aa051392e711fde3b901a4f2c62f983db':
  Improve Parcel's handling of non-primitive arrays
2014-03-07 02:27:47 +00:00
Narayan Kamath
364d8180d5 am 149510e0: am b9f960e0: Merge "Fixed cancel() not working correctly"
* commit '149510e010b46a445355a8d7fcdb8401125b92c3':
  Fixed cancel() not working correctly
2014-03-07 00:37:53 +00:00
Greg Hackmann
bbfc08b3ab Merge changes I6d4fdada,Ia34899a4
* changes:
  open("/dev/rtc0") failure in AlarmManagerService.setTime() should be non-fatal
  Move time setting code from SystemClock to AlarmManagerService
2014-02-21 21:01:00 +00:00
Greg Hackmann
38bf514668 Move time setting code from SystemClock to AlarmManagerService
On devices using /dev/rtc instead of /dev/alarm, updating the
time-of-day clock and RTC are separate syscalls.  Hence the clock and
RTC could be left in inconsistent states if two threads called
SystemClock.setCurrentTimeMillis() simultaneously.

By moving this code into AlarmManagerService, we can put a global lock
around AlarmManagerService.setTime() and prevent the race condition.

Note that access to SystemClock.setCurrentTimeMillis() is now gated by
android.permission.SET_TIME, where before it was gated by filesystem
permissions (i.e., could the process write to /dev/alarm or /dev/rtc).

Change-Id: Ia34899a4cde983656305fd2ef466dfe908ed23c8
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2014-02-21 09:53:19 -08:00
Elliott Hughes
4a80927241 Merge "Fix documentation for Parcel.readException()." 2014-02-21 17:21:52 +00:00
Paul Duffin
ac5a0828c1 Improve Parcel's handling of non-primitive arrays
Treat arrays other than actual Object arrays (i.e. those whose component type
is actually Object) and the primitive arrays already handled specially by
Parcel as Serializable's.

Issue: 64583
Change-Id: I3ff797f3262e77e4de27f35709bceee5410d1ed4
2014-02-11 16:49:25 +00:00
jl1990
3cd12a5155 Fixed cancel() not working correctly
The method handleMessage(Message msg) from mHandler variable was
not checking if the timer was cancelled, so
sendMessageDelayed(obtainMessage(MSG), delay) was keeping the
timer alive. The patch simply adds a boolean and checks if the
CountDownTimer was cancelled before calling
sendMessageDelayed(obtainMessage(MSG), delay)

bug: https://code.google.com/p/android/issues/detail?id=58668

Change-Id: Ic6bbb9d33a3616f8503db222513cc14ad2270cb8
Signed-off-by: jl1990 <jlcarrasco1990@gmail.com>
2014-01-30 13:46:44 +00:00
Narayan Kamath
e3e4b40577 am 9846fb69: am 50afaefd: Merge "AArch64: Make Binder and Parcel 64-bit compatible"
* commit '9846fb695a3c41aabde4ca0061d583b35f9621d1':
  AArch64: Make Binder and Parcel 64-bit compatible
2014-01-29 10:48:52 +00:00
Ashok Bhat
8ab665dda4 AArch64: Make Binder and Parcel 64-bit compatible
Changes include
[x] Long is used to store native pointers

[x] Added new method obtain(long obj) to Parcel. Binder
    uses this method instead of obtain(int obj).

[x] obtain(int) has been changed to throw unsupported
    operation exception.

Change-Id: I408e0f2a24deb28c9277d86670653a51eb314266
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Craig Barber <craig.barber@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
2014-01-23 16:25:19 +00:00
Narayan Kamath
42defa0233 am faa62aac: am 84ee7930: Merge "AArch64: Use long for pointers in android/os/MessageQueue"
* commit 'faa62aaca5f4a149f20487d42279fefc7d356428':
  AArch64: Use long for pointers in android/os/MessageQueue
2014-01-16 07:35:20 -08:00
Narayan Kamath
31f10bb21b am 80b3dd0d: am 27a647bf: Merge "AArch64: Use long for pointers in android/os/MemoryFile"
* commit '80b3dd0d8e333905e9f2a3a844bc524d41df7da2':
  AArch64: Use long for pointers in android/os/MemoryFile
2014-01-16 07:34:53 -08:00
Narayan Kamath
84ee7930bb Merge "AArch64: Use long for pointers in android/os/MessageQueue" 2014-01-16 12:12:15 +00:00
Narayan Kamath
27a647bf38 Merge "AArch64: Use long for pointers in android/os/MemoryFile" 2014-01-16 12:11:47 +00:00
Jeff Hao
56b1106494 am 9a5005a3: am f6730d26: Merge "Add sample profiling interface to startMethodTracing."
* commit '9a5005a3bfa419cb856a83ca34a67556d9fd5b74':
  Add sample profiling interface to startMethodTracing.
2014-01-15 11:41:30 -08:00
Jeff Hao
d02e60fbd4 Add sample profiling interface to startMethodTracing.
Frameworks base side of this change. Also changed art and libcore.

Change-Id: Ib5ba0445163dca714d1ae66430750346ff8811be
2014-01-15 11:27:24 -08:00
John Spurlock
b343635909 am e05190ea: am 85f98508: Merge "Docfixes: three typos and escape */*." into klp-docs
* commit 'e05190eae74be57dd517bb5afbccf901543329bf':
  Docfixes: three typos and escape */*.
2014-01-14 11:54:25 -08:00