diff --git a/DeviceParts/res/values/strings.xml b/DeviceParts/res/values/strings.xml
index 80ea157..88c0bf7 100644
--- a/DeviceParts/res/values/strings.xml
+++ b/DeviceParts/res/values/strings.xml
@@ -28,6 +28,9 @@
     <string name="glove_mode_title">Glove mode</string>
     <string name="proxi_summary_head">Check proximity sensor for handling fingerprint sensor</string>
     <string name="proxi_title_head">Proximity check</string>
+    <string name="smart_google">Smart key</string>
+    <string name="smart_key_title">Google Assistant</string>
+    <string name="smart_key_summary">Call Google Assistant</string>
 
     <string name="choose_app">Choose app</string>
     <string name="offscreen_gesture_title">Offscreen gestures</string>
diff --git a/DeviceParts/res/xml/main.xml b/DeviceParts/res/xml/main.xml
index 8d41c3f..ace376a 100644
--- a/DeviceParts/res/xml/main.xml
+++ b/DeviceParts/res/xml/main.xml
@@ -44,4 +44,14 @@
             android:persistent="false" />
     </PreferenceCategory>
 
+    <PreferenceCategory
+        android:key="smartkey"
+        android:title="@string/smart_google">
+        <SwitchPreference
+            android:key="smart_switch"
+            android:summary="@string/smart_key_summary"
+            android:title="@string/smart_key_title"
+            android:persistent="false" />
+    </PreferenceCategory>
+
 </PreferenceScreen>
diff --git a/DeviceParts/src/org/omnirom/device/DeviceSettings.java b/DeviceParts/src/org/omnirom/device/DeviceSettings.java
index 5b6ea93..771904b 100644
--- a/DeviceParts/src/org/omnirom/device/DeviceSettings.java
+++ b/DeviceParts/src/org/omnirom/device/DeviceSettings.java
@@ -44,9 +44,13 @@
 
     public static final String KEY_SETTINGS_PREFIX = "device_setting_";
     public static final String KEY_GLOVE_SWITCH = "glove";
+    public static final String KEY_SMART_SWITCH = "smart_switch";
+    public static final String KEY_SMART_PATH = "/sys/devices/platform/soc/soc:asustek_googlekey/googlekey_enable";
+    public static final String SETTINGS_SMART_KEY = KEY_SETTINGS_PREFIX + KEY_SMART_SWITCH;
 
     private static final String KEY_CATEGORY_SCREEN = "screen";
     private static TwoStatePreference mGloveModeSwitch;
+    private static TwoStatePreference mSmartKeySwitch;
 
     @Override
     public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
@@ -57,10 +61,19 @@
         mGloveModeSwitch.setChecked(GloveModeSwitch.isCurrentlyEnabled(this.getContext()));
         mGloveModeSwitch.setOnPreferenceChangeListener(new GloveModeSwitch(getContext()));
 
+        mSmartKeySwitch = (TwoStatePreference) findPreference(KEY_SMART_SWITCH);
+        mSmartKeySwitch.setChecked(Settings.System.getInt(getContext().getContentResolver(),
+        SETTINGS_SMART_KEY, 1) != 0);
+
     }
 
     @Override
     public boolean onPreferenceTreeClick(Preference preference) {
+        if (preference == mSmartKeySwitch) {
+            Settings.System.putInt(getContext().getContentResolver(), SETTINGS_SMART_KEY, mSmartKeySwitch.isChecked() ? 1 : 0);
+            Utils.writeValue(getFile(), mSmartKeySwitch.isChecked() ? "1" : "0");
+            return true;
+        }
         return super.onPreferenceTreeClick(preference);
     }
 
@@ -68,4 +81,19 @@
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         return true;
     }
+
+    public static String getFile() {
+        if (Utils.fileWritable(KEY_SMART_PATH)) {
+            return KEY_SMART_PATH;
+        }
+        return null;
+    }
+
+    public static String getGestureFile(String key) {
+        switch(key) {
+            case KEY_SMART_PATH:
+                return "/sys/devices/platform/soc/soc:asustek_googlekey/googlekey_enable";
+        }
+        return null;
+    }
 }
diff --git a/DeviceParts/src/org/omnirom/device/Startup.java b/DeviceParts/src/org/omnirom/device/Startup.java
index a13121d..11a5ade 100644
--- a/DeviceParts/src/org/omnirom/device/Startup.java
+++ b/DeviceParts/src/org/omnirom/device/Startup.java
@@ -94,6 +94,9 @@
         value = Settings.System.getString(context.getContentResolver(), Settings.System.OMNI_BUTTON_EXTRA_KEY_MAPPING);
         restore(getGestureFile(GestureSettings.GESTURE_CONTROL_PATH), value);
 
+        enabled = Settings.System.getInt(context.getContentResolver(), DeviceSettings.SETTINGS_SMART_KEY, 0) != 0;
+        restore(DeviceSettings.getFile(), enabled);
+
         enabled = Settings.System.getInt(context.getContentResolver(), GestureSettings.SETTINGS_GESTURE_KEY, 0) != 0;
         restore(GestureSettings.getFile(), enabled);
 
diff --git a/prebuilt/system/etc/init/init.qcom.rc b/prebuilt/system/etc/init/init.qcom.rc
index 547e663..a99b823 100644
--- a/prebuilt/system/etc/init/init.qcom.rc
+++ b/prebuilt/system/etc/init/init.qcom.rc
@@ -20,3 +20,7 @@
     # Screen Touch
     chown system system /sys/devices/platform/soc/c80000.i2c/i2c-4/4-0038/fts_glove_mode
     chmod 0660 /sys/devices/platform/soc/c80000.i2c/i2c-4/4-0038/fts_glove_mode
+
+    # Smart Key
+    chown system system /sys/devices/platform/soc/soc:asustek_googlekey/googlekey_enable
+    chmod 0660 /sys/devices/platform/soc/soc:asustek_googlekey/googlekey_enable
diff --git a/sepolicy/private/file_contexts b/sepolicy/private/file_contexts
index 808c82e..dd3fd11 100644
--- a/sepolicy/private/file_contexts
+++ b/sepolicy/private/file_contexts
@@ -15,6 +15,7 @@
 /sys/devices/platform/soc/c80000.i2c/i2c-4/4-0038/fts_glove_mode        u:object_r:sysfs_gesture:s0
 /sys/devices/platform/soc/c80000.i2c/i2c-4/4-0038/fts_gesture_mode      u:object_r:sysfs_gesture:s0
 /sys/devices/platform/soc/c80000.i2c/i2c-4/4-0038/swipeup_mode          u:object_r:sysfs_gesture:s0
+/sys/devices/platform/soc/soc:asustek_googlekey/googlekey_enable          u:object_r:sysfs_gesture:s0
 
 # Modules
 /system/lib/modules/wlan\.ko                  u:object_r:vendor_file:s0
