Commit Graph

1511 Commits

Author SHA1 Message Date
Bill Yi
293513a59d Merge commit '0b62467b142b61ee1e449ba958ba37dfd961ef56' into HEAD 2014-04-29 16:07:29 -07: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
John Spurlock
e05190eae7 am 85f98508: Merge "Docfixes: three typos and escape */*." into klp-docs
* commit '85f98508366e8422f71553d2a5e682eb804c7419':
  Docfixes: three typos and escape */*.
2014-01-14 19:50:38 +00:00
Ashok Bhat
63a3715323 AArch64: Use long for pointers in android/os/MessageQueue
Long is used in android/os/MessageQueue class to store
pointers as native pointers can be 64-bit.

In addition, some minor changes have been done
to conform with standard JNI practice (e.g. use
of jint instead of int in JNI function prototypes)

Change-Id: I7e901b8515a5b5e3afe1dadaaf3e5c186955c2a0
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
2014-01-10 15:36:16 +00:00
Ashok Bhat
c20cadbdad AArch64: Use long for pointers in android/os/MemoryFile
Long is used in android/os/MemoryFile class to store
pointers as native pointers can be 64-bit.

In addition, some minor changes have been done
to conform with standard JNI practice (e.g. use
of jint instead of int in JNI function prototypes)

Change-Id: I07afc010524c16b5c852273b89becb0c08ff27d7
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
2014-01-10 15:14:46 +00:00
John Spurlock
3390018c6b Docfixes: three typos and escape */*.
Change-Id: I418d855b5d08a1a20eaca3d8e4d2e5d0fca23dd5
2014-01-06 11:44:42 -05:00
Mark Doliner
879ea451ce Fix documentation for Parcel.readException().
The old documentation was kind of useless and not clear, so this is an
improvement.

In addition to this change, I think this method should probably be private
instead of public, especially since the values for code are private. But it's
too late to change that now. Also the method name is pretty poor, since it's
not actually reading anything. Something like "throwException" would be more
appropriate.

I'm open to suggestions on how to improve this situation. Maybe mark the
method as deprecated with a comment that it will be made private in the
future?

Change-Id: I830f2bcf606714bd130d8c953aa33974b33c9a83
2014-01-02 12:38:07 -08:00
Marco Nelissen
69b4670730 am ce3bd309: Merge "Parse UUID string with Long.parseLong"
* commit 'ce3bd309b12e9552c05d5a59a06d7883618c5ca0':
  Parse UUID string with Long.parseLong
2013-12-11 10:14:56 -08:00
Tom Marshall
17d5c1b181 Parse UUID string with Long.parseLong
Integer.parseInt throws an NPE for values greater than 0x7fffffff.
2013-12-06 21:04:25 +01:00
Dirk Dougherty
3eddb6213d am a40420c9: am 43eea0a6: Merge "Doc change: Change description for BRAND. Bug:11431921" into klp-docs
* commit 'a40420c9c1c8216fd0251dc550bb22e9cc1dd177':
  Doc change: Change description for BRAND. Bug:11431921
2013-11-21 11:53:27 -08:00
Dirk Dougherty
a40420c9c1 am 43eea0a6: Merge "Doc change: Change description for BRAND. Bug:11431921" into klp-docs
* commit '43eea0a640db07c4da05146f7e68eae567592bdb':
  Doc change: Change description for BRAND. Bug:11431921
2013-11-21 19:49:46 +00:00
Dirk Dougherty
491b40d752 Doc change: Change description for BRAND.
Bug:11431921

Change-Id: Id08bb58a52699942e0cf626aeb577ac05c84c575
2013-11-21 09:31:40 -08:00
Dianne Hackborn
6f5d85377b am 47b260d0: am 572b759a: Merge "Use index in SparseArray access properly"
* commit '47b260d071859a8c20bb0af2bcc095e253f7046c':
  Use index in SparseArray access properly
2013-11-14 16:37:55 -08:00
Scott Main
af623b99da am bb146981: am 29610421: Merge "Revised some text while reading up on traceview. this is what\'s left of this older CL that was left for dead: I5528b476d8110df51d45aaf690d878f72bc75c9f" into klp-docs
* commit 'bb1469816451aeb24eb8208fac1f2596f528aa80':
  Revised some text while reading up on traceview. this is what's left of this older CL that was left for dead: I5528b476d8110df51d45aaf690d878f72bc75c9f
2013-11-12 18:58:13 -08:00
Igor Chernyshev
b94d654d36 Use index in SparseArray access properly
The original code was calling get() rather than valueAt(),
treating index as if it was a key.

Change-Id: I52539dfcb49b3d2ee3cb027d38c50b46f73b5ee7
Signed-off-by: Igor Chernyshev <igorc@google.com>
2013-11-12 18:56:21 -08:00
Scott Main
bb14698164 am 29610421: Merge "Revised some text while reading up on traceview. this is what\'s left of this older CL that was left for dead: I5528b476d8110df51d45aaf690d878f72bc75c9f" into klp-docs
* commit '29610421a32501661d6c20136c76ec426d6500fb':
  Revised some text while reading up on traceview. this is what's left of this older CL that was left for dead: I5528b476d8110df51d45aaf690d878f72bc75c9f
2013-11-13 02:53:40 +00:00
Scott Main
c468240c1a Revised some text while reading up on traceview.
this is what's left of this older CL that was left for dead:
I5528b476d8110df51d45aaf690d878f72bc75c9f

Change-Id: I42f784d693c0a2a2e2e8ed4c582cbc10180191e7
2013-11-12 18:49:21 -08:00
Robert Greenwalt
c3eef19047 am f1612bcf: am e8c51298: Merge "Add BatteryStats for Wifi Batched Scanning." into klp-dev
* commit 'f1612bcfdd2cb517948f14369fd0977ceb55d19c':
  Add BatteryStats for Wifi Batched Scanning.
2013-11-07 10:39:43 -08:00
Robert Greenwalt
a029ea1318 Add BatteryStats for Wifi Batched Scanning.
bug:10690989
Change-Id: Ia39b715ee6d5733970095bc76de0ed40ff8208c0
2013-11-06 17:43:18 -08:00