Data-path roles (initiator & responder) are hard-coded for discovery
session participants by the spec: subscriber <-> initiator and
publisher <-> responder. Remove API parameter which allowed caller
to specify role.
(cherry-pick of commit 9c7483fec41db681a2d6de93a9061fb8764ecba5)
Bug: 32883026
Test: unit-tests and integration (sl4a) tests passing.
Change-Id: I889eacda9416d9ecd04caa0c72413f984611d40c
It looks like there was a regression where #onNewIntent() was called
before the FLAG_ACTIVITY_BROUGHT_TO_FRONT flag was set. This
change updates the code so we set the flag properly.
BUG: 33034247
Change-Id: I61959a289dc5af14ee9d3d7bfa213191238efc88
Statically includes core-junit-static into legacy-test target so
that legacy-test can be used in place of core-test. Once that
switch over has been done then android.test classes that are
being removed from the public API can be safely moved into here.
Bug: 30188076
Test: make legacy-test and check contents of generated legacy-test artifacts
Change-Id: I75488303067c4ac34c46279bfce9a51273adcc34
Symptom: monkey crash caused system server killed.
Root Cause: when monkey crash or app crash before process bound,
calling AppErrors.crashApplication will first
clear binder identities, that will caused calling pid / uid
will become with current process (i.e. system server),
so in handleAppCrashInActivityController, when monkey registered
activityController would like to kill crash process,
but not found in AMS (monkey created by app_process)
then using calling pid / uid will become to kill system server.
Solution: add calling pid / uid parameters for
handleAppCrashInActivityController to prevent binder identities
cleared case.
Test: To simulate monkey or app crash before process bound may not easy
by using simple command, but we can write a sample program to
simulate RuntimeInit to call handleApplicationCrash when met
uncauchtException,
Below is test steps in Android 7.1.1 emulator.
1. start emulator
2. after emulater started, use "adb shell am monitor" to set
activityController & monitor process by console.
3. write a .jar program as monkey by below sample code to simulate null
application binder to call handleApplicationCrash() as RuntimeInit:
package com.android.test;
import com.android.internal.os.BaseCommand;
public class SimulateMonkeyCrash extends BaseCommand {
public static void main(String[] args) {
IActivityManager am = ActivityManagerNative.getDefault();
try {
am.handleApplicationCrash(null,
new ApplicationErrorReport.CrashInfo(new Throwable()));
} catch (RemoteException e) {
e.printStackTrace();
}
}
4. write a .sh file named SimulateMonkeyCrash.sh as below:
#
base=/system
export CLASSPATH=$base/framework/SimulateMonkeyCrash.jar
exec app_process $base/bin com.android.test.SimulateMonkeyCrash "$@"
5. let .sh file is executable by "chomod 755".
6. push .jar file into /system/framework & .sh file into /system/bin
7 execute .sh file.
8. activityController will detected program crash in console as below,
press k:
Waiting after crash... available commands:
(c)ontinue: show crash dialog
(k)ill: immediately kill app
(q)uit: finish monitoring
9 you can see system server is crash.
Change-Id: Ibac4d88872f24af109d8e8522ecf5ac72fac0ce0
Expose whether a UI is single-threaded to avoid spawning threads
in actions.
Bug: 31961946
Test: manual
Change-Id: I37c8daa6a00784e833bad53b8e83ab4417955df7