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

Commit 8fe8e0fc authored by Hugh Chen's avatar Hugh Chen
Browse files

RESTRICT AUTOMERGE Fix phishing attacks over Bluetooth due to unclear warning message

This CL add more prompts presented for users to avoid phishing attacks.

Screenshot:
https://screenshot.googleplex.com/p5PZbphN46ddPFV.png
https://screenshot.googleplex.com/6Q2wKfPbNQmTtx8.png
https://screenshot.googleplex.com/987VpYgNUZL2K4T.png
https://screenshot.googleplex.com/9eVg6SAGScVXU8U.png

Bug: 167403112
Test: manually test
Change-Id: Iadec059b662fd91754ad573bbe688702cdd3c9af
(cherry picked from commit 10e45992)
parent 3d6641a4
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -9068,4 +9068,25 @@
    <!-- Label for button to not allow grant the permission for remote devices. [CHAR_LIMIT=50] -->
    <string name="request_manage_bluetooth_permission_dont_allow">Don\u2019t allow</string>
    <!-- Bluetooth sim card permission alert for notification title [CHAR LIMIT=none] -->
    <string name="bluetooth_sim_card_access_notification_title">SIM card access request</string>
    <!-- Bluetooth sim card permission alert for notification content [CHAR LIMIT=none] -->
    <string name="bluetooth_sim_card_access_notification_content">A device wants to access your SIM card. Tap for details.</string>
    <!-- Bluetooth sim card permission alert for dialog title [CHAR LIMIT=none] -->
    <string name="bluetooth_sim_card_access_dialog_title">Allow access to SIM card?</string>
    <!-- Bluetooth sim card permission alert for dialog content [CHAR LIMIT=none] -->
    <string name="bluetooth_sim_card_access_dialog_content">A Bluetooth device, <xliff:g id="device_name" example="My device">%1$s</xliff:g>, wants to access data on your SIM card. This includes your contacts.\n\nWhile connected, <xliff:g id="device_name" example="My device">%2$s</xliff:g> will receive all calls made to <xliff:g id="phone_number" example="0912345678">%3$s</xliff:g>.</string>
    <!-- Bluetooth connect permission alert for notification title [CHAR LIMIT=none] -->
    <string name="bluetooth_connect_access_notification_title">Bluetooth device available</string>
    <!-- Bluetooth connect permission alert for notification content [CHAR LIMIT=none] -->
    <string name="bluetooth_connect_access_notification_content">A device wants to connect. Tap for details.</string>
    <!-- Bluetooth connect permission alert for dialog title [CHAR LIMIT=none] -->
    <string name="bluetooth_connect_access_dialog_title">Connect to Bluetooth device?</string>
    <!-- Bluetooth connect permission alert for dialog content [CHAR LIMIT=none] -->
    <string name="bluetooth_connect_access_dialog_content"><xliff:g id="device_name" example="My device">%1$s</xliff:g> wants to connect to this phone.\n\nYou haven\u2019t connected to <xliff:g id="device_name" example="My device">%2$s</xliff:g> before.</string>
    <!-- Strings for Dialog don't connect button -->
    <string name="bluetooth_connect_access_dialog_negative">Don\u2019t connect</string>
    <!-- Strings for Dialog connect button -->
    <string name="bluetooth_connect_access_dialog_positive">Connect</string>
</resources>
+15 −8
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.support.v7.preference.Preference;
import android.util.Log;
import android.view.View;
@@ -96,13 +97,13 @@ public class BluetoothPermissionActivity extends AlertActivity implements
        if(DEBUG) Log.i(TAG, "onCreate() Request type: " + mRequestType);

        if (mRequestType == BluetoothDevice.REQUEST_TYPE_PROFILE_CONNECTION) {
            showDialog(getString(R.string.bluetooth_connection_permission_request), mRequestType);
            showDialog(getString(R.string.bluetooth_connect_access_dialog_title), mRequestType);
        } else if (mRequestType == BluetoothDevice.REQUEST_TYPE_PHONEBOOK_ACCESS) {
            showDialog(getString(R.string.bluetooth_phonebook_access_dialog_title), mRequestType);
        } else if (mRequestType == BluetoothDevice.REQUEST_TYPE_MESSAGE_ACCESS) {
            showDialog(getString(R.string.bluetooth_message_access_dialog_title), mRequestType);
        } else if (mRequestType == BluetoothDevice.REQUEST_TYPE_SIM_ACCESS) {
            showDialog(getString(R.string.bluetooth_sap_request), mRequestType);
            showDialog(getString(R.string.bluetooth_sim_card_access_dialog_title), mRequestType);
        }
        else {
            Log.e(TAG, "Error: bad request type: " + mRequestType);
@@ -135,9 +136,14 @@ public class BluetoothPermissionActivity extends AlertActivity implements
            p.mView = createSapDialogView();
            break;
        }
        p.mPositiveButtonText = getString(R.string.allow);
        p.mPositiveButtonText = getString(
                requestType == BluetoothDevice.REQUEST_TYPE_PROFILE_CONNECTION
                        ? R.string.bluetooth_connect_access_dialog_positive : R.string.allow);
        p.mPositiveButtonListener = this;
        p.mNegativeButtonText = getString(R.string.request_manage_bluetooth_permission_dont_allow);
        p.mNegativeButtonText = getString(
                requestType == BluetoothDevice.REQUEST_TYPE_PROFILE_CONNECTION
                        ? R.string.bluetooth_connect_access_dialog_negative
                        : R.string.request_manage_bluetooth_permission_dont_allow);
        p.mNegativeButtonListener = this;
        mOkButton = mAlert.getButton(DialogInterface.BUTTON_POSITIVE);
        setupAlert();
@@ -158,8 +164,8 @@ public class BluetoothPermissionActivity extends AlertActivity implements
        String mRemoteName = Utils.createRemoteName(this, mDevice);
        mView = getLayoutInflater().inflate(R.layout.bluetooth_access, null);
        messageView = (TextView)mView.findViewById(R.id.message);
        messageView.setText(getString(R.string.bluetooth_connection_dialog_text,
                mRemoteName));
        messageView.setText(getString(R.string.bluetooth_connect_access_dialog_content,
                mRemoteName, mRemoteName));
        return mView;
    }

@@ -183,10 +189,11 @@ public class BluetoothPermissionActivity extends AlertActivity implements

    private View createSapDialogView() {
        String mRemoteName = Utils.createRemoteName(this, mDevice);
        TelephonyManager tm = getSystemService(TelephonyManager.class);
        mView = getLayoutInflater().inflate(R.layout.bluetooth_access, null);
        messageView = (TextView)mView.findViewById(R.id.message);
        messageView.setText(getString(R.string.bluetooth_sap_acceptance_dialog_text,
                mRemoteName, mRemoteName));
        messageView.setText(getString(R.string.bluetooth_sim_card_access_dialog_content,
                mRemoteName, mRemoteName, tm.getLine1Number()));
        return mView;
    }

+8 −4
Original line number Diff line number Diff line
@@ -144,13 +144,17 @@ public final class BluetoothPermissionRequest extends BroadcastReceiver {
                                R.string.bluetooth_message_access_notification_content);
                        break;
                    case BluetoothDevice.REQUEST_TYPE_SIM_ACCESS:
                        title = context.getString(R.string.bluetooth_sap_request);
                        message = context.getString(R.string.bluetooth_sap_acceptance_dialog_text,
                        title = context.getString(
                                R.string.bluetooth_sim_card_access_notification_title);
                        message = context.getString(
                                R.string.bluetooth_sim_card_access_notification_content,
                                deviceAlias, deviceAlias);
                        break;
                    default:
                        title = context.getString(R.string.bluetooth_connection_permission_request);
                        message = context.getString(R.string.bluetooth_connection_dialog_text,
                        title = context.getString(
                                R.string.bluetooth_connect_access_notification_title);
                        message = context.getString(
                                R.string.bluetooth_connect_access_notification_content,
                                deviceAlias, deviceAlias);
                        break;
                }