Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e2e79d98 authored by Thomas Stuart's avatar Thomas Stuart
Browse files

CTS to ensure telecom can bind to NonUiInCallService wo export prop.

This CL is a postmortem action which is detailed in the linked bug.
In short, an OEM had the telecom stack outside of the system process
and had a non-ui InCallService it wanted to bind.  However, the
InCallService set the Exported property to false.  This combo caused
a calling outage that prevented users from making/receiving calls.

To prevent the above scenaro from occuring again, this new CTS test
was created. It tests the Telecom stack of the OEM against a
non-ui InCallService that has it's exported property set to false.

Bug: 198715680

Test: 1 new CTS test,
      NonUiInCallServiceWoExportTest
      #testTelecomCanBindToNonUiInCallServiceThatIsNotExported

Change-Id: I5b99aa9c7e989a1c20a7b086f65782286a8be575
parent 3aaa58de
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -76,6 +76,8 @@ public final class Telecom extends BaseCommand {
    private static final String COMMAND_CLEANUP_ORPHAN_PHONE_ACCOUNTS =
            "cleanup-orphan-phone-accounts";
    private static final String COMMAND_RESET_CAR_MODE = "reset-car-mode";
    private static final String COMMAND_IS_NON_IN_CALL_SERVICE_BOUND =
            "is-non-ui-in-call-service-bound";

    /**
     * Change the system dialer package name if a package name was specified,
@@ -169,6 +171,8 @@ public final class Telecom extends BaseCommand {
                        + " over Telephony.\n"
                + "telecom log-mark <MESSAGE>: emits a message into the telecom logs.  Useful for "
                        + "testers to indicate where in the logs various test steps take place.\n"
                + "telecom is-non-ui-in-call-service-bound <PACKAGE>: queries a particular "
                + "non-ui-InCallService in InCallController to determine if it is bound \n"
        );
    }

@@ -270,6 +274,9 @@ public final class Telecom extends BaseCommand {
            case COMMAND_GET_MAX_PHONES:
                runGetMaxPhones();
                break;
            case COMMAND_IS_NON_IN_CALL_SERVICE_BOUND:
                runIsNonUiInCallServiceBound();
                break;
            case COMMAND_SET_TEST_EMERGENCY_PHONE_ACCOUNT_PACKAGE_FILTER:
                runSetEmergencyPhoneAccountPackageFilter();
                break;
@@ -427,6 +434,18 @@ public final class Telecom extends BaseCommand {
        mTelephonyManager.switchMultiSimConfig(numSims);
    }

    /**
     * prints out whether a particular non-ui InCallServices is bound in a call
     */
    public void runIsNonUiInCallServiceBound() throws RemoteException {
        if (TextUtils.isEmpty(mArgs.peekNextArg())) {
            System.out.println("No Argument passed. Please pass a <PACKAGE_NAME> to lookup.");
        } else {
            System.out.println(
                    String.valueOf(mTelecomService.isNonUiInCallServiceBound(nextArg())));
        }
    }

    /**
     * Prints the mSIM config to the console.
     * "DSDS" for a phone in DSDS mode
+2 −0
Original line number Diff line number Diff line
@@ -358,6 +358,8 @@ interface ITelecomService {

    int cleanupOrphanPhoneAccounts();

    boolean isNonUiInCallServiceBound(in String packageName);

    void resetCarMode();

    void setTestDefaultCallRedirectionApp(String packageName);