174880 Commits

Author SHA1 Message Date
Andreas Gampe
e816f917e0 Merge "Frameworks/base: Use system property for cache prune counter" 2015-04-01 19:52:27 +00:00
Andreas Gampe
e324ba0e7c Frameworks/base: Use system property for cache prune counter
Expose ART's -Xzygote-max-boot-retry through a new system property
dalvik.vm.zygote.max-boot-retry.

Bug: 19983101
Change-Id: Ib88f807e0082d71292c14c7af38e02cca5a5602c
2015-04-01 19:50:58 +00:00
Alex Klyubin
5045b7189c Use Keymaster-friendly validity dates.
Keymaster HAL currently requires that key validity start and end dates
always be specified. The framework API does not. This CL expresses
the framework API's "not specified" instants to Keymaster as instants
in distant past or future.

Bug: 18088752
Change-Id: Ia9d66d5e57bfca30628cdef6e0925a2781a3acfb
2015-04-01 10:44:30 -07:00
Alex Klyubin
c461452eb7 Merge "Hook in user authenticators and their exceptions." 2015-04-01 17:34:37 +00:00
Alex Klyubin
c6cc9d820d Merge "A way to obtain KeyStore operation handle from crypto primitives." 2015-04-01 17:34:08 +00:00
Olawale Ogunwale
086071e730 Merge "[ActivityManager] Reduce report wrong anr activity" 2015-04-01 17:32:37 +00:00
Mark Salyzyn
c90a44184f Merge "idmap: scan missing include for sys/stat.h" 2015-04-01 16:53:53 +00:00
Mark Salyzyn
b62286e60c idmap: scan missing include for sys/stat.h
scan.cpp gets sys/stat.h inherited from
private/android_filesystem_config.h it should
not rely on this in the future. The intent is
to move fs_config function into libcutils and
thus deprecate any need for sys/stat.h in this
include file.

Bug: 19908228
Change-Id: If547e86513b06c536972138ae571c3d9c714ffe9
2015-04-01 16:52:14 +00:00
Mark Salyzyn
5218065dec Merge "app_main missing include for sys/stat.h" 2015-04-01 16:28:05 +00:00
Ronnie Leng
4c5c6f43dd [ProcessStas] fix index out of bounds when add duration.
Root Cause:
There is a defect in current ProcessStats design
and following is the scenario:
1. Process A is started due to activity with
name of A
2. Process A creates ProessState with application
uid of A
3. Process B is started due to isolated service
declared in application A with name of A
4. Process B uses ProcessState of Process A as
it uses same application uid of A
5. Process B is finished and it leads to
ProcessState marked as dead
6. Process A still keeps using the invalid
ProcessState in dead state
7. IndexOutOfBoundsException is triggered when
system tries to update process state of Process A

Resolution:
use process uid to replace application uid for
getProcessStatLocked.

Change-Id: I881ad9fc492c9e1a892c9e957180cebcfef8352d
Signed-off-by: Ronnie Leng <ronnie.leng@gmail.com>
2015-04-01 11:23:45 -05:00
Mark Salyzyn
fc737fb76c app_main missing include for sys/stat.h
app_main.c gets sys/stat.h inherited from
private/android_filesystem_config.h it should
not rely on this in the future. The intent is
to move fs_config function into libcutils and
thus deprecate any need for sys/stat.h in this
include file.

Bug: 19908228
Change-Id: I477b825e582742113f849aaa1df50c41e496b6f6
2015-04-01 16:02:32 +00:00
Olawale Ogunwale
6091dcbb80 Merge "[ActivityManager] Improve multi-thread access the same provider" 2015-04-01 14:58:21 +00:00
riddle_hsu
db46d6b074 [ActivityManager] Reduce report wrong anr activity
Symptom:
Report ANR on wrong activity.

Reproduce steps:
 (All launchMode, taskAffinity are default and
  without additional intent flag)
 Case 1:
  1.Launch activity A from launcher.
  2.Activity A starts B activity.
  3.Press home key.
  4.Launch activity A from launcher (B is top).
  5.Press back key twice to finish B and A,
    A sleep 10s in onResume.
  6.ANR will report on launcher.

 Case 2:
  1.Launch activity A from launcher.
  2.Press home key.
  3.Kill process of A.
  4.Launch activity A from launcher.
  5.A sleep 10s in onResume, press back key immediately.
  6.ANR will report on launcher.

Possible root cause:
Focused activity will not be updated every time when activity
resumed. (the condition to call setFocusedActivityLocked)

Case 1:
Launcher was stopped and not waitingVisible due to launcher
is not the previous one, then getWaitingHistoryRecordLocked
has no chance to correct the real ANR activity.

Case 2:
Due to process of next activity is died, bring existed
task will not set mResumedActivity (it will be set when its
process is started), so when assigning waitingVisible from
processStoppingActivitiesLocked, the return value of
allResumedActivitiesVisible will be true even there is no
mResumedActivity. That results set waitingVisible to false
to previous activity (e.g. launcher), then also cannot
correct ANR target as case 1.

Change-Id: I0b24f46a8fab266382ebc6e2ed84ebeca9358768
2015-04-01 18:58:07 +08:00
riddle_hsu
57307b21cb [ActivityManager] Improve multi-thread access the same provider
Application may use many threads to load data from provider.
If the target provider needs to start process, each access
will occupy one binder thread of system server until the
provider process started and published.

Sometimes application uses more than 16 threads to access
the same provider, and the provider process needs a little
long time to start, then all binder threads of system server
are waiting. But when the provider is ready, it is unable to
publish to notify those waiting threads because no availabe
binder thread to use. And device will become almost hang.

Improvement:
If there is already a thread acquiring provider, let other threads
(which try to acquire the same provider) wait the result of the
first one. That reduces IPC to save binder thread of system server.

Remove calling removeContentProvider in installProvider because
we have ensured only get one provider holder for the same provider,
the original race that gets a new useless holder will not happen.

Change-Id: I521f2603db8ced56912f5dc54342a70451e68381
2015-04-01 15:06:18 +08:00
Alex Klyubin
52886ca77d A way to obtain KeyStore operation handle from crypto primitives.
This adds AndroidKeyStore.getKeyStoreOperationHandle method which can
be used to obtain the KeyStore operation handle corresponding to the
provided JCA cryto primitive (provided it's backed by
AndroidKeyStore).

Bug: 18088752
Change-Id: Iaa3b6f9b2281b2ec2de8fd5946d353dc7fdb3d2d
2015-03-31 21:19:26 -07:00
Alex Klyubin
c8e557470f Hook in user authenticators and their exceptions.
Bug: 18088752
Change-Id: I2835dbe51d09587a3081597c6aaf536aa1427e24
2015-03-31 19:50:13 -07:00
Alex Klyubin
562c6a71f9 Merge "UNSUPPORTED_TAG_LENGTH -> UNSUPPORTED_MAC_LENGTH" 2015-04-01 00:47:01 +00:00
Alex Klyubin
c0eb55ccc7 UNSUPPORTED_TAG_LENGTH -> UNSUPPORTED_MAC_LENGTH
This is to follow naming from keymaster_defs.h

Bug: 18088752
Change-Id: If2bc91dde54f1cefcd4325d1f62d0e0b77fc5d59
2015-03-31 17:16:31 -07:00
Alex Klyubin
b7a34e4955 Merge "Add license banner to recently added AndroidKeyStore files." 2015-03-31 23:52:46 +00:00
Alex Klyubin
cc21bb3a56 Add license banner to recently added AndroidKeyStore files.
Bug: 18088752
Change-Id: I027f9530a02cca081aae8eb94833d2fdcb678e9a
2015-03-31 16:50:37 -07:00
Alex Klyubin
19e79e12d8 Merge "Add SecretKeyFactory backed by AndroidKeyStore." 2015-03-31 23:32:41 +00:00
Alex Klyubin
acc835f385 Add SecretKeyFactory backed by AndroidKeyStore.
This factory provides a way to obtain information about a SecretKey
backed by AndroidKeyStore. The information is provided in a form of an
instance of KeyStoreKeySpec class.

EXAMPLE

SecretKeyFactory factory = SecretKeyFactory.getInstance(
        key.getAlgorithm(), "AndroidKeyStore");
KeyStoreKeySpec keySpec =
    factory.getKeySpec(key, KeyStoreKeySpec.class);

Bug: 18088752
Change-Id: I26c9dd544f80230fe7039501eeb471eaf875452b
2015-03-31 15:29:48 -07:00
Craig Mautner
d720dedb03 Merge "Clear the previous states before setting the new app visibility" 2015-03-31 22:24:15 +00:00
Yang Ni
63dde9c88d Merge "Fix value size data type in closure creation." 2015-03-31 21:32:24 +00:00
Alex Klyubin
5960c3d566 Merge "Add unauthenticated AES ciphers backed by AndroidKeyStore." 2015-03-31 21:00:17 +00:00
Alex Klyubin
b406f24291 Add unauthenticated AES ciphers backed by AndroidKeyStore.
This adds the following AES transformations:
* AES/ECB/NoPadding
* AES/ECB/PKCS7Padding
* AES/CBC/NoPadding
* AES/CBC/PKCS7Padding
* AES/CTR/NoPadding

Bug: 18088752
Change-Id: I3e4702e59868f8f2225c31b1c159d20008b9999d
2015-03-31 13:59:07 -07:00
Chad Brubaker
5491ea9e5b Merge "Include operation handle in OperationResult" 2015-03-31 17:49:16 +00:00
Olawale Ogunwale
d052a3d37b Merge "[ActivityManager] Fix index out of bounds when updating next pss time." 2015-03-31 16:09:16 +00:00
Neil Fuller
25c5296b0d Merge "An updater for all timezone data on a device" 2015-03-31 08:31:00 +00:00
louis_chang
5064fddf81 [ActivityManager] Examine bad process before clean up application
record

Symptom:
Unable to launch activity

Root cause:
There are some cases that would start process while pid
assigned or already running. So the previous application
record will be clean up via handleAppDiedLocked(), but it
won't be removed from ActivityManager.mProcessNames since
the process is supposed to be restart later.

However, if the process is started from a background
operation and has named as a bad process, it silently fail
the launch. Then, the process won't ever be request to
start afterward. The process status is app.pid > 0 and
app.thread is null.

The application components are unable to launch since then.

Solution:
Examine bad process before clean up application record

Change-Id: I53dc06e49254094abc06e460c8b8b33f36803601
2015-03-31 15:18:21 +08:00
riddle_hsu
6793fc328a [ActivityManager] Fix index out of bounds when updating next pss time.
Symptom:
System server crash.

Root Cause:
The value curProcState for array index is -1 if the process
has not attached yet.

Solution:
Skip computing for process which is not attached or curProcState
is nonexistent state.

Change-Id: I71aaf45bb78d73097ebe9dfebf76b72f2d243232
2015-03-31 11:54:14 +08:00
Andreas Gampe
02c4bbb964 Merge "Frameworks/base: Support dex2oat threads system property" 2015-03-31 03:20:09 +00:00
Andreas Gampe
e035238823 Frameworks/base: Support dex2oat threads system property
Check dalvik.vm.dex2oat-threads in AndroidRuntime and pass to ART
with "-j" as a compiler option, if found.

Check dalvik.vm.image-dex2oat-threads in AndroidRuntime and pass to
ART with "-j" as an image compiler option, if found.

Bug: 19992386
Change-Id: I5e7806cf560607d31a1d6901dffb14bee538c9cc
2015-03-30 20:16:03 -07:00
Olawale Ogunwale
4af5bd7cda Merge "Add ProcessInfoService to activity manager." 2015-03-30 22:00:12 +00:00
Alex Klyubin
6a6f0c7de2 Merge "Add HmacSHA256 backed by AndroidKeyStore." 2015-03-30 20:34:48 +00:00
Chad Brubaker
f603e28614 Merge "Add authorization binder methods" 2015-03-30 20:06:39 +00:00
Alex Klyubin
4ab8ea4498 Add HmacSHA256 backed by AndroidKeyStore.
This also adds the MAC length constraint on imported HMAC keys. HMAC
doesn't work without this constraint at the moment.

Bug: 18088752
Change-Id: I8613f58f5d2a84df00bcf6179d13e30619440330
2015-03-30 12:53:23 -07:00
Ruben Brunk
e1e1969c96 Add ProcessInfoService to activity manager.
- Adds a new AIDL interface for querying process
  information from activity manager.

Bug: 19186859
Change-Id: Ic08858f346d6b66e7bfc9da6faa2c6e38d9b2e82
2015-03-30 12:20:16 -07:00
Fyodor Kupolov
b94c1657eb Support for storing OAT files in app directory
In installPackageLI, dexopt is now performed on a staging directory of the app
(dexopt phase 1). For each codepath:
 - /oat/<isa> directory is created
 - dexopt output goes to the newly created directory. Optimized files have
   .odex extension.

Bug: 19550105
Change-Id: Iec59790d97837b78af82b079fd1970de3388c91d
2015-03-30 11:32:56 -07:00
Yang Ni
4c93c8c93a Fix value size data type in closure creation.
b/19944127

Also added references to arguments and global values in a closure to
keep them live in Java while native code may access them.

Change-Id: I1179d34aa67f845578740e71cc2da4f82419f251
2015-03-30 10:45:34 -07:00
Mathieu Chartier
631565abd6 Merge "Change getDeclaredFieldsUnchecked call to new return value" 2015-03-29 22:30:41 +00:00
Andreas Gampe
a01250c774 Merge "Frameworks/base: Change String == to equals in Preference" 2015-03-28 04:50:44 +00:00
Andreas Gampe
5a15bf69d8 Merge "Frameworks/base: Fix request removal in VoiceInteractionSession" 2015-03-28 04:50:08 +00:00
Mathieu Chartier
3d529c5b0a Change getDeclaredFieldsUnchecked call to new return value
Required for related libcore change.

Bug: 19264997
Change-Id: I17ca0cf4b9ba853e59f4a6eff3a05d9d90cf23f9
2015-03-27 18:55:50 -07:00
Alex Klyubin
36ee836d2f Merge "Symmetric key generation for AndroidKeyStore." 2015-03-27 22:59:19 +00:00
Alex Klyubin
d23a1f706f Symmetric key generation for AndroidKeyStore.
This currently supports AES and HMAC with SHA-256.

Bug: 18088752
Change-Id: Ife55438cf4129b895295681bb35091cd37eb73fb
2015-03-27 15:57:53 -07:00
Chad Brubaker
dbd9a4b651 Merge "Allow entropy to be provided to some operations" 2015-03-27 21:38:44 +00:00
Chad Brubaker
dae79e5408 Allow entropy to be provided to some operations
generateKey and begin can now optionally take an array of bytes to add
to the rng entropy of the device before the operation. If entropy is
specified and the device does not support add_rng_entropy or the call
fails then that device will not be used, leading to fallback or error
depending on the situation.

Change-Id: Id7d33e3cc959594dfa5483d002993ba35c1fb134
2015-03-27 14:28:35 -07:00
Alex Klyubin
274a4ee344 Merge "Symmetric key import for AndroidKeyStore." 2015-03-27 19:21:13 +00:00
Johan8 Persson2
567267015d Fixed memory leak in ExtractEditLayout finish()
When marking text and opening the edit text dialog
and then rotating the device would result in references
being kept to the edit text dialog and the memory would
never get released again.

Change-Id: I3e95083e4923844d2b496ea79174ef97e77f8686
2015-03-27 13:23:11 +01:00