diff --git a/oriole/overlay/frameworks/base/core/res/res/values/config.xml b/oriole/overlay/frameworks/base/core/res/res/values/config.xml
index d93eb1f..6eec9d0 100644
--- a/oriole/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/oriole/overlay/frameworks/base/core/res/res/values/config.xml
@@ -227,88 +227,6 @@
          non-zero amplitudes, to bring the vibrator amplitude down to zero using this timing. -->
     <integer name="config_vibrationWaveformRampDownDuration">50</integer>
 
-    <!-- A vibration waveform for notifications that specify DEFAULT_VIBRATE.
-         This value is a float array with values grouped as
-         { targetAmplitude (within [0,1]), targetFrequency [-1,1], duration (in milliseconds) }
-         This is only applied on devices with vibration frequency control. If the device doesn't
-         support frequency control, then the vibration specified in
-         config_defaultNotificationVibePattern is used instead.
-     -->
-    <array name="config_defaultNotificationVibeWaveform">
-        <item>0.0</item>
-        <item>-0.85</item>
-        <item>0.0</item>
-
-        <item>0.4</item>
-        <item>-0.25</item>
-        <item>100.0</item>
-
-        <item>0.4</item>
-        <item>-0.25</item>
-        <item>100.0</item>
-
-        <item>0.0</item>
-        <item>-0.85</item>
-        <item>100.0</item>
-
-        <item>0.0</item>
-        <item>-0.85</item>
-        <item>100.0</item>
-
-        <item>0.4</item>
-        <item>-0.25</item>
-        <item>100.0</item>
-
-        <item>0.4</item>
-        <item>-0.25</item>
-        <item>100.0</item>
-
-        <item>0.0</item>
-        <item>-0.85</item>
-        <item>100.0</item>
-    </array>
-
-    <!-- A vibration waveform for notifications that do not specify vibration but vibrate anyway,
-         because the device is in vibrate mode. This value is a float array with values grouped as
-         { targetAmplitude (within [0,1]), targetFrequency [-1,1], duration (in milliseconds) }
-         This is only applied on devices with vibration frequency control. If the device doesn't
-         support frequency control, then the vibration specified in
-         config_notificationFallbackVibePattern is used instead.
-     -->
-    <array name="config_notificationFallbackVibeWaveform">
-        <item>0.0</item>
-        <item>-0.85</item>
-        <item>0.0</item>
-
-        <item>0.4</item>
-        <item>-0.25</item>
-        <item>50.0</item>
-
-        <item>0.4</item>
-        <item>-0.25</item>
-        <item>100.0</item>
-
-        <item>0.0</item>
-        <item>-0.85</item>
-        <item>50.0</item>
-
-        <item>0.0</item>
-        <item>-0.85</item>
-        <item>100.0</item>
-
-        <item>0.4</item>
-        <item>-0.25</item>
-        <item>50.0</item>
-
-        <item>0.4</item>
-        <item>-0.25</item>
-        <item>100.0</item>
-
-        <item>0.0</item>
-        <item>-0.85</item>
-        <item>50.0</item>
-    </array>
-
     <!-- the number of the max cached processes in the system. -->
     <integer name="config_customizedMaxCachedProcesses">64</integer>
 
diff --git a/raven/overlay/frameworks/base/core/res/res/values/config.xml b/raven/overlay/frameworks/base/core/res/res/values/config.xml
index cffd560..a83a4e4 100644
--- a/raven/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/raven/overlay/frameworks/base/core/res/res/values/config.xml
@@ -195,88 +195,6 @@
          non-zero amplitudes, to bring the vibrator amplitude down to zero using this timing. -->
     <integer name="config_vibrationWaveformRampDownDuration">50</integer>
 
-    <!-- A vibration waveform for notifications that specify DEFAULT_VIBRATE.
-         This value is a float array with values grouped as
-         { targetAmplitude (within [0,1]), targetFrequency [-1,1], duration (in milliseconds) }
-         This is only applied on devices with vibration frequency control. If the device doesn't
-         support frequency control, then the vibration specified in
-         config_defaultNotificationVibePattern is used instead.
-     -->
-    <array name="config_defaultNotificationVibeWaveform">
-        <item>0.0</item>
-        <item>-0.85</item>
-        <item>0.0</item>
-
-        <item>0.4</item>
-        <item>-0.25</item>
-        <item>100.0</item>
-
-        <item>0.4</item>
-        <item>-0.25</item>
-        <item>100.0</item>
-
-        <item>0.0</item>
-        <item>-0.85</item>
-        <item>100.0</item>
-
-        <item>0.0</item>
-        <item>-0.85</item>
-        <item>100.0</item>
-
-        <item>0.4</item>
-        <item>-0.25</item>
-        <item>100.0</item>
-
-        <item>0.4</item>
-        <item>-0.25</item>
-        <item>100.0</item>
-
-        <item>0.0</item>
-        <item>-0.85</item>
-        <item>100.0</item>
-    </array>
-
-    <!-- A vibration waveform for notifications that do not specify vibration but vibrate anyway,
-         because the device is in vibrate mode. This value is a float array with values grouped as
-         { targetAmplitude (within [0,1]), targetFrequency [-1,1], duration (in milliseconds) }
-         This is only applied on devices with vibration frequency control. If the device doesn't
-         support frequency control, then the vibration specified in
-         config_notificationFallbackVibePattern is used instead.
-     -->
-    <array name="config_notificationFallbackVibeWaveform">
-        <item>0.0</item>
-        <item>-0.85</item>
-        <item>0.0</item>
-
-        <item>0.4</item>
-        <item>-0.25</item>
-        <item>50.0</item>
-
-        <item>0.4</item>
-        <item>-0.25</item>
-        <item>100.0</item>
-
-        <item>0.0</item>
-        <item>-0.85</item>
-        <item>50.0</item>
-
-        <item>0.0</item>
-        <item>-0.85</item>
-        <item>100.0</item>
-
-        <item>0.4</item>
-        <item>-0.25</item>
-        <item>50.0</item>
-
-        <item>0.4</item>
-        <item>-0.25</item>
-        <item>100.0</item>
-
-        <item>0.0</item>
-        <item>-0.85</item>
-        <item>50.0</item>
-    </array>
-
     <!-- Height of the status bar.
          Do not read this dimen directly. Use {@link SystemBarUtils#getStatusBarHeight} instead.
          -->
