Blissify
diff --git a/prebuilt/AdAway/AdAway.apk b/prebuilt/AdAway/AdAway.apk
new file mode 100644
index 0000000..fa761e1
--- /dev/null
+++ b/prebuilt/AdAway/AdAway.apk
Binary files differ
diff --git a/prebuilt/KernelAdiutor/KernelAdiutor.apk b/prebuilt/KernelAdiutor/KernelAdiutor.apk
new file mode 100755
index 0000000..727d395
--- /dev/null
+++ b/prebuilt/KernelAdiutor/KernelAdiutor.apk
Binary files differ
diff --git a/prebuilt/V4A/etc/audio_effects.conf b/prebuilt/V4A/etc/audio_effects.conf
new file mode 100644
index 0000000..587e2cd
--- /dev/null
+++ b/prebuilt/V4A/etc/audio_effects.conf
@@ -0,0 +1,149 @@
+# List of effect libraries to load. Each library element must contain a "path" element
+# giving the full path of the library .so file.
+#    libraries {
+#        <lib name> {
+#          path <lib path>
+#        }
+#    }
+libraries {
+  v4a_fx {
+    path /system/lib/soundfx/libv4a_fx_ics.so
+  }
+  bundle {
+    path /system/lib/soundfx/libv4a_fx_ics.so
+  }
+  reverb {
+    path /system/lib/soundfx/libv4a_fx_ics.so
+  }
+  visualizer {
+    path /system/lib/soundfx/libvisualizer.so
+  }
+  downmix {
+    path /system/lib/soundfx/libv4a_fx_ics.so
+  }
+}
+
+# Default pre-processing library. Add to audio_effect.conf "libraries" section if
+# audio HAL implements support for default software audio pre-processing effects
+#
+#  pre_processing {
+#    path /system/lib/soundfx/libv4a_fx_ics.so
+#  }
+
+# list of effects to load. Each effect element must contain a "library" and a "uuid" element.
+# The value of the "library" element must correspond to the name of one library element in the
+# "libraries" element.
+# The name of the effect element is indicative, only the value of the "uuid" element
+# designates the effect.
+# The uuid is the implementation specific UUID as specified by the effect vendor. This is not the
+# generic effect type UUID.
+#    effects {
+#        <fx name> {
+#            library <lib name>
+#            uuid <effect uuid>
+#        }
+#        ...
+#    }
+
+effects {
+  v4a_standard_fx {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+  bassboost {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+  virtualizer {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+  equalizer {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+  volume {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+  reverb_env_aux {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+  reverb_env_ins {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+  reverb_pre_aux {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+  reverb_pre_ins {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+  visualizer {
+    library visualizer
+    uuid d069d9e0-8329-11df-9168-0002a5d5c51b
+  }
+  downmix {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+}
+
+# Default pre-processing effects. Add to audio_effect.conf "effects" section if
+# audio HAL implements support for them.
+#
+#  agc {
+#    library v4a_fx
+#    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b   
+#  }
+#  aec {
+#    library v4a_fx
+#    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+#  }
+#  ns {
+#    library v4a_fx
+#    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+#  }
+
+# Audio preprocessor configurations.
+# The pre processor configuration consists in a list of elements each describing
+# pre processor settings for a given input source. Valid input source names are:
+# "mic", "camcorder", "voice_recognition", "voice_communication"
+# Each input source element contains a list of effects elements. The name of the effect
+# element must be the name of one of the effects in the "effects" list of the file.
+# Each effect element may optionally contain a list of parameters and their
+# default value to apply when the pre processor effect is created.
+# A parameter is defined by a "param" element and a "value" element. Each of these elements
+# consists in one or more elements specifying a type followed by a value.
+# The types defined are: "int", "short", "float", "bool" and "string"
+# When both "param" and "value" are a single int, a simple form is allowed where just
+# the param and value pair is present in the parameter description
+#    pre_processing {
+#        <input source name> {
+#            <fx name> {
+#                <param 1 name> {
+#                    param {
+#                        int|short|float|bool|string <value>
+#                        [ int|short|float|bool|string <value> ]
+#                        ...
+#                    }
+#                    value {
+#                        int|short|float|bool|string <value>
+#                        [ int|short|float|bool|string <value> ]
+#                        ...
+#                    }
+#                }
+#                <param 2 name > {<param> <value>}
+#                ...
+#            }
+#            ...
+#        }
+#        ...
+#    }
+
+#
+# TODO: add default audio pre processor configurations after debug and tuning phase
+#
diff --git a/prebuilt/V4A/etc/audio_policy.conf b/prebuilt/V4A/etc/audio_policy.conf
new file mode 100644
index 0000000..7f4ef3a
--- /dev/null
+++ b/prebuilt/V4A/etc/audio_policy.conf
@@ -0,0 +1,75 @@
+# Global configuration section: lists input and output devices always present on the device
+# as well as the output device selected by default.
+# Devices are designated by a string that corresponds to the enum in audio.h
+
+global_configuration {
+  attached_output_devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER
+  default_output_device AUDIO_DEVICE_OUT_SPEAKER
+  attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BACK_MIC
+}
+
+# audio hardware module section: contains descriptors for all audio hw modules present on the
+# device. Each hw module node is named after the corresponding hw module library base name.
+# For instance, "primary" corresponds to audio.primary.<device>.so.
+# The "primary" module is mandatory and must include at least one output with
+# AUDIO_OUTPUT_FLAG_PRIMARY flag.
+# Each module descriptor contains one or more output profile descriptors and zero or more
+# input profile descriptors. Each profile lists all the parameters supported by a given output
+# or input stream category.
+# The "channel_masks", "formats", "devices" and "flags" are specified using strings corresponding
+# to enums in audio.h and audio_policy.h. They are concatenated by use of "|" without space or "\n".
+
+audio_hw_modules {
+  primary {
+    outputs {
+      primary {
+        sampling_rates 44100
+        channel_masks AUDIO_CHANNEL_OUT_STEREO
+        formats AUDIO_FORMAT_PCM_16_BIT
+        devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_AUX_DIGITAL|AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET
+        flags AUDIO_OUTPUT_FLAG_PRIMARY
+      }
+      hdmi {
+        sampling_rates 44100|48000
+        channel_masks dynamic
+        formats AUDIO_FORMAT_PCM_16_BIT
+        devices AUDIO_DEVICE_OUT_AUX_DIGITAL
+        flags AUDIO_OUTPUT_FLAG_DIRECT
+      }
+    }
+    inputs {
+      primary {
+        sampling_rates 8000|11025|16000|22050|24000|32000|44100|48000
+        channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO|AUDIO_CHANNEL_IN_FRONT_BACK
+        formats AUDIO_FORMAT_PCM_16_BIT
+        devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_BACK_MIC
+      }
+    }
+  }
+  a2dp {
+    outputs {
+      a2dp {
+        sampling_rates 44100
+        channel_masks AUDIO_CHANNEL_OUT_STEREO
+        formats AUDIO_FORMAT_PCM_16_BIT
+        devices AUDIO_DEVICE_OUT_ALL_A2DP
+      }
+    }
+  }
+  usb {
+    outputs {
+      usb_accessory {
+        sampling_rates 44100
+        channel_masks AUDIO_CHANNEL_OUT_STEREO
+        formats AUDIO_FORMAT_PCM_16_BIT
+        devices AUDIO_DEVICE_OUT_USB_ACCESSORY
+      }
+      usb_device {
+        sampling_rates 44100
+        channel_masks AUDIO_CHANNEL_OUT_STEREO
+        formats AUDIO_FORMAT_PCM_16_BIT
+        devices AUDIO_DEVICE_OUT_USB_DEVICE
+      }
+    }
+  }
+}
diff --git a/prebuilt/V4A/lib/soundfx/libaudiopreprocessing.so b/prebuilt/V4A/lib/soundfx/libaudiopreprocessing.so
new file mode 100644
index 0000000..31ea881
--- /dev/null
+++ b/prebuilt/V4A/lib/soundfx/libaudiopreprocessing.so
Binary files differ
diff --git a/prebuilt/V4A/lib/soundfx/libbundlewrapper.so b/prebuilt/V4A/lib/soundfx/libbundlewrapper.so
new file mode 100644
index 0000000..1559009
--- /dev/null
+++ b/prebuilt/V4A/lib/soundfx/libbundlewrapper.so
Binary files differ
diff --git a/prebuilt/V4A/lib/soundfx/libdownmix.so b/prebuilt/V4A/lib/soundfx/libdownmix.so
new file mode 100644
index 0000000..d481dd7
--- /dev/null
+++ b/prebuilt/V4A/lib/soundfx/libdownmix.so
Binary files differ
diff --git a/prebuilt/V4A/lib/soundfx/libeffectproxy.so b/prebuilt/V4A/lib/soundfx/libeffectproxy.so
new file mode 100644
index 0000000..1560222
--- /dev/null
+++ b/prebuilt/V4A/lib/soundfx/libeffectproxy.so
Binary files differ
diff --git a/prebuilt/V4A/lib/soundfx/libfmas.so b/prebuilt/V4A/lib/soundfx/libfmas.so
new file mode 100644
index 0000000..d19e752
--- /dev/null
+++ b/prebuilt/V4A/lib/soundfx/libfmas.so
Binary files differ
diff --git a/prebuilt/V4A/lib/soundfx/libldnhncr.so b/prebuilt/V4A/lib/soundfx/libldnhncr.so
new file mode 100644
index 0000000..7557d65
--- /dev/null
+++ b/prebuilt/V4A/lib/soundfx/libldnhncr.so
Binary files differ
diff --git a/prebuilt/V4A/lib/soundfx/libqcomvoiceprocessing.so b/prebuilt/V4A/lib/soundfx/libqcomvoiceprocessing.so
new file mode 100644
index 0000000..dd79843
--- /dev/null
+++ b/prebuilt/V4A/lib/soundfx/libqcomvoiceprocessing.so
Binary files differ
diff --git a/prebuilt/V4A/lib/soundfx/libreverbwrapper.so b/prebuilt/V4A/lib/soundfx/libreverbwrapper.so
new file mode 100644
index 0000000..e8b897f
--- /dev/null
+++ b/prebuilt/V4A/lib/soundfx/libreverbwrapper.so
Binary files differ
diff --git a/prebuilt/V4A/lib/soundfx/libv4a_fx_ics.so b/prebuilt/V4A/lib/soundfx/libv4a_fx_ics.so
new file mode 100644
index 0000000..a5968e1
--- /dev/null
+++ b/prebuilt/V4A/lib/soundfx/libv4a_fx_ics.so
Binary files differ
diff --git a/prebuilt/V4A/lib/soundfx/libvisualizer.so b/prebuilt/V4A/lib/soundfx/libvisualizer.so
new file mode 100755
index 0000000..7859e31
--- /dev/null
+++ b/prebuilt/V4A/lib/soundfx/libvisualizer.so
Binary files differ
diff --git a/prebuilt/V4A/priv-app/ViPER4Android/ViPER4Android.apk b/prebuilt/V4A/priv-app/ViPER4Android/ViPER4Android.apk
new file mode 100644
index 0000000..31a7ae8
--- /dev/null
+++ b/prebuilt/V4A/priv-app/ViPER4Android/ViPER4Android.apk
Binary files differ
diff --git a/prebuilt/V4A/vendor/etc/audio_effects.conf b/prebuilt/V4A/vendor/etc/audio_effects.conf
new file mode 100644
index 0000000..587e2cd
--- /dev/null
+++ b/prebuilt/V4A/vendor/etc/audio_effects.conf
@@ -0,0 +1,149 @@
+# List of effect libraries to load. Each library element must contain a "path" element
+# giving the full path of the library .so file.
+#    libraries {
+#        <lib name> {
+#          path <lib path>
+#        }
+#    }
+libraries {
+  v4a_fx {
+    path /system/lib/soundfx/libv4a_fx_ics.so
+  }
+  bundle {
+    path /system/lib/soundfx/libv4a_fx_ics.so
+  }
+  reverb {
+    path /system/lib/soundfx/libv4a_fx_ics.so
+  }
+  visualizer {
+    path /system/lib/soundfx/libvisualizer.so
+  }
+  downmix {
+    path /system/lib/soundfx/libv4a_fx_ics.so
+  }
+}
+
+# Default pre-processing library. Add to audio_effect.conf "libraries" section if
+# audio HAL implements support for default software audio pre-processing effects
+#
+#  pre_processing {
+#    path /system/lib/soundfx/libv4a_fx_ics.so
+#  }
+
+# list of effects to load. Each effect element must contain a "library" and a "uuid" element.
+# The value of the "library" element must correspond to the name of one library element in the
+# "libraries" element.
+# The name of the effect element is indicative, only the value of the "uuid" element
+# designates the effect.
+# The uuid is the implementation specific UUID as specified by the effect vendor. This is not the
+# generic effect type UUID.
+#    effects {
+#        <fx name> {
+#            library <lib name>
+#            uuid <effect uuid>
+#        }
+#        ...
+#    }
+
+effects {
+  v4a_standard_fx {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+  bassboost {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+  virtualizer {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+  equalizer {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+  volume {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+  reverb_env_aux {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+  reverb_env_ins {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+  reverb_pre_aux {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+  reverb_pre_ins {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+  visualizer {
+    library visualizer
+    uuid d069d9e0-8329-11df-9168-0002a5d5c51b
+  }
+  downmix {
+    library v4a_fx
+    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+  }
+}
+
+# Default pre-processing effects. Add to audio_effect.conf "effects" section if
+# audio HAL implements support for them.
+#
+#  agc {
+#    library v4a_fx
+#    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b   
+#  }
+#  aec {
+#    library v4a_fx
+#    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+#  }
+#  ns {
+#    library v4a_fx
+#    uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
+#  }
+
+# Audio preprocessor configurations.
+# The pre processor configuration consists in a list of elements each describing
+# pre processor settings for a given input source. Valid input source names are:
+# "mic", "camcorder", "voice_recognition", "voice_communication"
+# Each input source element contains a list of effects elements. The name of the effect
+# element must be the name of one of the effects in the "effects" list of the file.
+# Each effect element may optionally contain a list of parameters and their
+# default value to apply when the pre processor effect is created.
+# A parameter is defined by a "param" element and a "value" element. Each of these elements
+# consists in one or more elements specifying a type followed by a value.
+# The types defined are: "int", "short", "float", "bool" and "string"
+# When both "param" and "value" are a single int, a simple form is allowed where just
+# the param and value pair is present in the parameter description
+#    pre_processing {
+#        <input source name> {
+#            <fx name> {
+#                <param 1 name> {
+#                    param {
+#                        int|short|float|bool|string <value>
+#                        [ int|short|float|bool|string <value> ]
+#                        ...
+#                    }
+#                    value {
+#                        int|short|float|bool|string <value>
+#                        [ int|short|float|bool|string <value> ]
+#                        ...
+#                    }
+#                }
+#                <param 2 name > {<param> <value>}
+#                ...
+#            }
+#            ...
+#        }
+#        ...
+#    }
+
+#
+# TODO: add default audio pre processor configurations after debug and tuning phase
+#
diff --git a/prebuilt/common/Android.mk b/prebuilt/common/Android.mk
new file mode 100644
index 0000000..f15b178
--- /dev/null
+++ b/prebuilt/common/Android.mk
@@ -0,0 +1,10 @@
+LOCAL_PATH := $(call my-dir)
+
+# a wrapper for curl which provides wget syntax, for compatibility
+include $(CLEAR_VARS)
+LOCAL_MODULE := wget
+LOCAL_SRC_FILES := bin/wget
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
+include $(BUILD_PREBUILT)
diff --git a/prebuilt/common/bin/50-slim.sh b/prebuilt/common/bin/50-bliss.sh
similarity index 85%
rename from prebuilt/common/bin/50-slim.sh
rename to prebuilt/common/bin/50-bliss.sh
index 251981c..0da6232 100755
--- a/prebuilt/common/bin/50-slim.sh
+++ b/prebuilt/common/bin/50-bliss.sh
@@ -1,7 +1,7 @@
 #!/sbin/sh
 # 
-# /system/addon.d/50-slim.sh
-# During a Slim upgrade, this script backs up /system/etc/hosts,
+# /system/addon.d/50-bliss.sh
+# During a Bliss upgrade, this script backs up /system/etc/hosts,
 # /system is formatted and reinstalled, then the file is restored.
 #
 
diff --git a/prebuilt/common/bin/backuptool.functions b/prebuilt/common/bin/backuptool.functions
index fe91f1f..9e9c756 100644
--- a/prebuilt/common/bin/backuptool.functions
+++ b/prebuilt/common/bin/backuptool.functions
@@ -5,7 +5,7 @@
 
 export C=/tmp/backupdir
 export S=/system
-export V=5.1
+export V=5
 
 backup_file() {
   if [ -e "$1" ]; then
diff --git a/prebuilt/common/bin/backuptool.sh b/prebuilt/common/bin/backuptool.sh
index fcbe8fd..c025c82 100755
--- a/prebuilt/common/bin/backuptool.sh
+++ b/prebuilt/common/bin/backuptool.sh
@@ -5,27 +5,35 @@
 
 export C=/tmp/backupdir
 export S=/system
-export V=Slim-5.1
+export V=5
 
 # Scripts in /system/addon.d expect to find backuptool.functions in /tmp
 cp -f /tmp/install/bin/backuptool.functions /tmp
 
 # Preserve /system/addon.d in /tmp/addon.d
 preserve_addon_d() {
-  mkdir -p /tmp/addon.d/
-  cp -a /system/addon.d/* /tmp/addon.d/
-  chmod 755 /tmp/addon.d/*.sh
+  if [ -d /system/addon.d/ ]; then
+    mkdir -p /tmp/addon.d/
+    cp -a /system/addon.d/* /tmp/addon.d/
+    chmod 755 /tmp/addon.d/*.sh
+  fi
 }
 
-# Restore /system/addon.d in /tmp/addon.d
+# Restore /system/addon.d from /tmp/addon.d
 restore_addon_d() {
-  cp -a /tmp/addon.d/* /system/addon.d/
-  rm -rf /tmp/addon.d/
+  if [ -d /tmp/addon.d/ ]; then
+    cp -a /tmp/addon.d/* /system/addon.d/
+    rm -rf /tmp/addon.d/
+  fi
 }
 
 # Proceed only if /system is the expected major and minor version
 check_prereq() {
-if ( ! grep -q "^ro.slim.version=$V.*" /system/build.prop ); then
+# If there is no build.prop file the partition is probably empty.
+if [ ! -r /system/build.prop ]; then
+    return 0
+fi
+if ( ! grep -q "^ro.bliss.display.version=$V.*" /system/build.prop ); then
   echo "Not backing up files from incompatible version: $V"
   return 0
 fi
@@ -37,7 +45,7 @@
       ## Discard any known bad backup scripts
       cd /$1/addon.d/
       for f in *sh; do
-          s=$(md5sum $f | awk {'print $1'})
+          s=$(md5sum $f | cut -c-32)
           grep -q $s /system/addon.d/blacklist && rm -f $f
       done
   fi
@@ -49,7 +57,7 @@
       ## forcefully keep any version-independent stuff
       cd /$1/addon.d/
       for f in *sh; do
-          s=$(md5sum $f | awk {'print $1'})
+          s=$(md5sum $f | cut -c-32)
           grep -q $s /system/addon.d/whitelist
           if [ $? -eq 0 ]; then
               found=1
@@ -63,9 +71,11 @@
 
 # Execute /system/addon.d/*.sh scripts with $1 parameter
 run_stage() {
-for script in $(find /tmp/addon.d/ -name '*.sh' |sort -n); do
-  $script $1
-done
+if [ -d /tmp/addon.d/ ]; then
+  for script in $(find /tmp/addon.d/ -name '*.sh' |sort -n); do
+    $script $1
+  done
+fi
 }
 
 case "$1" in
diff --git a/prebuilt/common/bin/otasigcheck.sh b/prebuilt/common/bin/otasigcheck.sh
old mode 100644
new mode 100755
index 7bf1228..ad7f3a3
--- a/prebuilt/common/bin/otasigcheck.sh
+++ b/prebuilt/common/bin/otasigcheck.sh
@@ -9,6 +9,12 @@
   exit 0
 fi
 
+grep -q "Command:.*\"--headless\"" /tmp/recovery.log
+if [ $? -eq 0 ]; then
+  echo "Headless mode install; skipping signature check..."
+  exit 0
+fi
+
 if [ -f /data/system/packages.xml -a -f /tmp/releasekey ]; then
   relCert=$(grep -A3 'package name="com.android.htmlviewer"' /data/system/packages.xml  | grep "cert index" | head -n 1 | sed -e 's|.*"\([[:digit:]][[:digit:]]*\)".*|\1|g')
 
diff --git a/prebuilt/common/bin/wget b/prebuilt/common/bin/wget
new file mode 100755
index 0000000..1d04de5
--- /dev/null
+++ b/prebuilt/common/bin/wget
@@ -0,0 +1,184 @@
+#!/system/bin/sh
+# wget-curl, a curl wrapper acting as a wget drop-in replacement - version git-HEAD
+# Usage: wget [wget args] [i need to fill this in later] <url(s)>
+# Download all URLs given using curl, but using wget's options.
+#
+#
+# End of help.
+# Copyright (c) 2015 Kylie McClain <somasis@exherbo.org>
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# End of copyright.
+#
+
+set -o pipefail
+shopt -u shift_verbose >/dev/null 2>&1
+
+help() {
+    sed -n '/^#/!d;s/^# //;s/^#//;3,${p;}' "$0" | \
+        while IFS= read help_line;do
+            if [[ "$help_line" == "End of help." ]];then
+                exit 0
+            else
+                printf "%s\n" "$help_line"
+            fi
+        done
+    exit 0
+}
+
+version() {
+    sed 's/^# //;s/, .* - version / /;2q;$!d' "$0"
+    copyright
+    exit 0
+}
+
+copyright() {
+    sed -n '/^#/!d;s/^# //;s/^#//;/End of help./,${p;}' "$0" | \
+        while IFS= read copyright_line;do
+            if [[ "$copyright_line" == "End of help." ]];then
+                true
+            elif [[ "$copyright_line" == "End of copyright." ]];then
+                break
+            else
+                printf '%s\n' "$copyright_line"
+            fi
+        done
+}
+
+stderr() {
+    printf "$@" >&2
+}
+
+error() {
+    stderr "$0: $1\n"
+    exit "$2"
+}
+
+invalid_arg() {
+    error "invalid option -- '$1'" 2
+}
+
+append_opt() {
+    for opt in $@;do
+        CURL_OPTS="${CURL_OPTS} ${opt}"
+    done
+}
+
+curl() {
+    eval "command curl $@ ${CURL_RAW}"
+}
+
+append_raw_arg() {
+    CURL_RAW="$CURL_RAW $@"
+}
+
+has_opt() { # exit 0 if CURL_OPTS has arg, non-zero if doesn't
+    if [[ "$CURL_OPTS" == *" $1"* ]];then
+        return 0
+    else
+        return 1
+    fi
+}
+
+reexec_without() { # download afterwards without $1 in OPTS
+    reexec_args_without="$reexec_args_without $@"
+    reexec=1
+}
+
+reexec_only() {
+    for arg in $@;do
+        CURL_OPTS_REEXEC_ONLY="${CURL_OPTS_REEXEC_ONLY} $arg"
+    done
+}
+
+print_url() {
+    has_opt -s || printf "%s\n" "$1"
+}
+
+# 46ABDFHIKLNOPQRSTUVXabcdhiklm nH nc nd np nv opqrtvwx
+while getopts ':46ABDFHIKLNO:PQRST:U:VXa:bcdhiklmopqrtvwx' argument "$@";do
+    case "$argument" in
+        # a lot of these are noop right now because they are wget mirror args
+        # which curl doesn't really do, and i am not sure if i should implement them
+        4)  append_opt -4       ;;
+        6)  append_opt -6       ;;
+        A)  true                ;; # probably can't implement this easily...
+        B)  true                ;;
+        D)  true                ;;
+        E)  true                ;;
+        F)  true                ;; # curl doesn't care what the input is
+        H)  true                ;;
+        I)  true                ;;
+        K)  true                ;;
+        L)  true                ;;
+        N)  true                ;;
+        O)  append_opt "-o $OPTARG"                 ;;
+        P)  true                ;;
+        Q)  true                ;;
+        R)  true                ;;
+        S)  append_opt -I;reexec_without -I -s  ;;
+        T)  append_opt "-m $OPTARG"                 ;;
+        U)  append_opt "--user-agent \"$OPTARG\""   ;;
+        V)  version; curl --version; exit 0         ;;
+        X)  true                                    ;;
+        a)  append_raw_arg "2>&1 | tee -a $OPTARG"  ;;
+        b)
+            wget_log="wget-log"
+            i=1
+            while [[ -f "${wget_log}" ]];do
+                # if that exists, increment until we find something that doesn't
+                i=$(($i+1))
+                wget_log="wget-log.${i}"
+            done
+            append_raw_arg ">\"$wget_log\" 2>&1 &"
+            printf "Continuing in background, pid %s.\nOutput will be written to '$wget_log'.\n" "$$"
+        ;;
+        c)  append_opt "-C -"                       ;;
+        d)  append_opt "-v"                         ;;
+        e)  true                                    ;;
+        h)  help                                    ;;
+        i)
+            [[ ! -f "$OPTARG" ]] && error "$OPTARG does not exist" 3
+            for url in $(<"$OPTARG");do
+                URLS=( ${URLS[@]} "$url" )
+            done
+        ;;
+        q)  append_opt "-s"                         ;;
+    esac
+    shift $(($OPTIND-1))
+done
+
+# set wget default equivilants
+append_opt -L # follow redirects
+append_opt -# # progress bar
+
+if [[ -z "${URLS[@]}" ]];then
+    URLS=( ${@} )
+fi
+
+for url in ${URLS[@]};do
+    url_file=${url##*/}
+    if [[ "$url" == "$url_file" ]];then
+        # has no remote file name and -o is not in CURL_OPTS... assume index.html
+        has_opt -o || append_opt "-o index.html"
+    fi
+
+    eval "print_url '$url';curl ${CURL_OPTS} -- $url"
+    if [[ "$reexec" ]];then
+        for reexec_arg in ${reexec_args_without};do
+            CURL_OPTS_REEXEC=$(echo "${CURL_OPTS_REEXEC:-$CURL_OPTS}" | sed "s# $reexec_arg##")
+        done
+        eval "print_url '$url';curl ${CURL_OPTS_REEXEC} ${CURL_OPTS_REEXEC_ONLY} -- $url"
+    fi
+done
diff --git a/prebuilt/common/bootanimation/1080.zip b/prebuilt/common/bootanimation/1080.zip
index cd3e293..1d21a75 100644
--- a/prebuilt/common/bootanimation/1080.zip
+++ b/prebuilt/common/bootanimation/1080.zip
Binary files differ
diff --git a/prebuilt/common/bootanimation/1200.zip b/prebuilt/common/bootanimation/1200.zip
index d865e8d..1eff046 100644
--- a/prebuilt/common/bootanimation/1200.zip
+++ b/prebuilt/common/bootanimation/1200.zip
Binary files differ
diff --git a/prebuilt/common/bootanimation/1440.zip b/prebuilt/common/bootanimation/1440.zip
new file mode 100644
index 0000000..8ab8468
--- /dev/null
+++ b/prebuilt/common/bootanimation/1440.zip
Binary files differ
diff --git a/prebuilt/common/bootanimation/1600.zip b/prebuilt/common/bootanimation/1600.zip
index 5a758ed..282e339 100644
--- a/prebuilt/common/bootanimation/1600.zip
+++ b/prebuilt/common/bootanimation/1600.zip
Binary files differ
diff --git a/prebuilt/common/bootanimation/480.zip b/prebuilt/common/bootanimation/480.zip
deleted file mode 100644
index a6ca2e6..0000000
--- a/prebuilt/common/bootanimation/480.zip
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/bootanimation/600.zip b/prebuilt/common/bootanimation/600.zip
index 15e8645..c42c8ce 100644
--- a/prebuilt/common/bootanimation/600.zip
+++ b/prebuilt/common/bootanimation/600.zip
Binary files differ
diff --git a/prebuilt/common/bootanimation/720.zip b/prebuilt/common/bootanimation/720.zip
deleted file mode 100644
index f9a2a9f..0000000
--- a/prebuilt/common/bootanimation/720.zip
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/bootanimation/800.zip b/prebuilt/common/bootanimation/800.zip
index 49b5729..7cc378d 100644
--- a/prebuilt/common/bootanimation/800.zip
+++ b/prebuilt/common/bootanimation/800.zip
Binary files differ
diff --git a/prebuilt/common/bootanimation/halfres/1080.zip b/prebuilt/common/bootanimation/halfres/1080.zip
index 5c2cc75..f39f45b 100644
--- a/prebuilt/common/bootanimation/halfres/1080.zip
+++ b/prebuilt/common/bootanimation/halfres/1080.zip
Binary files differ
diff --git a/prebuilt/common/bootanimation/halfres/1200.zip b/prebuilt/common/bootanimation/halfres/1200.zip
index 2531d6e..7d9a090 100644
--- a/prebuilt/common/bootanimation/halfres/1200.zip
+++ b/prebuilt/common/bootanimation/halfres/1200.zip
Binary files differ
diff --git a/prebuilt/common/bootanimation/halfres/1440.zip b/prebuilt/common/bootanimation/halfres/1440.zip
new file mode 100644
index 0000000..e591517
--- /dev/null
+++ b/prebuilt/common/bootanimation/halfres/1440.zip
Binary files differ
diff --git a/prebuilt/common/bootanimation/halfres/1600.zip b/prebuilt/common/bootanimation/halfres/1600.zip
index 8e78051..c1a634d 100644
--- a/prebuilt/common/bootanimation/halfres/1600.zip
+++ b/prebuilt/common/bootanimation/halfres/1600.zip
Binary files differ
diff --git a/prebuilt/common/bootanimation/halfres/480.zip b/prebuilt/common/bootanimation/halfres/480.zip
deleted file mode 100644
index 5e73c08..0000000
--- a/prebuilt/common/bootanimation/halfres/480.zip
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/bootanimation/halfres/600.zip b/prebuilt/common/bootanimation/halfres/600.zip
index f85e194..7c4fca6 100644
--- a/prebuilt/common/bootanimation/halfres/600.zip
+++ b/prebuilt/common/bootanimation/halfres/600.zip
Binary files differ
diff --git a/prebuilt/common/bootanimation/halfres/720.zip b/prebuilt/common/bootanimation/halfres/720.zip
deleted file mode 100644
index a02f843..0000000
--- a/prebuilt/common/bootanimation/halfres/720.zip
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/bootanimation/halfres/800.zip b/prebuilt/common/bootanimation/halfres/800.zip
index 7255cb0..ff73991e 100644
--- a/prebuilt/common/bootanimation/halfres/800.zip
+++ b/prebuilt/common/bootanimation/halfres/800.zip
Binary files differ
diff --git a/prebuilt/common/bootanimation/halfres/generate-half-res-anims.sh b/prebuilt/common/bootanimation/halfres/generate-half-res-anims.sh
index 730f535..20379f0 100755
--- a/prebuilt/common/bootanimation/halfres/generate-half-res-anims.sh
+++ b/prebuilt/common/bootanimation/halfres/generate-half-res-anims.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-HALF_RES_RESOLUTIONS="480 600 720 800 1080 1200 1600"
+HALF_RES_RESOLUTIONS="480 600 720 800 1080 1200 1440 1600"
 
 for i in $HALF_RES_RESOLUTIONS; do
 	rm -f $i.zip
diff --git a/prebuilt/common/etc/init.d/00banner b/prebuilt/common/etc/init.d/00banner
index a7b28fd..51164fd 100644
--- a/prebuilt/common/etc/init.d/00banner
+++ b/prebuilt/common/etc/init.d/00banner
@@ -2,6 +2,6 @@
 #
 # Print startup info
 #
-L="log -p i -t slim"
+L="log -p i -t bliss"
 
-$L "Welcome to Android `getprop ro.build.version.release` / SlimRoms `getprop ro.slim.version`";
+$L "Welcome to Android `getprop ro.build.version.release` / BlissRoms `getprop ro.bliss.version`";
diff --git a/prebuilt/common/etc/init.d/90userinit b/prebuilt/common/etc/init.d/90userinit
index e8e6de0..5e099e8 100755
--- a/prebuilt/common/etc/init.d/90userinit
+++ b/prebuilt/common/etc/init.d/90userinit
@@ -5,11 +5,11 @@
 then
    log -p i -t userinit "Executing /data/local/userinit.sh";
    logwrapper /system/bin/sh /data/local/userinit.sh;
-   setprop cm.userinit.active 1;
+   setprop bliss.userinit.active 1;
 fi;
 
 if [ -d /data/local/userinit.d ];
 then
-   logwrapper busybox run-parts /data/local/userinit.d;
-   setprop cm.userinit.active 1;
+   logwrapper run-parts /data/local/userinit.d;
+   setprop bliss.userinit.active 1;
 fi;
diff --git a/prebuilt/common/media/audio/alarms/CyanAlarm.ogg b/prebuilt/common/media/audio/alarms/CyanAlarm.ogg
new file mode 100644
index 0000000..6755bb8
--- /dev/null
+++ b/prebuilt/common/media/audio/alarms/CyanAlarm.ogg
Binary files differ
diff --git a/prebuilt/common/media/audio/alarms/NuclearLaunch.ogg b/prebuilt/common/media/audio/alarms/NuclearLaunch.ogg
new file mode 100644
index 0000000..00a4a83
--- /dev/null
+++ b/prebuilt/common/media/audio/alarms/NuclearLaunch.ogg
Binary files differ
diff --git a/prebuilt/common/media/audio/notifications/CyanDoink.ogg b/prebuilt/common/media/audio/notifications/CyanDoink.ogg
new file mode 100644
index 0000000..e8135ce
--- /dev/null
+++ b/prebuilt/common/media/audio/notifications/CyanDoink.ogg
Binary files differ
diff --git a/prebuilt/common/media/audio/notifications/CyanMail.ogg b/prebuilt/common/media/audio/notifications/CyanMail.ogg
new file mode 100644
index 0000000..9b6d8c1
--- /dev/null
+++ b/prebuilt/common/media/audio/notifications/CyanMail.ogg
Binary files differ
diff --git a/prebuilt/common/media/audio/notifications/CyanMessage.ogg b/prebuilt/common/media/audio/notifications/CyanMessage.ogg
new file mode 100644
index 0000000..415bfdf
--- /dev/null
+++ b/prebuilt/common/media/audio/notifications/CyanMessage.ogg
Binary files differ
diff --git a/prebuilt/common/media/audio/notifications/Laser.ogg b/prebuilt/common/media/audio/notifications/Laser.ogg
new file mode 100644
index 0000000..2448c52
--- /dev/null
+++ b/prebuilt/common/media/audio/notifications/Laser.ogg
Binary files differ
diff --git a/prebuilt/common/media/audio/notifications/Naughty.ogg b/prebuilt/common/media/audio/notifications/Naughty.ogg
new file mode 100644
index 0000000..77f15a8
--- /dev/null
+++ b/prebuilt/common/media/audio/notifications/Naughty.ogg
Binary files differ
diff --git a/prebuilt/common/media/audio/notifications/Pong.ogg b/prebuilt/common/media/audio/notifications/Pong.ogg
new file mode 100644
index 0000000..330d1e7
--- /dev/null
+++ b/prebuilt/common/media/audio/notifications/Pong.ogg
Binary files differ
diff --git a/prebuilt/common/media/audio/notifications/Rang.ogg b/prebuilt/common/media/audio/notifications/Rang.ogg
new file mode 100644
index 0000000..2531b3a
--- /dev/null
+++ b/prebuilt/common/media/audio/notifications/Rang.ogg
Binary files differ
diff --git a/prebuilt/common/media/audio/notifications/Stone.ogg b/prebuilt/common/media/audio/notifications/Stone.ogg
new file mode 100644
index 0000000..4f9f239
--- /dev/null
+++ b/prebuilt/common/media/audio/notifications/Stone.ogg
Binary files differ
diff --git a/prebuilt/common/media/audio/ringtones/Boxbeat.ogg b/prebuilt/common/media/audio/ringtones/Boxbeat.ogg
new file mode 100644
index 0000000..773f478
--- /dev/null
+++ b/prebuilt/common/media/audio/ringtones/Boxbeat.ogg
Binary files differ
diff --git a/prebuilt/common/media/audio/ringtones/CyanTone.ogg b/prebuilt/common/media/audio/ringtones/CyanTone.ogg
new file mode 100644
index 0000000..eea5142
--- /dev/null
+++ b/prebuilt/common/media/audio/ringtones/CyanTone.ogg
Binary files differ
diff --git a/prebuilt/common/media/audio/ringtones/Highscore.ogg b/prebuilt/common/media/audio/ringtones/Highscore.ogg
new file mode 100644
index 0000000..fe07c89
--- /dev/null
+++ b/prebuilt/common/media/audio/ringtones/Highscore.ogg
Binary files differ
diff --git a/prebuilt/common/media/audio/ringtones/Lyon.ogg b/prebuilt/common/media/audio/ringtones/Lyon.ogg
new file mode 100644
index 0000000..3e4c925
--- /dev/null
+++ b/prebuilt/common/media/audio/ringtones/Lyon.ogg
Binary files differ
diff --git a/prebuilt/common/media/audio/ringtones/Rockin.ogg b/prebuilt/common/media/audio/ringtones/Rockin.ogg
new file mode 100644
index 0000000..d48554d
--- /dev/null
+++ b/prebuilt/common/media/audio/ringtones/Rockin.ogg
Binary files differ
diff --git a/prebuilt/common/media/audio/ringtones/Sheep.mp3 b/prebuilt/common/media/audio/ringtones/Sheep.mp3
new file mode 100644
index 0000000..f3f84a9
--- /dev/null
+++ b/prebuilt/common/media/audio/ringtones/Sheep.mp3
Binary files differ
diff --git a/prebuilt/common/media/audio/ringtones/Yukaay.ogg b/prebuilt/common/media/audio/ringtones/Yukaay.ogg
new file mode 100644
index 0000000..a4c8820
--- /dev/null
+++ b/prebuilt/common/media/audio/ringtones/Yukaay.ogg
Binary files differ