diff --git a/documentation.list b/documentation.list new file mode 100644 index 0000000..e69de29 diff --git a/droid-configs-device b/droid-configs-device index 993b088..15e902f 160000 --- a/droid-configs-device +++ b/droid-configs-device @@ -1 +1 @@ -Subproject commit 993b088d38b9d930765270d08ab7ad9f97be81be +Subproject commit 15e902f6c16dd1ffbb3324a290890ec873c53851 diff --git a/installroot/etc/acdbdata b/installroot/etc/acdbdata new file mode 120000 index 0000000..c2ca43a --- /dev/null +++ b/installroot/etc/acdbdata @@ -0,0 +1 @@ +/system/etc/acdbdata \ No newline at end of file diff --git a/installroot/etc/audio_platform_info.xml b/installroot/etc/audio_platform_info.xml new file mode 120000 index 0000000..256ce33 --- /dev/null +++ b/installroot/etc/audio_platform_info.xml @@ -0,0 +1 @@ +/system/etc/audio_platform_info.xml \ No newline at end of file diff --git a/installroot/etc/audio_policy.xm b/installroot/etc/audio_policy.xm new file mode 120000 index 0000000..f0cacd3 --- /dev/null +++ b/installroot/etc/audio_policy.xm @@ -0,0 +1 @@ +/system/etc/audio_policy.xml \ No newline at end of file diff --git a/installroot/etc/bluetooth/audio.conf b/installroot/etc/bluetooth/audio.conf new file mode 100644 index 0000000..86f89a0 --- /dev/null +++ b/installroot/etc/bluetooth/audio.conf @@ -0,0 +1,63 @@ +# Configuration file for the audio service + +# This section contains options which are not specific to any +# particular interface +[General] +#Enable=Gateway +# Switch to master role for incoming connections (defaults to true) +#Master=true + +# If we want to disable support for specific services +# Defaults to supporting all implemented services +#Disable=Gateway,Source,Socket + +# SCO routing. Either PCM or HCI (in which case audio is routed to/from ALSA) +# Defaults to HCI +#SCORouting=PCM + +# Automatically connect both A2DP and HFP/HSP profiles for incoming +# connections. Some headsets that support both profiles will only connect the +# other one automatically so the default setting of true is usually a good +# idea. +#AutoConnect=true + +# Headset interface specific options (i.e. options which affect how the audio +# service interacts with remote headset devices) +[Headset] + +# Set to true to support HFP, false means only HSP is supported +# Defaults to true +HFP=true + +# Maximum number of connected HSP/HFP devices per adapter. Defaults to 1 +MaxConnected=1 + +# Set to true to enable use of fast connectable mode (faster page scanning) +# for HFP when incoming call starts. Default settings are restored after +# call is answered or rejected. Page scan interval is much shorter and page +# scan type changed to interlaced. Such allows faster connection initiated +# by a headset. +FastConnectable=false + +# Just an example of potential config options for the other interfaces +#[A2DP] +#SBCSources=1 +#MPEG12Sources=0 + +# Limit features advertised to headsets +[Telephony] +Disable=ConferenceCalling,InBandRingtone,EnhancedCallControl + +# Where to retrieve battery charge info from +BatteryInfo=Statefs + +# Where to retrieve last dialed number from +LastDialedNumber=/home/nemo/.cache/last-dialed + +# Configure AVRCP features: TG category 1, CT disabled +[AVRCP] +EnableTarget=true +TargetVersion=0x0100 +DisableTargetFeatures=Category2,Category3,Category4,PlayerSettings + +EnableControl=false diff --git a/installroot/etc/bluetooth/input.conf b/installroot/etc/bluetooth/input.conf new file mode 100644 index 0000000..abfb64f --- /dev/null +++ b/installroot/etc/bluetooth/input.conf @@ -0,0 +1,9 @@ +# Configuration file for the input service + +# This section contains options which are not specific to any +# particular interface +[General] + +# Set idle timeout (in minutes) before the connection will +# be disconnect (defaults to 0 for no timeout) +#IdleTimeout=30 diff --git a/installroot/etc/bluetooth/jolla.conf b/installroot/etc/bluetooth/jolla.conf new file mode 100644 index 0000000..403c3d6 --- /dev/null +++ b/installroot/etc/bluetooth/jolla.conf @@ -0,0 +1,5 @@ +[General] +Wakelocks=true + +[Security] +DBusAuthorizedGroups=root,privileged diff --git a/installroot/etc/bluetooth/main.conf b/installroot/etc/bluetooth/main.conf new file mode 100644 index 0000000..e7b9fa2 --- /dev/null +++ b/installroot/etc/bluetooth/main.conf @@ -0,0 +1,65 @@ +[General] + +# List of plugins that should not be loaded on bluetoothd startup +#DisablePlugins = network,input + +# Default adaper name +# %h - substituted for hostname +# %d - substituted for adapter id +Name= + +# Default device class. Only the major and minor device class bits are +# considered. +# Phone, smart-phone +Class = 0x00020c + +# How long to stay in discoverable mode before going back to non-discoverable +# The value is in seconds. Default is 180, i.e. 3 minutes. +# 0 = disable timer, i.e. stay discoverable forever +DiscoverableTimeout = 0 + +# How long to stay in pairable mode before going back to non-discoverable +# The value is in seconds. Default is 0. +# 0 = disable timer, i.e. stay pairable forever +PairableTimeout = 0 + +# Use some other page timeout than the controller default one +# which is 16384 (10 seconds). +PageTimeout = 8192 + +# Automatic connection for bonded devices driven by platform/user events. +# If a platform plugin uses this mechanism, automatic connections will be +# enabled during the interval defined below. Initially, this feature +# intends to be used to establish connections to ATT channels. +AutoConnectTimeout = 60 + +# What value should be assumed for the adapter Powered property when +# SetProperty(Powered, ...) hasn't been called yet. Defaults to true +InitiallyPowered = true + +# Remember the previously stored Powered state when initializing adapters +RememberPowered = true + +# Use vendor id source (assigner), vendor, product and version information for +# DID profile support. The values are separated by ":" and assigner, VID, PID +# and version. +# Possible vendor id source values: bluetooth, usb (defaults to usb) +#DeviceID = bluetooth:1234:5678:abcd + +# Do reverse service discovery for previously unknown devices that connect to +# us. This option is really only needed for qualification since the BITE tester +# doesn't like us doing reverse SDP for some test cases (though there could in +# theory be other useful purposes for this too). Defaults to true. +ReverseServiceDiscovery = true + +# Enable name resolving after inquiry. Set it to 'false' if you don't need +# remote devices name and want shorter discovery cycle. Defaults to 'true'. +NameResolving = true + +# Enable runtime persistency of debug link keys. Default is false which +# makes debug link keys valid only for the duration of the connection +# that they were created for. +DebugKeys = false + +# Enable the GATT functionality. Default is false +EnableGatt = false diff --git a/installroot/etc/bluetooth/network.conf b/installroot/etc/bluetooth/network.conf new file mode 100644 index 0000000..5f11639 --- /dev/null +++ b/installroot/etc/bluetooth/network.conf @@ -0,0 +1,6 @@ +# Configuration file for the network service + +[General] + +# Disable link encryption: default=false +#DisableSecurity=true diff --git a/installroot/etc/bluetooth/rfcomm.conf b/installroot/etc/bluetooth/rfcomm.conf new file mode 100644 index 0000000..6179ef7 --- /dev/null +++ b/installroot/etc/bluetooth/rfcomm.conf @@ -0,0 +1,17 @@ +# +# RFCOMM configuration file. +# + +#rfcomm0 { +# # Automatically bind the device at startup +# bind no; +# +# # Bluetooth address of the device +# device 11:22:33:44:55:66; +# +# # RFCOMM channel for the connection +# channel 1; +# +# # Description of the connection +# comment "Example Bluetooth device"; +#} diff --git a/installroot/etc/bluetooth/serial.conf b/installroot/etc/bluetooth/serial.conf new file mode 100644 index 0000000..43ee6af --- /dev/null +++ b/installroot/etc/bluetooth/serial.conf @@ -0,0 +1,10 @@ +# Configuration file for serial + +# There could be multiple proxy sections, the format is [Proxy ] +#[Proxy DUN] + +# UUID for DUN proxy service +#UUID=00001103-0000-1000-8000-00805F9B34FB + +# Address for device node +#Address=/dev/ttyx diff --git a/installroot/etc/dbus-1/system.d/ohm-policy.conf b/installroot/etc/dbus-1/system.d/ohm-policy.conf new file mode 100644 index 0000000..de0bb89 --- /dev/null +++ b/installroot/etc/dbus-1/system.d/ohm-policy.conf @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + diff --git a/installroot/etc/dconf/db/vendor.d/jolla-camera-hw.txt b/installroot/etc/dconf/db/vendor.d/jolla-camera-hw.txt new file mode 100755 index 0000000..5fbe747 --- /dev/null +++ b/installroot/etc/dconf/db/vendor.d/jolla-camera-hw.txt @@ -0,0 +1,55 @@ +[apps/jolla-camera/primary/image] +imageResolution='3264x2448' +videoResolution='1920x1080' +viewfinderResolution='1280x960' +isoValues=[0, 100, 200, 400] +whiteBalanceValues=[0, 3, 2, 6, 5] +focusDistanceValues=[8, 4, 16] +flashValues=[1, 2, 4] +exposureCompensationValues=[4, 2, 0, -2, -4] +imageResolution_4_3='3264x2448' +imageResolution_16_9='1920x1080' +viewfinderResolution_4_3='1280x960' +viewfinderResolution_16_9='1920x1080' +resolutionText_4_3='camera_settings-me-4-3-8m' +resolutionText_16_9='camera_settings-me-16-9-6m' +focusDistance=16 + +[apps/jolla-camera/secondary/image] +imageResolution='1280x960' +videoResolution='1280x720' +viewfinderResolution='1280x960' +isoValues=[0, 100, 200, 400] +whiteBalanceValues=[0, 3, 2, 6, 5] +focusDistanceValues=[4] +flashValues=[2] +exposureCompensationValues=[4, 2, 0, -2, -4] +imageResolution_4_3='1280x960' +imageResolution_16_9='1280x720' +viewfinderResolution_4_3='1280x960' +viewfinderResolution_16_9='1920x1080' +resolutionText_4_3='camera_settings-me-4-3-2m' +resolutionText_16_9='camera_settings-me-16-9-1m' +focusDistance=4 + +[apps/jolla-camera/primary/video] +imageResolution='1920x1080' +videoResolution='1920x1080' +viewfinderResolution='1920x1080' +isoValues=[0, 100, 200, 400] +whiteBalanceValues=[0, 3, 2, 6, 5] +focusDistanceValues=[4, 16] +flashValues=[2] +exposureCompensationValues=[4, 2, 0, -2, -4] +focusDistance=16 + +[apps/jolla-camera/secondary/video] +imageResolution='1280x720' +videoResolution='1280x720' +viewfinderResolution='1920x1080' +isoValues=[0, 100, 200, 400] +whiteBalanceValues=[0, 3, 2, 6, 5] +focusDistanceValues=[4] +flashValues=[2] +exposureCompensationValues=[4, 2, 0, -2, -4] +focusDistance=4 diff --git a/installroot/etc/dconf/db/vendor.d/locks/screen-rotation.txt b/installroot/etc/dconf/db/vendor.d/locks/screen-rotation.txt new file mode 100644 index 0000000..588a764 --- /dev/null +++ b/installroot/etc/dconf/db/vendor.d/locks/screen-rotation.txt @@ -0,0 +1 @@ +/desktop/jolla/components/screen_rotation_angle diff --git a/installroot/etc/dconf/db/vendor.d/locks/silica-configs.txt b/installroot/etc/dconf/db/vendor.d/locks/silica-configs.txt new file mode 100644 index 0000000..45bf40e --- /dev/null +++ b/installroot/etc/dconf/db/vendor.d/locks/silica-configs.txt @@ -0,0 +1,2 @@ +/desktop/sailfish/silica/theme_pixel_ratio +/desktop/sailfish/silica/theme_icon_subdir diff --git a/installroot/etc/dconf/db/vendor.d/screen-rotation.txt b/installroot/etc/dconf/db/vendor.d/screen-rotation.txt new file mode 100644 index 0000000..6bd9d32 --- /dev/null +++ b/installroot/etc/dconf/db/vendor.d/screen-rotation.txt @@ -0,0 +1,2 @@ +[desktop/jolla/components] +screen_rotation_angle=0 diff --git a/installroot/etc/dconf/db/vendor.d/silica-configs.txt b/installroot/etc/dconf/db/vendor.d/silica-configs.txt new file mode 100644 index 0000000..275c35d --- /dev/null +++ b/installroot/etc/dconf/db/vendor.d/silica-configs.txt @@ -0,0 +1,4 @@ +[desktop/sailfish/silica] +theme_pixel_ratio=2.0 +theme_icon_subdir='z2.0' + diff --git a/installroot/etc/gps.conf b/installroot/etc/gps.conf new file mode 120000 index 0000000..8789c9a --- /dev/null +++ b/installroot/etc/gps.conf @@ -0,0 +1 @@ +/system/etc/gps.conf \ No newline at end of file diff --git a/installroot/etc/gst-droid/gstdroidcamsrc-0.conf b/installroot/etc/gst-droid/gstdroidcamsrc-0.conf new file mode 100755 index 0000000..6704e83 --- /dev/null +++ b/installroot/etc/gst-droid/gstdroidcamsrc-0.conf @@ -0,0 +1,113 @@ +# configuration for device 0 + +[flash-mode] +# 0 = GST_PHOTOGRAPHY_FLASH_MODE_AUTO +# 1 = GST_PHOTOGRAPHY_FLASH_MODE_OFF +# 2 = GST_PHOTOGRAPHY_FLASH_MODE_ON +0 = auto +1 = off +2 = on + +[focus-mode] +# 0 = GST_PHOTOGRAPHY_FOCUS_MODE_AUTO +# 1 = GST_PHOTOGRAPHY_FOCUS_MODE_MACRO +# 2 = GST_PHOTOGRAPHY_FOCUS_MODE_PORTRAIT +# 3 = GST_PHOTOGRAPHY_FOCUS_MODE_INFINITY +# 4 = GST_PHOTOGRAPHY_FOCUS_MODE_HYPERFOCAL +# 5 = GST_PHOTOGRAPHY_FOCUS_MODE_EXTENDED +# 6 = GST_PHOTOGRAPHY_FOCUS_MODE_CONTINUOUS_NORMAL +# 7 = GST_PHOTOGRAPHY_FOCUS_MODE_CONTINUOUS_EXTENDED +# 8 = GST_PHOTOGRAPHY_FOCUS_MODE_MANUAL +0 = auto +1 = macro +6 = continuous +7 = continuous + +[white-balance-mode] +# 0 = GST_PHOTOGRAPHY_WB_MODE_AUTO +# 1 = GST_PHOTOGRAPHY_WB_MODE_DAYLIGHT +# 2 = GST_PHOTOGRAPHY_WB_MODE_CLOUDY +# 3 = GST_PHOTOGRAPHY_WB_MODE_SUNSET +# 4 = GST_PHOTOGRAPHY_WB_MODE_TUNGSTEN +# 5 = GST_PHOTOGRAPHY_WB_MODE_FLUORESCENT +# 6 = GST_PHOTOGRAPHY_WB_MODE_MANUAL +# 7 = GST_PHOTOGRAPHY_WB_MODE_WARM_FLUORESCENT +# 8 = GST_PHOTOGRAPHY_WB_MODE_SHADE +0 = auto +1 = daylight +2 = cloudy-daylight +4 = incandescent +5 = fluorescent + +[scene-mode] +# 0 = GST_PHOTOGRAPHY_SCENE_MODE_MANUAL +# 1 = GST_PHOTOGRAPHY_SCENE_MODE_CLOSEUP +# 2 = GST_PHOTOGRAPHY_SCENE_MODE_PORTRAIT +# 3 = GST_PHOTOGRAPHY_SCENE_MODE_LANDSCAPE +# 4 = GST_PHOTOGRAPHY_SCENE_MODE_SPORT +# 5 = GST_PHOTOGRAPHY_SCENE_MODE_NIGHT +# 6 = GST_PHOTOGRAPHY_SCENE_MODE_AUTO +# 7 = GST_PHOTOGRAPHY_SCENE_MODE_ACTION +# 8 = GST_PHOTOGRAPHY_SCENE_MODE_NIGHT_PORTRAIT +# 9 = GST_PHOTOGRAPHY_SCENE_MODE_THEATRE +# 10 = GST_PHOTOGRAPHY_SCENE_MODE_BEACH +# 11 = GST_PHOTOGRAPHY_SCENE_MODE_SNOW +# 12 = GST_PHOTOGRAPHY_SCENE_MODE_SUNSET +# 13 = GST_PHOTOGRAPHY_SCENE_MODE_STEADY_PHOTO +# 14 = GST_PHOTOGRAPHY_SCENE_MODE_FIREWORKS +# 15 = GST_PHOTOGRAPHY_SCENE_MODE_PARTY +# 16 = GST_PHOTOGRAPHY_SCENE_MODE_CANDLELIGHT +# 17 = GST_PHOTOGRAPHY_SCENE_MODE_BARCODE +2 = portrait +3 = landscape +4 = sports +5 = night +6 = auto +7 = action +8 = night-portrait +9 = theatre +10 = beach +11 = snow +12 = sunset +13 = steadyphoto +14 = fireworks +15 = party +16 = candlelight + +[color-tone-mode] +# 0 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_NORMAL +# 1 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_SEPIA +# 2 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_NEGATIVE +# 3 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_GRAYSCALE +# 4 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_NATURAL +# 5 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_VIVID +# 6 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_COLORSWAP +# 7 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_SOLARIZE +# 8 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_OUT_OF_FOCUS +# 9 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKY_BLUE +# 10 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_GRASS_GREEN +# 11 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKIN_WHITEN +# 12 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_POSTERIZE +# 13 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_WHITEBOARD +# 14 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_BLACKBOARD +# 15 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_AQUA +0 = none +1 = sepia +2 = negative +3 = mono +7 = solarize +12 = posterize +13 = whiteboard +14 = blackboard +15 = aqua + +[flicker-mode] +# 0 = GST_PHOTOGRAPHY_FLICKER_REDUCTION_OFF +# 1 = GST_PHOTOGRAPHY_FLICKER_REDUCTION_50HZ +# 2 = GST_PHOTOGRAPHY_FLICKER_REDUCTION_60HZ +# 3 = GST_PHOTOGRAPHY_FLICKER_REDUCTION_AUTO +0 = off +1 = 50hz +2 = 60hz +3 = auto + diff --git a/installroot/etc/gst-droid/gstdroidcamsrc-1.conf b/installroot/etc/gst-droid/gstdroidcamsrc-1.conf new file mode 100755 index 0000000..87316dd --- /dev/null +++ b/installroot/etc/gst-droid/gstdroidcamsrc-1.conf @@ -0,0 +1,102 @@ +# configuration for device 1 + +[focus-mode] +# 0 = GST_PHOTOGRAPHY_FOCUS_MODE_AUTO +# 1 = GST_PHOTOGRAPHY_FOCUS_MODE_MACRO +# 2 = GST_PHOTOGRAPHY_FOCUS_MODE_PORTRAIT +# 3 = GST_PHOTOGRAPHY_FOCUS_MODE_INFINITY +# 4 = GST_PHOTOGRAPHY_FOCUS_MODE_HYPERFOCAL +# 5 = GST_PHOTOGRAPHY_FOCUS_MODE_EXTENDED +# 6 = GST_PHOTOGRAPHY_FOCUS_MODE_CONTINUOUS_NORMAL +# 7 = GST_PHOTOGRAPHY_FOCUS_MODE_CONTINUOUS_EXTENDED +# 8 = GST_PHOTOGRAPHY_FOCUS_MODE_MANUAL +4 = fixed + +[white-balance-mode] +# 0 = GST_PHOTOGRAPHY_WB_MODE_AUTO +# 1 = GST_PHOTOGRAPHY_WB_MODE_DAYLIGHT +# 2 = GST_PHOTOGRAPHY_WB_MODE_CLOUDY +# 3 = GST_PHOTOGRAPHY_WB_MODE_SUNSET +# 4 = GST_PHOTOGRAPHY_WB_MODE_TUNGSTEN +# 5 = GST_PHOTOGRAPHY_WB_MODE_FLUORESCENT +# 6 = GST_PHOTOGRAPHY_WB_MODE_MANUAL +# 7 = GST_PHOTOGRAPHY_WB_MODE_WARM_FLUORESCENT +# 8 = GST_PHOTOGRAPHY_WB_MODE_SHADE +0 = auto +1 = daylight +2 = cloudy-daylight +4 = incandescent +5 = fluorescent + +[scene-mode] +# 0 = GST_PHOTOGRAPHY_SCENE_MODE_MANUAL +# 1 = GST_PHOTOGRAPHY_SCENE_MODE_CLOSEUP +# 2 = GST_PHOTOGRAPHY_SCENE_MODE_PORTRAIT +# 3 = GST_PHOTOGRAPHY_SCENE_MODE_LANDSCAPE +# 4 = GST_PHOTOGRAPHY_SCENE_MODE_SPORT +# 5 = GST_PHOTOGRAPHY_SCENE_MODE_NIGHT +# 6 = GST_PHOTOGRAPHY_SCENE_MODE_AUTO +# 7 = GST_PHOTOGRAPHY_SCENE_MODE_ACTION +# 8 = GST_PHOTOGRAPHY_SCENE_MODE_NIGHT_PORTRAIT +# 9 = GST_PHOTOGRAPHY_SCENE_MODE_THEATRE +# 10 = GST_PHOTOGRAPHY_SCENE_MODE_BEACH +# 11 = GST_PHOTOGRAPHY_SCENE_MODE_SNOW +# 12 = GST_PHOTOGRAPHY_SCENE_MODE_SUNSET +# 13 = GST_PHOTOGRAPHY_SCENE_MODE_STEADY_PHOTO +# 14 = GST_PHOTOGRAPHY_SCENE_MODE_FIREWORKS +# 15 = GST_PHOTOGRAPHY_SCENE_MODE_PARTY +# 16 = GST_PHOTOGRAPHY_SCENE_MODE_CANDLELIGHT +# 17 = GST_PHOTOGRAPHY_SCENE_MODE_BARCODE +2 = portrait +3 = landscape +4 = sports +5 = night +6 = auto +7 = action +8 = night-portrait +9 = theatre +10 = beach +11 = snow +12 = sunset +13 = steadyphoto +14 = fireworks +15 = party +16 = candlelight + +[color-tone-mode] +# 0 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_NORMAL +# 1 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_SEPIA +# 2 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_NEGATIVE +# 3 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_GRAYSCALE +# 4 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_NATURAL +# 5 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_VIVID +# 6 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_COLORSWAP +# 7 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_SOLARIZE +# 8 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_OUT_OF_FOCUS +# 9 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKY_BLUE +# 10 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_GRASS_GREEN +# 11 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_SKIN_WHITEN +# 12 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_POSTERIZE +# 13 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_WHITEBOARD +# 14 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_BLACKBOARD +# 15 = GST_PHOTOGRAPHY_COLOR_TONE_MODE_AQUA +0 = none +1 = sepia +2 = negative +3 = mono +7 = solarize +12 = posterize +13 = whiteboard +14 = blackboard +15 = aqua + +[flicker-mode] +# 0 = GST_PHOTOGRAPHY_FLICKER_REDUCTION_OFF +# 1 = GST_PHOTOGRAPHY_FLICKER_REDUCTION_50HZ +# 2 = GST_PHOTOGRAPHY_FLICKER_REDUCTION_60HZ +# 3 = GST_PHOTOGRAPHY_FLICKER_REDUCTION_AUTO +0 = off +1 = 50hz +2 = 60hz +3 = auto + diff --git a/installroot/etc/gst-droid/gstdroidcamsrcquirks.conf b/installroot/etc/gst-droid/gstdroidcamsrcquirks.conf new file mode 100644 index 0000000..ce324e4 --- /dev/null +++ b/installroot/etc/gst-droid/gstdroidcamsrcquirks.conf @@ -0,0 +1,11 @@ +[face-detection] +prop=face-detection +on=on +off=off +direction=0 + +[image-noise-reduction] +prop=denoise +on=denoise-on +off=denoise-off +direction=0 diff --git a/installroot/etc/gst-droid/gstdroidcodec.conf b/installroot/etc/gst-droid/gstdroidcodec.conf new file mode 100644 index 0000000..55de1f0 --- /dev/null +++ b/installroot/etc/gst-droid/gstdroidcodec.conf @@ -0,0 +1,2 @@ +[decoder-quirks] +video/avc = use-codec-supplied-height diff --git a/installroot/etc/izat.conf b/installroot/etc/izat.conf new file mode 120000 index 0000000..f96fa8e --- /dev/null +++ b/installroot/etc/izat.conf @@ -0,0 +1 @@ +/system/etc/izat.conf \ No newline at end of file diff --git a/installroot/etc/media_codecs.xml b/installroot/etc/media_codecs.xml new file mode 120000 index 0000000..8dbca80 --- /dev/null +++ b/installroot/etc/media_codecs.xml @@ -0,0 +1 @@ +/system/etc/media_codecs.xml \ No newline at end of file diff --git a/installroot/etc/media_codecs_ffmpeg.xml b/installroot/etc/media_codecs_ffmpeg.xml new file mode 120000 index 0000000..e86aaad --- /dev/null +++ b/installroot/etc/media_codecs_ffmpeg.xml @@ -0,0 +1 @@ +/system/etc/media_codecs_ffmpeg.xml \ No newline at end of file diff --git a/installroot/etc/media_codecs_google_audio.xml b/installroot/etc/media_codecs_google_audio.xml new file mode 120000 index 0000000..13317a9 --- /dev/null +++ b/installroot/etc/media_codecs_google_audio.xml @@ -0,0 +1 @@ +/system/etc/media_codecs_google_audio.xml \ No newline at end of file diff --git a/installroot/etc/media_codecs_google_telephony.xml b/installroot/etc/media_codecs_google_telephony.xml new file mode 120000 index 0000000..30e7ca4 --- /dev/null +++ b/installroot/etc/media_codecs_google_telephony.xml @@ -0,0 +1 @@ +/system/etc/media_codecs_google_telephony.xml \ No newline at end of file diff --git a/installroot/etc/media_codecs_google_video.xml b/installroot/etc/media_codecs_google_video.xml new file mode 120000 index 0000000..0a799d1 --- /dev/null +++ b/installroot/etc/media_codecs_google_video.xml @@ -0,0 +1 @@ +/system/etc/media_codecs_google_video.xml \ No newline at end of file diff --git a/installroot/etc/media_codecs_performance.xml b/installroot/etc/media_codecs_performance.xml new file mode 120000 index 0000000..ee99c9d --- /dev/null +++ b/installroot/etc/media_codecs_performance.xml @@ -0,0 +1 @@ +/system/etc/media_codecs_performance.xml \ No newline at end of file diff --git a/installroot/etc/media_profiles.xml b/installroot/etc/media_profiles.xml new file mode 120000 index 0000000..2032881 --- /dev/null +++ b/installroot/etc/media_profiles.xml @@ -0,0 +1 @@ +/system/etc/media_profiles.xml \ No newline at end of file diff --git a/installroot/etc/mixer_paths.xml b/installroot/etc/mixer_paths.xml new file mode 120000 index 0000000..68e7df9 --- /dev/null +++ b/installroot/etc/mixer_paths.xml @@ -0,0 +1 @@ +/system/etc/mixer_paths.xml \ No newline at end of file diff --git a/installroot/etc/modprobe.d/blacklist-evbug.conf b/installroot/etc/modprobe.d/blacklist-evbug.conf new file mode 100644 index 0000000..dcd14c4 --- /dev/null +++ b/installroot/etc/modprobe.d/blacklist-evbug.conf @@ -0,0 +1,2 @@ +# evbug is a debug tool that should be loaded explicitly +blacklist evbug diff --git a/installroot/etc/obexd/excludes/bluetooth:pcsuite b/installroot/etc/obexd/excludes/bluetooth:pcsuite new file mode 100644 index 0000000..e69de29 diff --git a/installroot/etc/obexd/noplugins/ftp b/installroot/etc/obexd/noplugins/ftp new file mode 100644 index 0000000..e69de29 diff --git a/installroot/etc/obexd/noplugins/irmc b/installroot/etc/obexd/noplugins/irmc new file mode 100644 index 0000000..e69de29 diff --git a/installroot/etc/obexd/noplugins/mas b/installroot/etc/obexd/noplugins/mas new file mode 100644 index 0000000..e69de29 diff --git a/installroot/etc/obexd/noplugins/syncevolution b/installroot/etc/obexd/noplugins/syncevolution new file mode 100644 index 0000000..e69de29 diff --git a/installroot/etc/obexd/opp.conf b/installroot/etc/obexd/opp.conf new file mode 100644 index 0000000..557b648 --- /dev/null +++ b/installroot/etc/obexd/opp.conf @@ -0,0 +1,2 @@ +[OPP] +DisableFormat=vMessage diff --git a/installroot/etc/obexd/pbap.conf b/installroot/etc/obexd/pbap.conf new file mode 100644 index 0000000..166dd84 --- /dev/null +++ b/installroot/etc/obexd/pbap.conf @@ -0,0 +1,4 @@ +[PBAP] +# By default PBAP server listens for incoming connections at channel 15. +# That can be overridden by specifying a non-default channel. +# Channel=21 diff --git a/installroot/etc/obexd/root b/installroot/etc/obexd/root new file mode 100644 index 0000000..b73d95b --- /dev/null +++ b/installroot/etc/obexd/root @@ -0,0 +1 @@ +$HOME diff --git a/installroot/etc/ofono/ril_subscription.conf b/installroot/etc/ofono/ril_subscription.conf new file mode 100644 index 0000000..87e6b67 --- /dev/null +++ b/installroot/etc/ofono/ril_subscription.conf @@ -0,0 +1,97 @@ +# This is a sample configuration file for Jolla ril driver +# +# This file is expected to be installed in /etc/ofono +# +# Configuration for each modem is defined in its own [ril_x] section, +# common settings are in the [Settings] section, all other sections +# are ignored. +# +# If any value from [ril_x] section (except "socket") is defined +# in the [Settings] section, it becomes the default for all modems. +# Default values can still be redefined at [ril_x] level. +# + +[Settings] + +# If the phone has more than one SIM slot, the 3G/LTE module may be +# shared by all modems, meaning that only one of the slots can use +# 3G/LTE. In order to "hand 4G over" to the other slot, the modem +# currently using 3G/LTE has to drop to GSM, release 3G/LTE module +# and only then 3G/LTE can be used by the other modem. This setting +# allows to disable this behaviour (say, if your phone has independent +# 3G/LTE modules for each slot or you don't need 4G for both slots). +# Obviously, it only has any effect if you have more than one SIM. +# +# Default is true (switch the current data modem to 2G when changing +# the data modems) +# +#3GLTEHandover=true + +[ril_0] + +# Required entry, defines the RIL socket path +socket=/dev/socket/rild + +# Subscription string. Some (mostly, older) RILs require that 4 bytes +# (usually SUB1 or SUB2) are written to the socket before rild starts +# talking to us. +# +# Not sent by default. +# +#sub=SUB1 + +# RIL logging prefix, to tell one socket from another in the log. +# Makes sense if you have more than one modem configured. +# +# No prefix by default. +# +#name=RIL1 + +# Slot id for SET_UICC_SUBSCRIPTION request. +# +# By default the first modem becomes slot 0, the next one slot 1 and so on. +# +#slot=0 + +# RIL request timeout, in milliseconds. +# +# The default is zero (no timeout) +# +#timeout=0 + +# Setting this one to false would disable 4G technology selection. +# +# By default 4G is enabled +# +#enable4G=true + +# RIL_REQUEST_SET_UICC_SUBSCRIPTION is 115 in RIL version 9 (or earlier) +# and 122 in RIL version 10 and later. Since ofono doesn't know in advance +# which RIL version it's dealing with, it makes the decision at runtime. +# Settings it to false disables the workaround and always sends 122. +# +# Default is true (select SET_UICC_SUBSCRIPTION based on the RIL version) +# +#uiccWorkaround=true + +# Points to the file containing comma-separated ECC (Emergency List Codes) +# list, e.g. 911,112,*911,#911. The file is tracked by ofono and when its +# contents changes, it's reflected in the EmergencyNumbers property of +# org.ofono.VoiceCallManager. +# +# If necessary, the contents of the file can be synchronized with the +# Android system property by adding something like this to /init.rc: +# +# on property:ril.ecclist=* +# write /var/lib/ofono/ril.ecclist ${ril.ecclist} +# chmod 0644 /var/lib/ofono/ril.ecclist +# +#ecclistFile=/var/lib/ofono/ril.ecclist + +# RIL_REQUEST_ALLOW_DATA may or may not be supported by your RIL. +# This option allows you to forcibly enable or disable use of this request. +# Possible values are auto, on and off +# +# Default is auto (usage based on the RIL version) +# +allowDataReq=off diff --git a/installroot/etc/ohm/dbus_signal_conf.ini b/installroot/etc/ohm/dbus_signal_conf.ini new file mode 100644 index 0000000..5cbf133 --- /dev/null +++ b/installroot/etc/ohm/dbus_signal_conf.ini @@ -0,0 +1,15 @@ +[topmost_signal] +name = privateTopmostWindowProcessIdChanged +path = / +interface = org.nemomobile.compositor +signature = i +arguments = pid +target = active_application_request + +[alien_signal] +name = alienProcessIdChanged +path = /org/nemomobile/policy +interface = org.nemomobile.policy +signature = i +arguments = pid +target = alien_application_request diff --git a/installroot/etc/ohm/modules.ini b/installroot/etc/ohm/modules.ini new file mode 100644 index 0000000..6915e8e --- /dev/null +++ b/installroot/etc/ohm/modules.ini @@ -0,0 +1,7 @@ +# The OHM system modules configuration file + +[Modules] +PerformExtraChecks=true +ModulesBanned=gconf +ModulesSuggested= +ModulesRequired=* diff --git a/installroot/etc/ohm/ohmd.ini b/installroot/etc/ohm/ohmd.ini new file mode 100644 index 0000000..45a1abe --- /dev/null +++ b/installroot/etc/ohm/ohmd.ini @@ -0,0 +1,2 @@ +[options] +mlock = data,future diff --git a/installroot/etc/ohm/plugins.d/accessories.ini b/installroot/etc/ohm/plugins.d/accessories.ini new file mode 100644 index 0000000..048b8ea --- /dev/null +++ b/installroot/etc/ohm/plugins.d/accessories.ini @@ -0,0 +1,3 @@ +eci-probe-delay = 2500 +disable-incompatible-quirk = true +jack-match = hs_detect diff --git a/installroot/etc/ohm/plugins.d/dbus_signal.ini b/installroot/etc/ohm/plugins.d/dbus_signal.ini new file mode 100644 index 0000000..7b2b0e6 --- /dev/null +++ b/installroot/etc/ohm/plugins.d/dbus_signal.ini @@ -0,0 +1 @@ +filename = /etc/ohm/dbus_signal_conf.ini diff --git a/installroot/etc/pulse/arm_droid_default.pa b/installroot/etc/pulse/arm_droid_default.pa new file mode 100644 index 0000000..826ba33 --- /dev/null +++ b/installroot/etc/pulse/arm_droid_default.pa @@ -0,0 +1,120 @@ +#!/usr/bin/pulseaudio -nF +# +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +# This startup script is used only if PulseAudio is started per-user +# (i.e. not in system mode) + +.nofail + +.fail + +load-module module-droid-keepalive + +load-module module-meego-parameters cache=1 directory=/var/lib/nemo-pulseaudio-parameters use_voice=false +load-module module-meego-mainvolume virtual_stream=true + +### Automatically restore the volume of streams +# load configuration based on bluez version +.ifexists /etc/pulse/bluez4_stream_restore.pa +.include /etc/pulse/bluez4_stream_restore.pa +.endif + +.ifexists /etc/pulse/bluez5_stream_restore.pa +.include /etc/pulse/bluez5_stream_restore.pa +.endif + +load-module module-match table=/etc/pulse/x-maemo-match.table key=application.name + +### Automatically augment property information from .desktop files +### stored in /usr/share/application +load-module module-augment-properties + +load-module module-null-sink sink_name=sink.null rate=48000 + +load-module module-droid-card rate=48000 mute_routing_before=24576 mute_routing_after=4096 + +### Needed on many new devices. HADK guide explains how to implement this fully +.ifexists module-droid-glue.so +load-module module-droid-glue +.endif + +load-module module-null-sink sink_name=sink.fake.sco rate=8000 channels=1 +load-module module-null-source source_name=source.fake.sco rate=8000 channels=1 +load-module module-bluetooth-discover bluez4_args="sco_sink=sink.fake.sco sco_source=source.fake.sco" bluez5_args="headset=droid" + +load-module module-combine-sink sink_name=sink.primaryandbluez resample_method=trivial rate=48000 channels=2 ignore=sink.low_latency + +load-module module-policy-enforcement + +load-module module-role-ducking trigger_roles=alarm,notification,warning ducking_roles=x-maemo volume=-200dB + +### Load several protocols +.ifexists module-esound-protocol-unix.so +load-module module-esound-protocol-unix +.endif +load-module module-native-protocol-unix + +### Network access (may be configured with paprefs, so leave this commented +### here if you plan to use paprefs) +#load-module module-esound-protocol-tcp +#load-module module-native-protocol-tcp + +### Load the RTP receiver module (also configured via paprefs, see above) +#load-module module-rtp-recv + +### Load the RTP sender module (also configured via paprefs, see above) +#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'" +#load-module module-rtp-send source=rtp.monitor + +### Load additional modules from GConf settings. This can be configured with the paprefs tool. +### Please keep in mind that the modules configured by paprefs might conflict with manually +### loaded modules. +.ifexists module-gconf.so +.nofail +load-module module-gconf +.fail +.endif + +### Make sure we always have a sink around, even if it is a null sink. +load-module module-always-sink + +### Honour intended role device property +load-module module-intended-roles + +### Automatically suspend sinks/sources that become idle for too long +load-module module-suspend-on-idle timeout=1 + +### If autoexit on idle is enabled we want to make sure we only quit +### when no local session needs us anymore. +.ifexists module-console-kit.so +load-module module-console-kit +.endif +.ifexists module-systemd-login.so +load-module module-systemd-login +.endif + +### Load DBus protocol +.ifexists module-dbus-protocol.so +load-module module-dbus-protocol +.endif + +load-module module-rescue-streams sink_name=sink.null source_name=sink.null.monitor + +### Make some devices default +set-default-sink sink.primary +set-default-source source.primary diff --git a/installroot/etc/pulse/arm_msm8974_hammerhead.pa b/installroot/etc/pulse/arm_msm8974_hammerhead.pa new file mode 100644 index 0000000..e051c87 --- /dev/null +++ b/installroot/etc/pulse/arm_msm8974_hammerhead.pa @@ -0,0 +1,120 @@ +#!/usr/bin/pulseaudio -nF +# +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +# This startup script is used only if PulseAudio is started per-user +# (i.e. not in system mode) + +.nofail + +.fail + +load-module module-droid-keepalive + +load-module module-meego-parameters cache=1 directory=/var/lib/nemo-pulseaudio-parameters use_voice=false +load-module module-meego-mainvolume virtual_stream=true + +### Automatically restore the volume of streams +# load configuration based on bluez version +.ifexists /etc/pulse/bluez4_stream_restore.pa +.include /etc/pulse/bluez4_stream_restore.pa +.endif + +.ifexists /etc/pulse/bluez5_stream_restore.pa +.include /etc/pulse/bluez5_stream_restore.pa +.endif + +load-module module-match table=/etc/pulse/x-maemo-match.table key=application.name + +### Automatically augment property information from .desktop files +### stored in /usr/share/application +load-module module-augment-properties + +load-module module-null-sink sink_name=sink.null rate=48000 + +load-module module-droid-card rate=48000 mute_routing_before=24576 mute_routing_after=4096 + +### Needed on many new devices. HADK guide explains how to implement this fully +.ifexists module-droid-glue.so +load-module module-droid-glue +.endif + +load-module module-null-sink sink_name=sink.fake.sco rate=8000 channels=1 +load-module module-null-source source_name=source.fake.sco rate=8000 channels=1 +load-module module-bluez4-discover sco_sink=sink.fake.sco sco_source=source.fake.sco + +load-module module-combine-sink sink_name=sink.primaryandbluez resample_method=trivial rate=48000 channels=2 ignore=sink.low_latency + +load-module module-policy-enforcement + +load-module module-role-ducking trigger_roles=alarm,notification,warning ducking_roles=x-maemo volume=-200dB + +### Load several protocols +.ifexists module-esound-protocol-unix.so +load-module module-esound-protocol-unix +.endif +load-module module-native-protocol-unix + +### Network access (may be configured with paprefs, so leave this commented +### here if you plan to use paprefs) +#load-module module-esound-protocol-tcp +#load-module module-native-protocol-tcp + +### Load the RTP receiver module (also configured via paprefs, see above) +#load-module module-rtp-recv + +### Load the RTP sender module (also configured via paprefs, see above) +#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'" +#load-module module-rtp-send source=rtp.monitor + +### Load additional modules from GConf settings. This can be configured with the paprefs tool. +### Please keep in mind that the modules configured by paprefs might conflict with manually +### loaded modules. +.ifexists module-gconf.so +.nofail +load-module module-gconf +.fail +.endif + +### Make sure we always have a sink around, even if it is a null sink. +load-module module-always-sink + +### Honour intended role device property +load-module module-intended-roles + +### Automatically suspend sinks/sources that become idle for too long +load-module module-suspend-on-idle timeout=1 + +### If autoexit on idle is enabled we want to make sure we only quit +### when no local session needs us anymore. +.ifexists module-console-kit.so +load-module module-console-kit +.endif +.ifexists module-systemd-login.so +load-module module-systemd-login +.endif + +### Load DBus protocol +.ifexists module-dbus-protocol.so +load-module module-dbus-protocol +.endif + +load-module module-rescue-streams sink_name=sink.null source_name=sink.null.monitor + +### Make some devices default +set-default-sink sink.primary +set-default-source source.primary diff --git a/installroot/etc/pulse/bluez4_stream_restore.pa b/installroot/etc/pulse/bluez4_stream_restore.pa new file mode 100644 index 0000000..e22de0c --- /dev/null +++ b/installroot/etc/pulse/bluez4_stream_restore.pa @@ -0,0 +1,2 @@ +### Bluez4 specific module arguments +load-module module-stream-restore-nemo restore_device=no restore_volume=yes restore_muted=no route_table=/etc/pulse/x-maemo-route.table fallback_table=/etc/pulse/x-maemo-stream-restore.table use_voice=false sink_volume_table=/etc/pulse/x-maemo-sink-volume.table diff --git a/installroot/etc/pulse/bluez5_stream_restore.pa b/installroot/etc/pulse/bluez5_stream_restore.pa new file mode 100644 index 0000000..e8babf5 --- /dev/null +++ b/installroot/etc/pulse/bluez5_stream_restore.pa @@ -0,0 +1,2 @@ +### Bluez5 specific module arguments +load-module module-stream-restore-nemo restore_device=no restore_volume=yes restore_muted=no route_table=/etc/pulse/x-maemo-route.table fallback_table=/etc/pulse/x-maemo-stream-restore.table use_voice=false diff --git a/installroot/etc/pulse/mainvolume-listening-time-notifier.conf b/installroot/etc/pulse/mainvolume-listening-time-notifier.conf new file mode 100644 index 0000000..057841f --- /dev/null +++ b/installroot/etc/pulse/mainvolume-listening-time-notifier.conf @@ -0,0 +1,3 @@ +timeout = 1200 +role-list = x-maemo +mode-list = lineout,hs diff --git a/installroot/etc/pulse/x-maemo-match.table b/installroot/etc/pulse/x-maemo-match.table new file mode 100644 index 0000000..7e0e93b --- /dev/null +++ b/installroot/etc/pulse/x-maemo-match.table @@ -0,0 +1,4 @@ +telepathy-stream-engine "phone" +tonegend "dtmf-tone" +voicehost "phone" +. "x-maemo" diff --git a/installroot/etc/pulse/x-maemo-route.table b/installroot/etc/pulse/x-maemo-route.table new file mode 100644 index 0000000..8ab33e1 --- /dev/null +++ b/installroot/etc/pulse/x-maemo-route.table @@ -0,0 +1,2 @@ +sink-input-by-media-role:x-maemo -25 +sink-input-by-media-role:phone -15 diff --git a/installroot/etc/pulse/x-maemo-sink-volume.table b/installroot/etc/pulse/x-maemo-sink-volume.table new file mode 100644 index 0000000..c0725e7 --- /dev/null +++ b/installroot/etc/pulse/x-maemo-sink-volume.table @@ -0,0 +1,3 @@ +btmono:sink.fake.sco +btmono-hfp:sink.fake.sco +btmono-hsp:sink.fake.sco diff --git a/installroot/etc/pulse/x-maemo-stream-restore.table b/installroot/etc/pulse/x-maemo-stream-restore.table new file mode 100644 index 0000000..8f38452 --- /dev/null +++ b/installroot/etc/pulse/x-maemo-stream-restore.table @@ -0,0 +1,5 @@ +sink-input-by-media-role:x-maemo -20 +sink-input-by-media-role:phone -15 +sink-input-by-media-role:animation -20 + + diff --git a/installroot/etc/pulse/xpolicy.conf b/installroot/etc/pulse/xpolicy.conf new file mode 100644 index 0000000..62c741e --- /dev/null +++ b/installroot/etc/pulse/xpolicy.conf @@ -0,0 +1,541 @@ +# -------- Group section ------------------------------------------------------- + +[group] +name = idle +flags = nopolicy +sink = sink.null +source = sink.null.monitor + +[group] +name = background +flags = limit_volume, cork_stream +sink = sink.primary +source = source.primary + +[group] +name = systemsound +flags = set_sink, limit_volume, cork_stream, mute_by_route +sink = sink.primary +source = sink.null.monitor + +[group] +name = btnotify +flags = set_sink, limit_volume, cork_stream, mute_by_route +sink = sink.primaryandbluez +source = sink.null.monitor + +[group] +name = feedbacksound +flags = set_sink, limit_volume, cork_stream, mute_by_route +sink = sink.primary +source = sink.null.monitor + +[group] +name = inputsound +flags = set_sink, limit_volume, cork_stream, mute_by_route +sink = sink.primary +source = sink.null.monitor + +[group] +name = event +flags = set_sink, limit_volume, cork_stream, mute_by_route +sink = sink.primary +source = sink.null.monitor + +[group] +name = alarm +flags = set_sink, limit_volume, cork_stream +sink = sink.primary +source = sink.null.monitor + +[group] +name = flash +flags = limit_volume, cork_stream +sink = sink.primary +source = source.primary + +[group] +name = player +flags = route_audio, limit_volume, cork_stream +sink = sink.primary +source = source.primary + +[group] +name = game +flags = route_audio, limit_volume, cork_stream +sink = sink.primary +source = source.primary + +[group] +name = voiceui +flags = set_sink, limit_volume, cork_stream +sink = sink.primary +source = sink.null.monitor + +[group] +name = ringtone +flags = limit_volume, mute_by_route, cork_stream, media_notify +sink = sink.primary +source = source.null.monitor + +[group] +name = camera +flags = set_sink, set_source, limit_volume, cork_stream +sink = sink.primary +source = source.primary + +[group] +name = videoeditor +flags = route_audio, limit_volume, cork_stream +sink = sink.primary +source = source.primary + +[group] +name = ipcall +flags = set_sink, set_source, limit_volume, cork_stream +sink = sink.primary +source = source.primary + +[group] +name = call +flags = set_sink, set_source +sink = sink.primary +source = source.primary + +[group] +name = navigator +flags = set_sink, set_source +sink = sink.primary +source = sink.null.monitor + +[group] +name = cstone +flags = route_audio, set_source, limit_volume +sink = sink.primary +source = sink.null.monitor + +[group] +name = alwayson +flags = set_sink, limit_volume, cork_stream +sink = sink.primary +source = sink.null.monitor + +[group] +name = nonsilent +flags = set_sink, limit_volume, cork_stream +sink = sink.primary +source = sink.null.monitor + +[group] +name = internal +flags = nopolicy +sink = sink.null +source = source.null.monitor + +[group] +name = outgoing +flags = route_audio +sink = sink.primary +source = sink.null.monitor + +[group] +name = incoming +flags = route_audio +sink = sink.null +source = source.primary + +[group] +name = alien +flags = route_audio, limit_volume, cork_stream +sink = sink.primary +source = source.primary + +[group] +name = aliencall +flags = route_audio, limit_volume, cork_stream +sink = sink.primary +source = source.primary + + +# -------- Card section -------------------------------------------------------- + +# -------- Device section ------------------------------------------------------ + +[device] +type = tvoutandbta2dp +sink = name@startswith:"bluez_sink" + +[device] +type = ihfandheadset +sink = equals:sink.primary +ports = sink.primary:output-speaker+wired_headphone + +[device] +type = ihfandheadset +source= equals:source.primary +ports = source.primary:input-wired_headset + +[device] +type = ihfandheadphone +sink = equals:sink.primary +ports = sink.primary:output-speaker+wired_headphone + +[device] +type = bta2dp +sink = name@startswith:"bluez_sink" +ports = sink.primary:output-speaker +flags = disable_notify + +[device] +type = bta2dpforalien +sink = name@startswith:"bluez_sink" +ports = sink.primary:output-speaker +flags = disable_notify + +[device] +type = bthsp +sink = equals:sink.primary +ports = sink.primary:output-bluetooth_sco +flags = disable_notify, refresh_always + +[device] +type = bthsp +source = equals:source.primary +ports = source.primary:input-bluetooth_sco_headset +flags = disable_notify, refresh_always + +[device] +type = bthspforcall +sink = equals:sink.primary +ports = sink.primary:output-bluetooth_sco +flags = disable_notify, refresh_always, delayed_port_change + +[device] +type = bthspforcall +source = equals:source.primary +ports = source.primary:input-bluetooth_sco_headset +flags = disable_notify, refresh_always + +[device] +type = bthspforalien +sink = equals:sink.primary +ports = sink.primary:output-bluetooth_sco +flags = disable_notify, refresh_always, delayed_port_change + +[device] +type = bthspforalien +source = equals:source.primary +ports = source.primary:input-bluetooth_sco_headset +flags = disable_notify, refresh_always + +[device] +type = bthfp +sink = equals:sink.primary +ports = sink.primary:output-bluetooth_sco +flags = disable_notify, refresh_always + +[device] +type = bthfp +source = equals:source.primary +ports = source.primary:input-bluetooth_sco_headset +flags = disable_notify, refresh_always + +[device] +type = bthfpforcall +sink = equals:sink.primary +ports = sink.primary:output-bluetooth_sco +flags = disable_notify, refresh_always, delayed_port_change + +[device] +type = bthfpforcall +source = equals:source.primary +ports = source.primary:input-bluetooth_sco_headset +flags = disable_notify, refresh_always + +[device] +type = bthfpforalien +sink = equals:sink.primary +ports = sink.primary:output-bluetooth_sco +flags = disable_notify, refresh_always, delayed_port_change + +[device] +type = bthfpforalien +source = equals:source.primary +ports = source.primary:input-bluetooth_sco_headset +flags = disable_notify, refresh_always + +[device] +type = headset +source = equals:source.primary +ports = source.primary:input-wired_headset +flags = disable_notify, refresh_always + +[device] +type = headset +sink = equals:sink.primary +ports = sink.primary:output-wired_headset +flags = disable_notify, refresh_always + +[device] +type = headsetforcall +sink = equals:sink.primary +ports = sink.primary:output-wired_headset +flags = refresh_always + +[device] +type = headsetforcall +source = equals:source.primary +ports = source.primary:input-wired_headset + +[device] +type = headsetforalien +sink = equals:sink.primary +ports = sink.primary:output-wired_headset +flags = refresh_always + +[device] +type = headsetforalien +source = equals:source.primary +ports = source.primary:input-wired_headset + +[device] +type = headphone +sink = equals:sink.primary +ports = sink.primary:output-wired_headphone +flags = disable_notify, refresh_always + +[device] +type = headphoneforcall +sink = equals:sink.primary +ports = sink.primary:output-wired_headphone +flags = refresh_always + +[device] +type = headphoneforalien +sink = equals:sink.primary +ports = sink.primary:output-wired_headphone +flags = refresh_always + +[device] +type = ihfandtvout +sink = equals:sink.primary +ports = sink.primary:output-wired_headset + +[device] +type = tvout +sink = equals:sink.primary +ports = sink.primary:output-wired_headset + +[device] +type = earpieceandtvout +sink = equals:sink.primary +ports = sink.primary:output-earpiece + +[device] +type = earpieceforcall +sink = equals:sink.primary +ports = sink.primary:output-earpiece + +[device] +type = earpiece +sink = equals:sink.primary +ports = sink.primary:output-earpiece + +[device] +type = earpieceforalien +sink = equals:sink.primary +ports = sink.primary:output-earpiece +flags = refresh_always + +[device] +type = microphone +source = equals:source.primary +ports = source.primary:input-builtin_mic + +[device] +type = backmicrophone +source = equals:source.primary +ports = source.primary:input-back_mic + +[device] +type = ihf +sink = equals:sink.primary +ports = sink.primary:output-speaker +flags = refresh_always + +[device] +type = ihfforcall +sink = equals:sink.primary +ports = sink.primary:output-speaker +flags = refresh_always + +[device] +type = ihfforalien +sink = equals:sink.primary +ports = sink.primary:output-speaker +flags = refresh_always + +[device] +type = voicecall +source= equals:source.primary +ports = source.primary:input-voice_call + +[device] +type = null +sink = equals:sink.null + +# -------- Stream section ------------------------------------------------------ + +[stream] +exe = gst-launch-0.10 +group = player + +[stream] +exe = gst-launch-1.0 +group = player + +[stream] +exe = pacat +group = player + +# Ignore pulsesink probe from gstreamer pulsesink +[stream] +property = media.name@equals:"pulsesink probe" +group = internal + +[stream] +exe = ngfd +property = media.name@equals:"system-event" +sink = bta2dp +group = btnotify + +[stream] +exe = ngfd +property = event.id@equals:"alarm-clock-elapsed" +sink = bta2dp +group = btnotify + +[stream] +exe = ngfd +property = event.id@equals:"message-new-email" +sink = bta2dp +group = btnotify + +[stream] +exe = ngfd +property = media.name@equals:"battery-event" +sink = bta2dp +group = btnotify + +[stream] +property = application.process.arg0@equals:"/usr/bin/maliit-server" +group = feedbacksound + +[stream] +property = event.id@equals:"phone-incoming-call" +group = ringtone + +[stream] +property = event.id@equals:"alarm-clock-elapsed" +group = alarm + +[stream] +property = event.id@equals:"message-new-email" +group = event + +[stream] +exe = ngfd +property = event.id@equals:"event-in-call" +group = alwayson + +[stream] +exe = ngfd +property = media.name@equals:"event-in-call" +group = alwayson + +[stream] +exe = ngfd +property = media.name@equals:"camera-event" +group = camera + +[stream] +exe = ngfd +property = media.name@equals:"feedback-event" +group = feedbacksound + +[stream] +exe = ngfd +property = media.name@equals:"system-event" +group = systemsound + +[stream] +exe = ngfd +property = media.name@equals:"battery-event" +group = systemsound + +[stream] +exe = telepathy-stream-engine +group = call + +[stream] +property = application.process.arg0@equals:"/usr/lib/telepathy/telepathy-stream-engine" +group = call + +[stream] +property = media.name@equals:"indtone" +group = cstone + +[stream] +property = media.name@equals:"dtmf" +group = cstone + +[stream] +property = media.name@equals:"notiftone" +group = nonsilent + +[stream] +exe = qmafw-dbus-wrapper +group = player + +[stream] +name = "Virtual Stream for MainVolume Volume Control" +group = internal + +[stream] +name = "output of sink.primary" +group = internal + +[stream] +name = "input of source.primary" +group = internal + +[stream] +property = media.role@equals:"abstract" +group = internal + +# For routing to sink.primaryandbluez +[stream] +property = media.name@startswith:"Simultaneous output on" +group = internal + +# -------- Context rule section ------------------------------------------------ + +[context-rule] +variable = call +value = equals:outgoing +set-property = sink-name@equals:"sink.primary", property:"x-nemo.voicecall.status", value@constant:"active" + +[context-rule] +variable = call +value = equals:active +set-property = sink-name@equals:"sink.primary", property:"x-nemo.voicecall.status", value@constant:"active" + +[context-rule] +variable = call +value = equals:inactive +set-property = sink-name@equals:"sink.primary", property:"x-nemo.voicecall.status", value@constant:"inactive" + +[context-rule] +variable = media_state +value = matches:"^[^t].*" +set-property = sink-name@equals:"sink.primary", property:"x-nemo.media.state", value@copy-from-context diff --git a/installroot/etc/pulse/xpolicy.conf.d/bluez4.conf b/installroot/etc/pulse/xpolicy.conf.d/bluez4.conf new file mode 100644 index 0000000..1866f33 --- /dev/null +++ b/installroot/etc/pulse/xpolicy.conf.d/bluez4.conf @@ -0,0 +1,180 @@ +# -------- Card section ------------------------------------------------------ + +[card] +type = ihfandheadset +name = equals:droid_card.primary +profile = ringtone + +[card] +type = ihfandheadphone +name = equals:droid_card.primary +profile = ringtone + +[card] +type = headset +name = equals:droid_card.primary +profile = primary-primary + +[card] +type = headsetforcall +name = equals:droid_card.primary +profile = voicecall + +[card] +type = headsetforalien +name = equals:droid_card.primary +profile = communication + +[card] +type = headphone +name = equals:droid_card.primary +profile = primary-primary + +[card] +type = headphoneforcall +name = equals:droid_card.primary +profile = voicecall + +[card] +type = headphoneforalien +name = equals:droid_card.primary +profile = communication + +[card] +type = ihfandtvout +name = equals:droid_card.primary +profile = primary-primary + +[card] +type = earpiece +name = equals:droid_card.primary +profile = voicecall + +[card] +type = earpieceforcall +name = equals:droid_card.primary +profile = voicecall + +[card] +type = earpieceforalien +name = equals:droid_card.primary +profile = communication + +[card] +type = ihfforcall +name = equals:droid_card.primary +profile = voicecall + +[card] +type = ihf +name = equals:droid_card.primary +profile = primary-primary + +[card] +type = ihfforalien +name = equals:droid_card.primary +profile = communication + +[card] +type = bthsp +name0 = startswith:"bluez_card" +profile0 = hsp +name1 = equals:droid_card.primary +profile1 = voicecall + +[card] +type = bthspforcall +name0 = startswith:"bluez_card" +profile0 = hsp +name1 = equals:droid_card.primary +profile1 = voicecall + +[card] +type = bthspforalien +name0 = startswith:"bluez_card" +profile0 = hsp +name1 = equals:droid_card.primary +profile1 = communication + +[card] +type = bthfp +name0 = startswith:"bluez_card" +profile0 = hsp +name1 = equals:droid_card.primary +profile1 = voicecall + +[card] +type = bthfpforcall +name0 = startswith:"bluez_card" +profile0 = hsp +name1 = equals:droid_card.primary +profile1 = voicecall + +[card] +type = bthfpforalien +name0 = startswith:"bluez_card" +profile0 = hsp +name1 = equals:droid_card.primary +profile1 = communication + +[card] +type = tvoutandbta2dp +name = startswith:"bluez_card" +profile = a2dp +flags = disable_notify + +[card] +type = bta2dp +name0 = startswith:"bluez_card" +profile0 = a2dp +name1 = equals:droid_card.primary +profile1 = primary-primary + +[card] +type = bta2dpforalien +name0 = startswith:"bluez_card" +profile0 = a2dp +name1 = equals:droid_card.primary +profile1 = communication + +# -------- Context rule section ------------------------------------------------ + +[context-rule] +variable = bluetooth_override +value = equals:active +set-property = sink-name@equals:"sink.fake.sco", property:"bluetooth.hsp.prevent.suspend.transport", value@constant:"false" + +[context-rule] +variable = bluetooth_override +value = equals:inactive +set-property = sink-name@equals:"sink.fake.sco", property:"bluetooth.hsp.prevent.suspend.transport", value@constant:"true" + +[context-rule] +variable = call +value = equals:inactive +set-property = sink-name@equals:"sink.fake.sco", property:"bluetooth.prefer.hsp", value@constant:"false" + +[context-rule] +variable = call +value = equals:incoming +set-property = sink-name@equals:"sink.fake.sco", property:"bluetooth.prefer.hsp", value@constant:"true" + +[context-rule] +variable = call +value = equals:outgoing +set-property = sink-name@equals:"sink.fake.sco", property:"bluetooth.prefer.hsp", value@constant:"true" + +[context-rule] +variable = call +value = equals:inactive +set-property = sink-name@equals:"sink.fake.sco", property:"bluetooth.hsp.prevent.suspend.transport", value@constant:"false" + +[context-rule] +variable = call +value = equals:incoming +set-property = sink-name@equals:"sink.fake.sco", property:"bluetooth.hsp.prevent.suspend.transport", value@constant:"true" + +[context-rule] +variable = call +value = equals:outgoing +set-property = sink-name@equals:"sink.fake.sco", property:"bluetooth.hsp.prevent.suspend.transport", value@constant:"true" diff --git a/installroot/etc/pulse/xpolicy.conf.d/bluez5.conf b/installroot/etc/pulse/xpolicy.conf.d/bluez5.conf new file mode 100644 index 0000000..d69e5d1 --- /dev/null +++ b/installroot/etc/pulse/xpolicy.conf.d/bluez5.conf @@ -0,0 +1,193 @@ +# -------- Card section -------------------------------------------------------- + +[card] +type = tvoutandbta2dp +name = startswith:"bluez_card" +profile = a2dp +flags = disable_notify + + +[card] +type = bta2dp +name0 = startswith:"bluez_card" +profile0 = a2dp_sink +name1 = equals:droid_card.primary +profile1 = primary-primary +flags1 = disable_notify + +[card] +type = bta2dpforalien +name0 = startswith:"bluez_card" +profile0 = a2dp_sink +name1 = equals:droid_card.primary +profile1 = communication +flags1 = disable_notify + +[card] +type = bthsp +name0 = startswith:"bluez_card" +profile0 = droid_hsp +name1 = equals:droid_card.primary +profile1 = primary-primary +flags1 = disable_notify + +[card] +type = bthspforcall +name0 = startswith:"bluez_card" +profile0 = droid_hsp +name1 = equals:droid_card.primary +profile1 = voicecall +flags1 = disable_notify + +[card] +type = bthspforalien +name0 = startswith:"bluez_card" +profile0 = droid_hsp +name1 = equals:droid_card.primary +profile1 = communication +flags1 = disable_notify + +[card] +type = bthfp +name0 = startswith:"bluez_card" +profile0 = droid_hfp +name1 = equals:droid_card.primary +profile1 = primary-primary +flags1 = disable_notify + +[card] +type = bthfpforcall +name0 = startswith:"bluez_card" +profile0 = droid_hfp +name1 = equals:droid_card.primary +profile1 = voicecall +flags1 = disable_notify + +[card] +type = bthfpforalien +name0 = startswith:"bluez_card" +profile0 = droid_hfp +name1 = equals:droid_card.primary +profile1 = communication +flags1 = disable_notify + +[card] +type = ihfandheadset +name0 = equals:droid_card.primary +profile0= ringtone +name1 = startswith:"bluez_card" +profile1 = off +flags1 = disable_notify + +[card] +type = ihfandheadphone +name0 = equals:droid_card.primary +profile0= ringtone +name1 = startswith:"bluez_card" +profile1 = off +flags1 = disable_notify + +[card] +type = headset +name0 = equals:droid_card.primary +profile0= primary-primary +name1 = startswith:"bluez_card" +profile1 = off +flags1 = disable_notify + +[card] +type = headsetforcall +name0 = equals:droid_card.primary +profile0= voicecall +name1 = startswith:"bluez_card" +profile1 = off +flags1 = disable_notify + +[card] +type = headsetforalien +name0 = equals:droid_card.primary +profile0= communication +name1 = startswith:"bluez_card" +profile1 = off +flags1 = disable_notify + +[card] +type = headphone +name0 = equals:droid_card.primary +profile0= primary-primary +name1 = startswith:"bluez_card" +profile1 = off +flags1 = disable_notify + +[card] +type = headphoneforcall +name0 = equals:droid_card.primary +profile0= voicecall +name1 = startswith:"bluez_card" +profile1 = off +flags1 = disable_notify + +[card] +type = headphoneforalien +name0 = equals:droid_card.primary +profile0= communication +name1 = startswith:"bluez_card" +profile1 = off +flags1 = disable_notify + +[card] +type = ihfandtvout +name0 = equals:droid_card.primary +profile0= primary-primary +name1 = startswith:"bluez_card" +profile1 = off +flags1 = disable_notify + +[card] +type = earpiece +name0 = equals:droid_card.primary +profile0= voicecall +name1 = startswith:"bluez_card" +profile1 = off +flags1 = disable_notify + +[card] +type = earpieceforcall +name0 = equals:droid_card.primary +profile0= voicecall +name1 = startswith:"bluez_card" +profile1 = off +flags1 = disable_notify + +[card] +type = earpieceforalien +name0 = equals:droid_card.primary +profile0= communication +name1 = startswith:"bluez_card" +profile1 = off +flags1 = disable_notify + +[card] +type = ihfforcall +name0 = equals:droid_card.primary +profile0= voicecall +name1 = startswith:"bluez_card" +profile1 = off +flags1 = disable_notify + +[card] +type = ihf +name0 = equals:droid_card.primary +profile0= primary-primary +name1 = startswith:"bluez_card" +profile1 = off +flags1 = disable_notify + +[card] +type = ihfforalien +name0 = equals:droid_card.primary +profile0= communication +name1 = startswith:"bluez_card" +profile1 = off +flags1 = disable_notify + diff --git a/installroot/etc/sap.conf b/installroot/etc/sap.conf new file mode 120000 index 0000000..c731223 --- /dev/null +++ b/installroot/etc/sap.conf @@ -0,0 +1 @@ +/system/etc/sap.conf \ No newline at end of file diff --git a/installroot/etc/sec_config b/installroot/etc/sec_config new file mode 120000 index 0000000..56fba31 --- /dev/null +++ b/installroot/etc/sec_config @@ -0,0 +1 @@ +/system/etc/sec_config \ No newline at end of file diff --git a/installroot/etc/sensorfw/primaryuse.conf b/installroot/etc/sensorfw/primaryuse.conf new file mode 100644 index 0000000..8bafc6d --- /dev/null +++ b/installroot/etc/sensorfw/primaryuse.conf @@ -0,0 +1,15 @@ +[plugins] +accelerometeradaptor = hybrisaccelerometeradaptor +alsadaptor = hybrisalsadaptor +proximityadaptor = hybrisproximityadaptor +magnetometeradaptor = hybrismagnetometeradaptor +gyroscopeadaptor = hybrisgyroscopeadaptor +orientationadaptor = hybrisorientationadaptor + +[magnetometer] +scale_coefficient = 1 +transformation_matrix = "-1,0,0,0,1,0,0,0,1" +needs_calibration = 0 + +[accelerometer] +transformation_matrix = "1,0,0,0,1,0,0,0,1" diff --git a/installroot/etc/sysconfig/pulseaudio b/installroot/etc/sysconfig/pulseaudio new file mode 100644 index 0000000..3bc2ce9 --- /dev/null +++ b/installroot/etc/sysconfig/pulseaudio @@ -0,0 +1 @@ +CONFIG="-n --file=/etc/pulse/arm_msm8974_hammerhead.pa" diff --git a/installroot/etc/sysctl.d/ipv4-settings.conf b/installroot/etc/sysctl.d/ipv4-settings.conf new file mode 100644 index 0000000..68f26f4 --- /dev/null +++ b/installroot/etc/sysctl.d/ipv4-settings.conf @@ -0,0 +1,5 @@ +# Disable icmp redirects +net.ipv4.conf.default.accept_redirects = 0 +net.ipv4.conf.all.accept_redirects = 0 +net.ipv4.conf.default.secure_redirects = 0 +net.ipv4.conf.all.secure_redirects = 0 diff --git a/installroot/etc/sysctl.d/ipv6-settings.conf b/installroot/etc/sysctl.d/ipv6-settings.conf new file mode 100644 index 0000000..45fe39c --- /dev/null +++ b/installroot/etc/sysctl.d/ipv6-settings.conf @@ -0,0 +1,7 @@ +# Enable IPv6 tempaddress and prefer it +net.ipv6.conf.default.use_tempaddr = 2 +net.ipv6.conf.all.use_tempaddr = 2 + +# Disable icmp redirects +net.ipv6.conf.default.accept_redirects = 0 +net.ipv6.conf.all.accept_redirects = 0 diff --git a/installroot/etc/usb-moded/dyn-modes/mtp_mode-droid.ini b/installroot/etc/usb-moded/dyn-modes/mtp_mode-droid.ini new file mode 100644 index 0000000..c1d43bc --- /dev/null +++ b/installroot/etc/usb-moded/dyn-modes/mtp_mode-droid.ini @@ -0,0 +1,12 @@ +[mode] +name = mtp_mode +module = none + +[options] +sysfs_path = /sys/class/android_usb/android0/functions +sysfs_value = ffs +sysfs_reset_value = none +softconnect_path = /sys/class/android_usb/android0/enable +softconnect = 1 +softconnect_disconnect = 0 +idProduct = 0A07 diff --git a/installroot/etc/wifi/bcmdhd.cal b/installroot/etc/wifi/bcmdhd.cal new file mode 100644 index 0000000..7c72a19 --- /dev/null +++ b/installroot/etc/wifi/bcmdhd.cal @@ -0,0 +1,129 @@ +#Hammerhead for 4339 iPA/eLNA / AARDVARK_6_30_271 +#2G CCK Filter / 5G EVM SW Ctrl / Targer power / 130930 +#Boardflags3 / 5G cal / RSSI cal + +sromrev=11 +boardrev=0x1106 +boardtype=0x06b6 + +boardflags=0x10081401 +boardflags2=0x00000000 +boardflags3=0x08001188 + +#boardnum=57410 +macaddr=00:90:4c:c5:12:38 +ccode=XV +regrev=17 +antswitch=0 +pdgain2g=7 +pdgain5g=7 +tworangetssi2g=0 +tworangetssi5g=0 +muxenab=0x10 +#sd_gpout=0 +#sd_oobonly=1 +vendid=0x14e4 +devid=0x43ae +manfid=0x2d0 +#prodid=0x052e +nocrc=1 +otpimagesize=502 +xtalfreq=37400 +extpagain2g=2 +pdetrange2g=2 +extpagain5g=2 +pdetrange5g=2 + +rxgains2gelnagaina0=4 +rxgains2gtrisoa0=6 +rxgains2gtrelnabypa0=1 +rxgains5gelnagaina0=5 +rxgains5gtrisoa0=9 + +rxgains5gtrelnabypa0=1 +rxchain=1 +txchain=1 +aa2g=1 +aa5g=1 + +agbg0=0 +aga0=0 + +tssipos5g=0 +tssipos2g=0 + + +pa2gccka0=-116,7568,-852 +pa2ga0=-161,6269,-723 + +pa5ga0=0xFF40,0x15EA,0xFD51,0xFF33,0x160A,0xFD49,0xFF51,0x1706,0xFD3E,0xFF54,0x16E3,0xFD47 +pa5gbw40a0=0xFF45,0x1676,0xFD49,0xFF45,0x1789,0xFD21,0xFF38,0x16CE,0xFD28,0xFF25,0x15D1,0xFD36 +pa5gbw80a0=0xFF49,0x15C6,0xFD61,0xFF52,0x1736,0xFD39,0xFF5D,0x1735,0xFD4B,0xFF48,0x16B4,0xFD3B + +pdoffset40ma0=0 +pdoffset80ma0=0 +pdoffsetcckma0=0 + +maxp2ga0=78 + +cckbw202gpo=0x0000 +cckbw20ul2gpo=0x0000 +cckbw20ul2gpo=0x0 + +ofdmlrbw202gpo=0x8864 +dot11agofdmhrbw202gpo=0x8866 + +mcsbw202gpo=0xaaaa8884 +mcsbw402gpo=0xaaaa8884 + +maxp5ga0=74,74,74,78 + +tssifloor2g=500 + +#low +mcsbw205glpo=0xaa866662 +mcsbw405glpo=0xaa888888 +mcsbw805glpo=0xaa888888 +mcsbw1605glpo=0xaa888888 +#mid +mcsbw205gmpo=0xaa866662 +mcsbw405gmpo=0xaa888888 +mcsbw805gmpo=0xaa888888 +mcsbw1605gmpo=0xaa888888 +#high +mcsbw205ghpo=0xcca88882 +mcsbw405ghpo=0xccaaaaaa +mcsbw805ghpo=0xccaaaaaa +mcsbw1605ghpo=0xccaaaaaa + +mcslr5glpo=0x0000 +mcslr5gmpo=0x0000 +mcslr5ghpo=0x0000 + +sb20in40hrrpo=0x0 +sb20in80and160hr5glpo=0x0 +sb40and80hr5glpo=0x0 +sb20in80and160hr5gmpo=0x0 +sb40and80hr5gmpo=0x0 +sb20in80and160hr5ghpo=0x0 +sb40and80hr5ghpo=0x0 +sb20in40lrpo=0x0 +sb20in80and160lr5glpo=0x0 +sb40and80lr5glpo=0x0 +sb20in80and160lr5gmpo=0x0 +sb40and80lr5gmpo=0x0 +sb20in80and160lr5ghpo=0x0 +sb40and80lr5ghpo=0x0 +dot11agduphrpo=0x0 +dot11agduplrpo=0x0 +phycal_tempdelta=25 +cckdigfilttype=1 + +swctrlmap_5g=0x00080008,0x00040000,0x00000008,0x800301,0x00c +swctrlmap_2g=0x00000000,0x00030001,0x00010000,0x800301,0x0ff +swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x000 +swctrlmapext_2g=0x00000001,0x00000000,0x00000000,0x000000,0x001 + + +rssicorrnorm_c0=2,2 +rssicorrnorm5g_c0=-1,0,0,-2,0,0,0,1,1,1,2,2 diff --git a/installroot/etc/wifi/p2p_supplicant_overlay.conf b/installroot/etc/wifi/p2p_supplicant_overlay.conf new file mode 100644 index 0000000..acbace2 --- /dev/null +++ b/installroot/etc/wifi/p2p_supplicant_overlay.conf @@ -0,0 +1 @@ +disable_scan_offload=1 diff --git a/installroot/etc/wifi/wpa_supplicant.conf b/installroot/etc/wifi/wpa_supplicant.conf new file mode 100644 index 0000000..9f9e399 --- /dev/null +++ b/installroot/etc/wifi/wpa_supplicant.conf @@ -0,0 +1,5 @@ +update_config=1 +ctrl_interface=wlan0 +eapol_version=1 +ap_scan=1 +fast_reauth=1 diff --git a/installroot/etc/wifi/wpa_supplicant_overlay.conf b/installroot/etc/wifi/wpa_supplicant_overlay.conf new file mode 100644 index 0000000..58c2639 --- /dev/null +++ b/installroot/etc/wifi/wpa_supplicant_overlay.conf @@ -0,0 +1,2 @@ +disable_scan_offload=1 +p2p_disabled=1 diff --git a/installroot/etc/xdg/QtProject/QPlatformTheme.conf b/installroot/etc/xdg/QtProject/QPlatformTheme.conf new file mode 100644 index 0000000..90ced64 --- /dev/null +++ b/installroot/etc/xdg/QtProject/QPlatformTheme.conf @@ -0,0 +1,2 @@ +[GenericUnixTheme] +StartDragDistance=40 diff --git a/installroot/etc/xdg/QtProject/QtQuick2.conf b/installroot/etc/xdg/QtProject/QtQuick2.conf new file mode 100644 index 0000000..c4fa454 --- /dev/null +++ b/installroot/etc/xdg/QtProject/QtQuick2.conf @@ -0,0 +1,2 @@ +[QuickMouseArea] +PressAndHoldDelay=600 diff --git a/installroot/etc/xdg/QtProject/Sensors.conf b/installroot/etc/xdg/QtProject/Sensors.conf new file mode 100644 index 0000000..ca2839d --- /dev/null +++ b/installroot/etc/xdg/QtProject/Sensors.conf @@ -0,0 +1,10 @@ +[Default] +QAccelerometer=sensorfw.accelerometer +QAmbientLightSensor=sensorfw.als +QCompass=sensorfw.compass +QMagnetometer=sensorfw.magnetometer +QOrientationSensor=sensorfw.orientationsensor +QProximitySensor=sensorfw.proximitysensor +QRotationSensor=sensorfw.rotationsensor +QLightSensor=sensorfw.lightsensor +QGyroscope=sensorfw.gyroscope diff --git a/installroot/etc/xtra_root_cert.pem b/installroot/etc/xtra_root_cert.pem new file mode 120000 index 0000000..58c9397 --- /dev/null +++ b/installroot/etc/xtra_root_cert.pem @@ -0,0 +1 @@ +/system/etc/xtra_root_cert.pem \ No newline at end of file diff --git a/installroot/etc/xtwifi.conf b/installroot/etc/xtwifi.conf new file mode 120000 index 0000000..59a61d1 --- /dev/null +++ b/installroot/etc/xtwifi.conf @@ -0,0 +1 @@ +/system/etc/xtwifi.conf \ No newline at end of file diff --git a/installroot/lib/systemd/system/actdead.target.wants/droid-hal-init.service b/installroot/lib/systemd/system/actdead.target.wants/droid-hal-init.service new file mode 120000 index 0000000..523e6a5 --- /dev/null +++ b/installroot/lib/systemd/system/actdead.target.wants/droid-hal-init.service @@ -0,0 +1 @@ +../droid-hal-init.service \ No newline at end of file diff --git a/installroot/lib/systemd/system/adbd-prepare.service b/installroot/lib/systemd/system/adbd-prepare.service new file mode 100644 index 0000000..0355712 --- /dev/null +++ b/installroot/lib/systemd/system/adbd-prepare.service @@ -0,0 +1,17 @@ +# Copyright (C) 2013 Jolla Oy +# +# Prepare functionfs for adbd + +[Unit] +Description=functionfs setup for adbd + +[Service] +Type=notify +RemainAfterExit=yes +ExecStart=/usr/sbin/adbd-functionfs.sh +ExecStopPost=/bin/umount adb +ExecStopPost=/bin/umount adb + +[Install] +WantedBy=graphical.target + diff --git a/installroot/lib/systemd/system/adbd.service b/installroot/lib/systemd/system/adbd.service new file mode 100644 index 0000000..ac1ffa4 --- /dev/null +++ b/installroot/lib/systemd/system/adbd.service @@ -0,0 +1,10 @@ +[Unit] +Description=Android Debug Bridge Daemon +Requires=adbd-prepare.service +After=adbd-prepare.service +PartOf=adbd-prepare.service + +[Service] +Environment=PATH=/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin +ExecStart=/sbin/adbd +Restart=always diff --git a/installroot/lib/systemd/system/android-links.service b/installroot/lib/systemd/system/android-links.service new file mode 100644 index 0000000..eaf3af1 --- /dev/null +++ b/installroot/lib/systemd/system/android-links.service @@ -0,0 +1,9 @@ +[Unit] +Description=Link Android folders to home +After=local-fs.target +Conflicts=rescue.target actdead.target factory-test.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/bin/droid/android-links.sh diff --git a/installroot/lib/systemd/system/android.mount b/installroot/lib/systemd/system/android.mount new file mode 100644 index 0000000..07b12bf --- /dev/null +++ b/installroot/lib/systemd/system/android.mount @@ -0,0 +1,14 @@ +[Unit] +Description=Mount for Android in /android +Before=local-fs.target systemd-modules-load.service + +[Mount] +What=/dev/mmcblk0p28 +Where=/android +Type=ext4 +Options=rw,relatime,data=ordered + +TimeoutSec=5 + +[Install] +WantedBy=local-fs.target diff --git a/installroot/lib/systemd/system/bt-sleep-monitor.service b/installroot/lib/systemd/system/bt-sleep-monitor.service new file mode 100644 index 0000000..e9bec81 --- /dev/null +++ b/installroot/lib/systemd/system/bt-sleep-monitor.service @@ -0,0 +1,7 @@ +[Unit] +Description=Start Minimecs bt-sleep-monitor script at startup + +[Service] +Type=idle +ExecStart=/usr/bin/bt-sleep-monitor.sh +RemainAfterExit=yes diff --git a/installroot/lib/systemd/system/bt-sleep-monitor.timer b/installroot/lib/systemd/system/bt-sleep-monitor.timer new file mode 100644 index 0000000..c7cb98d --- /dev/null +++ b/installroot/lib/systemd/system/bt-sleep-monitor.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Delay start of minimecs bt-sleep-monitor script to avoid getting wrong bluetooth value on startup + +[Timer] +OnStartupSec=30sec +Unit=bt-sleep-monitor.service + +[Install] +WantedBy=multi-user.target diff --git a/installroot/lib/systemd/system/dev-ttyHS99.device b/installroot/lib/systemd/system/dev-ttyHS99.device new file mode 100644 index 0000000..249f2b2 --- /dev/null +++ b/installroot/lib/systemd/system/dev-ttyHS99.device @@ -0,0 +1,4 @@ +[Unit] +Description=HCI UART device +Requires=hciattach.service +Before=hciattach.service diff --git a/installroot/lib/systemd/system/droid-hal-init.service b/installroot/lib/systemd/system/droid-hal-init.service new file mode 100644 index 0000000..8394b9b --- /dev/null +++ b/installroot/lib/systemd/system/droid-hal-init.service @@ -0,0 +1,24 @@ +[Unit] +Description=droid-hal-init +Wants=systemd-udev-settle.service +After=local-fs.target systemd-udev-settle.service systemd-tmpfiles-setup.service +Before=basic.target network.target bluetooth.service ofono.service sensorfwd.service +DefaultDependencies=no +Conflicts=shutdown.target +# Lets not do Requires= here as that means that this service will restart which leads automatically +# to broken state as android init can be only started once per boot. If something goes wrong +# our best hope is that android init doesn't notice that and that the crashing party fixes itself :) + +[Service] +Type=notify +NotifyAccess=all +ExecStart=/bin/sh /usr/bin/droid/droid-hal-startup.sh +ExecStop=/bin/sh /usr/bin/droid/droid-hal-shutdown.sh %c +Restart=always +# Lets make sure we don't block minutes in case of errors. +TimeoutSec=15 +StartLimitInterval=60 +StartLimitBurst=2 + +[Install] +WantedBy=graphical.target diff --git a/installroot/lib/systemd/system/droid-late-start.service b/installroot/lib/systemd/system/droid-late-start.service new file mode 100644 index 0000000..f588c05 --- /dev/null +++ b/installroot/lib/systemd/system/droid-late-start.service @@ -0,0 +1,12 @@ +[Unit] +Description=droid-late-start +After=droid-hal-init.service +Before=network.target start-user-session@USER.service bluetooth.service ofono.service sensorfwd.service +Conflicts=shutdown.target + +[Service] +ExecStart=/usr/bin/setprop droid.late_start trigger_late_start + +[Install] +WantedBy=graphical.target + diff --git a/installroot/lib/systemd/system/graphical.target.wants/droid-hal-init.service b/installroot/lib/systemd/system/graphical.target.wants/droid-hal-init.service new file mode 120000 index 0000000..523e6a5 --- /dev/null +++ b/installroot/lib/systemd/system/graphical.target.wants/droid-hal-init.service @@ -0,0 +1 @@ +../droid-hal-init.service \ No newline at end of file diff --git a/installroot/lib/systemd/system/graphical.target.wants/droid-late-start.service b/installroot/lib/systemd/system/graphical.target.wants/droid-late-start.service new file mode 120000 index 0000000..59de0b6 --- /dev/null +++ b/installroot/lib/systemd/system/graphical.target.wants/droid-late-start.service @@ -0,0 +1 @@ +../droid-late-start.service \ No newline at end of file diff --git a/installroot/lib/systemd/system/hciattach.service b/installroot/lib/systemd/system/hciattach.service new file mode 100644 index 0000000..b81c14f --- /dev/null +++ b/installroot/lib/systemd/system/hciattach.service @@ -0,0 +1,9 @@ +[Unit] +Description=Run hciattach when HCI UART device becomes available +ConditionPathExists=/data/property/persist.service.bdroid.bdaddr +ConditionPathExists=/system/vendor/firmware + +[Service] +Type=forking +ExecStartPre=/usr/sbin/rfkill unblock bluetooth +ExecStart=/usr/sbin/hciattach -f /system/vendor/firmware ttyHS99 bcm43xx 4000000 flow sleep /data/property/persist.service.bdroid.bdaddr diff --git a/installroot/lib/systemd/system/local-fs.target.wants/android.mount b/installroot/lib/systemd/system/local-fs.target.wants/android.mount new file mode 120000 index 0000000..999b104 --- /dev/null +++ b/installroot/lib/systemd/system/local-fs.target.wants/android.mount @@ -0,0 +1 @@ +../android.mount \ No newline at end of file diff --git a/installroot/lib/systemd/system/multi-user.target.wants/android-links.service b/installroot/lib/systemd/system/multi-user.target.wants/android-links.service new file mode 120000 index 0000000..08846d9 --- /dev/null +++ b/installroot/lib/systemd/system/multi-user.target.wants/android-links.service @@ -0,0 +1 @@ +../android-links.service \ No newline at end of file diff --git a/installroot/lib/systemd/system/multi-user.target.wants/bt-sleep-monitor.timer b/installroot/lib/systemd/system/multi-user.target.wants/bt-sleep-monitor.timer new file mode 120000 index 0000000..be6839d --- /dev/null +++ b/installroot/lib/systemd/system/multi-user.target.wants/bt-sleep-monitor.timer @@ -0,0 +1 @@ +../bt-sleep-monitor.timer \ No newline at end of file diff --git a/installroot/lib/udev/platform-device b/installroot/lib/udev/platform-device new file mode 100755 index 0000000..eb2f211 --- /dev/null +++ b/installroot/lib/udev/platform-device @@ -0,0 +1,5 @@ +#!/bin/sh +RESULT=`echo "$1" | sed "s|/devices/\([^/]*\)/\([^/]*\)/.*|\1/\2|g"| cut -d'/' -f1` + +echo ANDROID_BLOCK_DEVICE=$RESULT + diff --git a/installroot/lib/udev/rules.d/997-droid-drm.rules b/installroot/lib/udev/rules.d/997-droid-drm.rules new file mode 100644 index 0000000..826d9cf --- /dev/null +++ b/installroot/lib/udev/rules.d/997-droid-drm.rules @@ -0,0 +1 @@ +SUBSYSTEM=="drm", SYMLINK+="dri/%k" diff --git a/installroot/lib/udev/rules.d/998-droid-system.rules b/installroot/lib/udev/rules.d/998-droid-system.rules new file mode 100644 index 0000000..b41b2b3 --- /dev/null +++ b/installroot/lib/udev/rules.d/998-droid-system.rules @@ -0,0 +1,14 @@ +SUBSYSTEM=="graphics", SYMLINK+="$env{SUBSYSTEM}/%k" +SUBSYSTEM=="block", SYMLINK+="$env{SUBSYSTEM}/%k" +SUBSYSTEM=="drm", SYMLINK+="dri/%k" +SUBSYSTEM=="oncrpc", SYMLINK+="$env{SUBSYSTEM}/%k" +SUBSYSTEM=="adsp", SYMLINK+="$env{SUBSYSTEM}/%k" +SUBSYSTEM=="msm_camera", SYMLINK+="$env{SUBSYSTEM}/%k" +SUBSYSTEM=="mtd", SYMLINK+="$env{SUBSYSTEM}/%k" +SUBSYSTEM=="block", SYMLINK+="$env{SUBSYSTEM}/%k" +SUBSYSTEM=="misc", KERNEL=="log_events", SYMLINK+="alog/events" +SUBSYSTEM=="misc", KERNEL=="log_radio", SYMLINK+="alog/radio" +SUBSYSTEM=="misc", KERNEL=="log_system", SYMLINK+="alog/system" +SUBSYSTEM=="misc", KERNEL=="log_main", SYMLINK+="alog/main" + +ENV{ID_PART_ENTRY_SCHEME}=="gpt", ENV{ID_PART_ENTRY_NAME}=="?*", IMPORT{program}="/bin/sh /lib/udev/platform-device $env{DEVPATH}", SYMLINK+="block/platform/$env{ANDROID_BLOCK_DEVICE}/by-name/$env{ID_PART_ENTRY_NAME}" diff --git a/installroot/lib/udev/rules.d/999-bluetooth.rules b/installroot/lib/udev/rules.d/999-bluetooth.rules new file mode 100644 index 0000000..b985d7e --- /dev/null +++ b/installroot/lib/udev/rules.d/999-bluetooth.rules @@ -0,0 +1,2 @@ +ACTION=="add", KERNEL=="ttyHS99", ENV{SYSTEMD_WANTS}=="dev-ttyHS99.device" +KERNEL=="rfcomm*", MODE="0666", GROUP="bluetooth", OWNER="bluetooth" diff --git a/installroot/lib/udev/rules.d/999-extra-rules.rules b/installroot/lib/udev/rules.d/999-extra-rules.rules new file mode 100644 index 0000000..65143f2 --- /dev/null +++ b/installroot/lib/udev/rules.d/999-extra-rules.rules @@ -0,0 +1,2 @@ +KERNEL=="hw_random",NAME="hwrng", SYMLINK+="%k" + diff --git a/installroot/lib/udev/rules.d/999-torch.rules b/installroot/lib/udev/rules.d/999-torch.rules new file mode 100644 index 0000000..ef0e01f --- /dev/null +++ b/installroot/lib/udev/rules.d/999-torch.rules @@ -0,0 +1 @@ +SUBSYSTEM=="leds", RUN+="/bin/chmod 666 /sys/class/leds/led:flash_torch/brightness" diff --git a/installroot/usr/bin/bt-sleep-monitor.sh b/installroot/usr/bin/bt-sleep-monitor.sh new file mode 100755 index 0000000..3d9347f --- /dev/null +++ b/installroot/usr/bin/bt-sleep-monitor.sh @@ -0,0 +1,106 @@ +#!/bin/bash +#title : bt-sleep-monitor.sh +#description : Bluetooth 'LowPowerMode' monitor for SailfishOS ports that face a bluetooth wakelock bug. +#author : minimec +#date : 20170206 +#version : 0.3 (2nd release/code cleaned/with logfile for testing) +#usage : ./bash bt-sleep-monitor.sh & (first login to a root console with 'devel-su') +#kill script : devel-su killall bt-sleep-monitor.sh dbus-monitor +#follow log : tail -f /dev/shm/bt-sleep-monitor.log +#notes : Best use as systemd service +#============================================================================== +#How it works... : LowPowerMode is disabled in two cases: +# - by enabling the bluetooth adapter, in case it is 'disabled'. +# - by powering on the display, in case the adapter is 'enabled'. +# The script switches between these modes automatically. +# After an 'action' is triggered you have 120sec. (default value) to connect a device. +# In case a device is connected, the script listens for 'disconnect' and will enable LPM again afterwards. +#============================================================================== + + +## DEFAULTS +# This value defines the default wakeup time (in seconds) before 'lpm mode' is set again. +BTACTIVE=120 +# Default name for log file +LOGFILE=/dev/shm/bt-sleep-monitor.log +# Create log file +echo "$(date): Log started" > $LOGFILE +chmod 777 $LOGFILE +# Bluetooth 'LowPowerMode' default +echo "$(date): Set 'lpm=1' as default" >> $LOGFILE +echo "1" > /proc/bluetooth/sleep/lpm + + +### MAIN loop +while true; do + +## SCRIPT + + # Check if bluetooth adapter is enabled/disabled + if [ "$(connmanctl technologies | sed -n -e '/bluetooth/,+5p' | grep Powered | awk '{print $3; exit}')" == "False" ] ; then + # BLUETOOTH ADAPTER DISABLED: (start bluetooth listener) + echo "$(date): Bluetooth disabled (starting bluetooth listener)" >> $LOGFILE + dbus-monitor --system "interface='net.connman.Technology',member='SetProperty'" | + while read -r line; do + if [ "$(echo $line | awk 'END {print $NF}')" == "true" ]; then + # Action 'bluetooth on' triggered (set lpm=0 for a certain time before we look for a connection) + echo "$(date): Action 'bluetooth on' (set 'lpm=0' for $BTACTIVE seconds)" >> $LOGFILE + echo "0" > /proc/bluetooth/sleep/lpm + sleep $BTACTIVE + # Kill obsolete listener + pkill -g $$ dbus-monitor + # We check if a device is connetced. Otherwise we go to sleep. + if [ "$(hcitool con | grep \>)" == "" ] ; then + echo "1" > /proc/bluetooth/sleep/lpm + echo "$(date): No connection after $BTACTIVE seconds (set 'lpm=1')" >> $LOGFILE + else + # We have a connection. If device disconnects, we go to sleep. + echo "$(date): Device connected (listening for 'disconnect')" >> $LOGFILE + dbus-monitor --system "interface='org.bluez.Control',member='PropertyChanged'" | + while read -r line; do + if [ "$(echo $line | awk 'END {print $NF}')" == "false" ]; then + echo "1" > /proc/bluetooth/sleep/lpm + echo "$(date): Device disconnected (set 'lpm=1')" >> $LOGFILE + # Kill obsolete listener + pkill -g $$ dbus-monitor + fi + done + fi + fi + done + else + # BLUETOOTH ADAPTER ENABLED: (start 'display on' listener) + echo "$(date): Bluetooth enabled (starting 'display on' listener)" >> $LOGFILE + dbus-monitor --system "interface='com.nokia.mce.signal',member='display_status_ind'" | + while read -r line; do + if [ "$(echo $line | awk -F\" '{print $2}')" == "on" ]; then + # Action 'display on' triggered (set lpm=0 for a certain time before we look for a connection) + echo "$(date): Action 'display on' (set 'lpm=0' for $BTACTIVE seconds)" >> $LOGFILE + echo "0" > /proc/bluetooth/sleep/lpm + sleep $BTACTIVE + # Kill obsolete listener + pkill -g $$ dbus-monitor + # We check if a device is connetced. Otherwise we go to sleep. + if [ "$(hcitool con | grep \>)" == "" ] ; then + echo "1" > /proc/bluetooth/sleep/lpm + echo "$(date): No connection after $BTACTIVE seconds (set 'lpm=1')" >> $LOGFILE + else + # We have a connection. If device disconnects, we go to sleep. + echo "$(date): Device connected (listening for 'disconnect')" >> $LOGFILE + dbus-monitor --system "interface='org.bluez.Control',member='PropertyChanged'" | + while read -r line; do + if [ "$(echo $line | awk 'END {print $NF}')" == "false" ]; then + echo "1" > /proc/bluetooth/sleep/lpm + echo "$(date): Device disconnected (set 'lpm=1')" >> $LOGFILE + # Kill obsolete listener + pkill -g $$ dbus-monitor + fi + done + fi + fi + done + fi +## SCRIPT END + +done +### MAIN LOOP END diff --git a/installroot/usr/bin/droid/android-links.sh b/installroot/usr/bin/droid/android-links.sh new file mode 100755 index 0000000..47cc912 --- /dev/null +++ b/installroot/usr/bin/droid/android-links.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +MNT=$(grep "Where=" /lib/systemd/system/android.mount | cut -d'=' -f 2)/media/0 + +#fix a stupid mistake in previous versions +if [ "$(readlink -- /home/nemo/Pictures/Android)" = "/android/Pictures" ]; then + for i in Music Pictures Playlists Downloads Videos; do + unlink /home/nemo/$i/Android + done + unlink /home/nemo/Music/AndroidPodcasts + unlink /home/nemo/Pictures/Camera/Android +fi + +if [ ! -h "/home/nemo/Pictures/Android" ]; then + if [ -d $MNT/Pictures ]; then + for i in Music Pictures Playlists; do + ln -s $MNT/$i /home/nemo/$i/Android + done + ln -s $MNT/Podcasts /home/nemo/Music/AndroidPodcasts + ln -s $MNT/DCIM /home/nemo/Pictures/Camera/Android + ln -s $MNT/Download /home/nemo/Downloads/Android + ln -s $MNT/Movies /home/nemo/Videos/Android + fi +fi diff --git a/installroot/usr/bin/droid/droid-hal-shutdown.sh b/installroot/usr/bin/droid/droid-hal-shutdown.sh new file mode 100755 index 0000000..0a07feb --- /dev/null +++ b/installroot/usr/bin/droid/droid-hal-shutdown.sh @@ -0,0 +1,93 @@ +#!/bin/sh +# Contact: Pekka Lundstrom +# +# Copyright (c) 2013, Jolla Ltd. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of the nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# The following should be in /init.rc, so init will shut everything down: +# on property:hybris.shutdown=* +# class_stop late_start +# class_stop main +# class_stop core + +# Kill all processes that are in this same cgroup ($1) +[ -z "$1" ] && echo "Need cgroup path" && exit 1 +CGROUP=$1 +[ ! -f /sys/fs/cgroup/systemd/$CGROUP/cgroup.procs ] && echo "No such cgroup: $1" && exit 1 + +get_pids() { + # Get list of running pids in this cgroup + # return list $PIDS and $NUM_PIDS + PIDS=$(cat /sys/fs/cgroup/systemd/$CGROUP/cgroup.procs) + NUM_PIDS=$(echo $PIDS | wc -w) + echo Android service PIDs remaining: $NUM_PIDS +} + +# ============== main() =============== + +get_pids +PREV_NUM_PIDS=$NUM_PIDS +# This android property is supposed to ensure a shutdown if system-server crashes +# We don't use it, but some init scripts watch for it as a signal to shut other things down +/usr/bin/setprop sys.shutdown.requested 1 + +echo Shutting down droid-hal-init services +/usr/bin/setprop hybris.shutdown 1 + +sleep 1 +WAIT=1 +get_pids +MAX_WAIT=5 +# -gt 1 because droid-hal-init is also in this cgroup +while [ $NUM_PIDS -gt 1 -a $WAIT -lt $MAX_WAIT ]; do + let WAIT=$WAIT+1 + if [ $NUM_PIDS -lt $PREV_NUM_PIDS ]; then + # Number of running processes is getting smaller + # Wait a little bit more + sleep 1 + else + # Number of pids is not gettting smaller + break + fi + PREV_NUM_PIDS=$NUM_PIDS + get_pids +done + +echo Killing droid-hal-init +killall droid-hal-init + +echo Killing processes hybris.shutdown missed +get_pids +if [ $NUM_PIDS -gt 0 ]; then + killall $PIDS + sleep 1 + get_pids + if [ $NUM_PIDS -gt 0 ]; then + killall -s 9 $PIDS + fi +fi + +exit 0 + diff --git a/installroot/usr/bin/droid/droid-hal-startup.sh b/installroot/usr/bin/droid/droid-hal-startup.sh new file mode 100644 index 0000000..c8a8c02 --- /dev/null +++ b/installroot/usr/bin/droid/droid-hal-startup.sh @@ -0,0 +1,10 @@ +#!/bin/sh +cd / +touch /dev/.coldboot_done +export LD_LIBRARY_PATH=/usr/libexec/droid-hybris/system/lib/:/vendor/lib:/system/lib + +# Save systemd notify socket name to let droid-init-done.sh pick it up later +echo $NOTIFY_SOCKET > /run/droid-hal/notify-socket-name + +exec /sbin/droid-hal-init + diff --git a/installroot/usr/bin/droid/droid-init-done.sh b/installroot/usr/bin/droid/droid-init-done.sh new file mode 100755 index 0000000..4f51c10 --- /dev/null +++ b/installroot/usr/bin/droid/droid-init-done.sh @@ -0,0 +1,62 @@ +#!/bin/sh +# Contact: Pekka Lundstrom +# +# Copyright (c) 2013, Jolla Ltd. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of the nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# +# This informs systemd that droid-hal-init has been started +# This service should be enabled in one of the /init*.rc files like this: + +# service droid_init_done /bin/sh /usr/bin/droid/droid-init-done.sh +# class xxx (xxx = some late starting class) +# oneshot + +export LD_LIBRARY_PATH=/lib:/usr/lib +export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin +export NOTIFY_SOCKET="$(cat /run/droid-hal/notify-socket-name)" +DROID_PID=$(pgrep droid-hal-init) +systemd-notify --pid=$DROID_PID --ready +# Systemd has a bug and can't handle the situation that notifying daemon (this one) +# does exit before systemd has fully handled the notify message. +# Thus we need to stay here and make sure systemd has handled our notify message +n=0 +while [ $n -lt 3 ]; do + sleep 1 + droid_status=`systemctl is-active droid-hal-init.service` + if [ "$droid_status" == "active" ]; then + break + fi + echo "info systemd again..." + systemd-notify --pid=$DROID_PID --ready + let n=$n+1 +done + +if [ "$droid_status" == "active" ]; then + exit 0 +else + echo "Couldn't deliver notify message to systemd" + exit 1 +fi diff --git a/installroot/usr/bin/droid/get_partition.sh b/installroot/usr/bin/droid/get_partition.sh new file mode 100755 index 0000000..5cd1f54 --- /dev/null +++ b/installroot/usr/bin/droid/get_partition.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +/bin/mount | grep " $1 " | cut -d" " -f 1 diff --git a/installroot/usr/lib/modules-load.d/droid-hal-hammerhead.conf b/installroot/usr/lib/modules-load.d/droid-hal-hammerhead.conf new file mode 100644 index 0000000..9113052 --- /dev/null +++ b/installroot/usr/lib/modules-load.d/droid-hal-hammerhead.conf @@ -0,0 +1,2 @@ +# Modularise WLAN to delay its init after partition with its MAC is mounted. +bcmdhd diff --git a/installroot/usr/lib/startup/preinit/get_bootstate b/installroot/usr/lib/startup/preinit/get_bootstate new file mode 100755 index 0000000..44f12e0 --- /dev/null +++ b/installroot/usr/lib/startup/preinit/get_bootstate @@ -0,0 +1,79 @@ +#!/bin/sh + +# Contact: Pekka Lundstrom +# +# Copyright (c) 2014, Jolla Ltd. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of the nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# preinit plugin - get_bootstate +# This is part of /sbin/preinit and finds out why Jolla device booted up +# It will output "USER", "ACT_DEAD" or "TEST" +# If wakeup happened by usb or rtc, then we boot to ACT_DEAD, else USER +# jolla.test_mode in cmdline can override usb detection values + +check_bogus=0 +bootreason_str="Normal boot" +actdead_bootparam="" + +if [ -f /var/lib/environment/actdead/bootparam.conf ]; then + source /var/lib/environment/actdead/bootparam.conf + actdead_bootparam=$ACTDEAD_PARAMETER_STRING +fi + +if grep -q 'jolla.test_mode=USER' /proc/cmdline; then + # Device is in QA test mode forcing USER + BOOTSTATE="USER" +elif grep -q 'jolla.test_mode=ACT_DEAD' /proc/cmdline; then + # Device is in QA test mode forcing ACT_DEAD + BOOTSTATE="ACT_DEAD" +elif grep -q 'androidboot.mode=charger' /proc/cmdline; then + BOOTSTATE="ACT_DEAD" + bootreason_str="androidboot.mode=charger" + check_bogus=1 +elif [ ! -z "$actdead_bootparam" ] && + grep -q $actdead_bootparam /proc/cmdline; then + # Device specific boot parameter + BOOTSTATE="ACT_DEAD" + bootreason_str=$actdead_bootparam + check_bogus=1 +else + BOOTSTATE="USER" +fi + +# Bootreason can be bogus (pwr down by low voltage peak or battery removal) +# We try to detect that and boot to USER in that case +# ACTDEAD boot would cause only shutdown if there wasn't real reason +if [ "$BOOTSTATE" == "ACT_DEAD" ] && + [ $check_bogus -eq 1 ] && + [ -f /var/log/systemboot.log ]; then + # In uncontrolled shutdown we don't have log entry for shutdown + tail -1 /var/log/systemboot.log | grep -q Shutdown + if [ $? -ne 0 ]; then + BOOTSTATE="USER" + echo "x-no-time-stamp Startup: preinit ignored $bootreason_str" >> /var/log/systemboot.log + fi +fi +echo $BOOTSTATE +exit 0 diff --git a/installroot/usr/lib/startup/preinit/is_erase_needed b/installroot/usr/lib/startup/preinit/is_erase_needed new file mode 100755 index 0000000..ec7c8f9 --- /dev/null +++ b/installroot/usr/lib/startup/preinit/is_erase_needed @@ -0,0 +1,35 @@ +#!/bin/sh + +# Contact: Pekka Lundstrom +# +# Copyright (c) 2014, Jolla Ltd. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of the nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# preinit plugin - is_erase_needed +# This is part of /sbin/preinit and checks if device needs to be cleaned +# In non btrfs systems we don't yet support device erase + +echo "No" +exit 0 diff --git a/installroot/usr/lib/startup/preinit/is_total_erase_supported b/installroot/usr/lib/startup/preinit/is_total_erase_supported new file mode 120000 index 0000000..274d1de --- /dev/null +++ b/installroot/usr/lib/startup/preinit/is_total_erase_supported @@ -0,0 +1 @@ +/bin/false \ No newline at end of file diff --git a/installroot/usr/lib/tmpfiles.d/droid-hal.conf b/installroot/usr/lib/tmpfiles.d/droid-hal.conf new file mode 100644 index 0000000..f2c37c1 --- /dev/null +++ b/installroot/usr/lib/tmpfiles.d/droid-hal.conf @@ -0,0 +1,2 @@ +# Create empty directory to hold files for droid-hal +D /run/droid-hal 0755 root root - diff --git a/installroot/usr/sbin/adbd-functionfs.sh b/installroot/usr/sbin/adbd-functionfs.sh new file mode 100755 index 0000000..0e06cfd --- /dev/null +++ b/installroot/usr/sbin/adbd-functionfs.sh @@ -0,0 +1,10 @@ +#!/bin/sh +set -e +mkdir -p /dev/usb-ffs +chmod 0770 /dev/usb-ffs +chown shell:shell /dev/usb-ffs +mkdir -p /dev/usb-ffs/adb +chmod 0770 /dev/usb-ffs/adb +chown shell:shell /dev/usb-ffs/adb +/bin/mount -t functionfs adb /dev/usb-ffs/adb -o uid=shell,gid=shell +exit 0 diff --git a/installroot/usr/sbin/flash-partition b/installroot/usr/sbin/flash-partition new file mode 100755 index 0000000..1b4cd06 --- /dev/null +++ b/installroot/usr/sbin/flash-partition @@ -0,0 +1,215 @@ +#!/bin/sh + +# +# Copyright (C) 2013 Jolla Ltd. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of the nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# Authors: +# Kalle Jokiniemi +# David Greaves +# Marko Saukko +# + +DEVICE_INFO_FILE=/var/lib/flash-partition/device-info + +if [ ! -e $DEVICE_INFO_FILE ]; then + echo "Unable to find partition info file '$DEVICE_INFO_FILE'." + exit 1 +fi + +source $DEVICE_INFO_FILE + +if [ -z "$CPUCHECK_STRING" ]; then + echo "CPU check string variable 'CPUCHECK_STRING' needs to be defined currently empty." + exit 1 +fi + +if [[ -z "$PART_1" || -z "$PART_REAL_1" || -z "$PART_I" ]]; then + echo "At least one partition needs to be defined variables PART_1, PART_REAL_1 and PART_I." + exit 1 +fi + +DEVDIR="/dev" + +print_help() +{ + echo "" + echo " $0" + echo " A tool for on-device partition flashing" + echo "" + echo " Usage:" + echo " $0 " + echo "" + echo " Allowed partition labels:" + for I in ${PART_I}; do + eval echo " \$PART_$I" + done +} + +# Test if we are running on device +on_device() +{ + for I in ${PART_I}; do + eval PART="\${PART_REAL_$I}" + if test ! -b $DEVDIR/$PART; then + return 1 + fi + done + if cat /proc/cpuinfo | grep "$CPUCHECK_STRING" > /dev/null; then + return 0 + else + return 1 + fi +} + +# Test that $1 is a valid partition name, and that $2 is a file +parameters_correct() +{ + if test -z $1 || test -z $2; then + echo "Parameter(s) missing!" + print_help + exit 1 + fi + RET=1 + for I in ${PART_I}; do + eval PART="\${PART_$I}" + if test $PART = $1; then + RET=0 + fi + done + if test $RET = 1; then + echo "\"$1\" is not a supported partition!" + fi + if test -e $2 && test ! -z $2; then + RET=0 + else + echo "No such image file \"$2\"!" + RET=1 + fi + return $RET +} + +# Parameter $1 should be the partition name like "boot" +find_device() +{ + for I in ${PART_I}; do + eval PART="\${PART_$I}" + if test ${PART} = $1; then + return $I + fi + done + echo "Could not find matching partition for $1" + exit 1 +} + +## EXECUTION STARTS HERE ## + +if ! parameters_correct $1 $2; then + print_help + exit 1 +fi + +if test $1 = "--help"; then + print_help + exit 0 +fi + +if on_device; then + find_device $1 + eval DEVICE=\${PART_REAL_$?} + echo Flashing to $DEVICE + + # If we are flashing boot partition and we are running multirom setup + # which can be detected by having data_subdir= in th ecmdline skip boot + # partition flashing as it is not needed. + mrom_check=$(grep data_subdir= /proc/cmdline) + if test $1 = boot && [ ! -z "$mrom_check" ]; then + echo "Skipping flashing of boot partition as multirom setup detected." + echo "Update multirom boot image, ramdisk and kernel" + pref_path="/android" + data_path=$(/usr/bin/droid/get_partition.sh /data) + [[ -d $pref_path/media/0/multirom ]] || mkdir -p $pref_path && mount $data_path $pref_path + mrom_path=$(echo $mrom_check | sed 's/.*data_subdir=\(.*\)\/data/\1/') + cp /boot/kernel-* $pref_path/$mrom_path/zImage + cp /boot/boot-initramfs.gz $pref_path/$mrom_path/initrd.img + cp /boot/hybris-boot.img $pref_path/$mrom_path/boot.img + echo "Multirom update done" + exit 0 + fi + + FILENAME=$2 + + GZIP=$(file $FILENAME | grep "gzip compressed data" &> /dev/null; echo $?) + GZIPTMPFILE=$(mktemp) + + # In case the file is compressed we need to uncompress it + if [[ "x$GZIP" == "x0" ]]; then + echo "Uncompressing '$FILENAME' to '$GZIPTMPFILE'.." + gunzip -c $FILENAME > $GZIPTMPFILE + GZ_RETVAL=$(echo $?) + if [[ "x$GZ_RETVAL" != "x0" ]]; then + echo "Uncompress failed.." + rm -f $GZIPTMPFILE + exit 1 + fi + FILENAME=$GZIPTMPFILE + fi + + # Sparse files need to be unsparsed before flashing.. + SPARSE=$(hexdump -e '"%02x"' -n 4 $FILENAME) + if [[ "$SPARSE" == "ed26ff3a" ]]; then + if which simg2img &> /dev/null; then + echo "Unsparsing '$FILENAME' to '$FILENAME.tmp'.." + simg2img "$FILENAME" "$FILENAME.tmp" + SP_RETVAL=$(echo $?) + # NOTE: simg2img returns 0 when out of disk space thus this check does not + # work for all cases. + if [[ "x$SP_RETVAL" != "x0" ]]; then + echo "Unsparsing failed.." + rm -f $FILENAME.tmp $GZIPTMPFILE + exit 1 + fi + FILENAME="$FILENAME.tmp" + else + rm -f $FILENAME $GZIPTMPFILE + echo "simg2img binary missing unable to continue flashing." + exit 1 + fi + fi + + dd if=$FILENAME bs=4096 of=$DEVDIR/$DEVICE + + if [[ "$SPARSE" == "ed26ff3a" ]]; then + rm -f $FILENAME + fi + + if [[ "x$GZIP" == "x0" ]]; then + rm -f $GZIPTMPFILE + fi +else + echo Not running on device, skipping flashing. + exit 0 +fi + diff --git a/installroot/usr/share/environment/nemo/hybris.conf b/installroot/usr/share/environment/nemo/hybris.conf new file mode 100644 index 0000000..e085135 --- /dev/null +++ b/installroot/usr/share/environment/nemo/hybris.conf @@ -0,0 +1,2 @@ +# Ensure that we can find hybris libs from any hybris-enabled binary +HYBRIS_LD_LIBRARY_PATH=/usr/libexec/droid-hybris/system/lib:/vendor/lib:/system/lib diff --git a/installroot/usr/share/kickstarts/Jolla-@RELEASE@-hammerhead-@ARCH@.ks b/installroot/usr/share/kickstarts/Jolla-@RELEASE@-hammerhead-@ARCH@.ks new file mode 100644 index 0000000..9029dec --- /dev/null +++ b/installroot/usr/share/kickstarts/Jolla-@RELEASE@-hammerhead-@ARCH@.ks @@ -0,0 +1,159 @@ +# DisplayName: Jolla hammerhead/@ARCH@ (release) 1 +# KickstartType: release +# SuggestedImageType: fs +# SuggestedArchitecture: armv7hl + +timezone --utc UTC +keyboard us +user --name nemo --groups audio,input,video --password nemo +lang en_US.UTF-8 + +### Commands from /tmp/sandbox/usr/share/ssu/kickstart/part/default +part / --size 500 --ondisk sda --fstype=ext4 + +## No suitable configuration found in /tmp/sandbox/usr/share/ssu/kickstart/bootloader + +repo --name=adaptation-community-common-hammerhead-@RELEASE@ --baseurl=http://repo.merproject.org/obs/nemo:/devel:/hw:/common/sailfish_latest_@ARCH@/ +repo --name=apps-@RELEASE@ --baseurl=https://releases.jolla.com/jolla-apps/@RELEASE@/@ARCH@/ +repo --name=hotfixes-@RELEASE@ --baseurl=https://releases.jolla.com/releases/@RELEASE@/hotfixes/@ARCH@/ +repo --name=jolla-@RELEASE@ --baseurl=https://releases.jolla.com/releases/@RELEASE@/jolla/@ARCH@/ + +%packages +@Jolla Configuration hammerhead +%end + +%attachment +### Commands from /tmp/sandbox/usr/share/ssu/kickstart/attachment/hammerhead +/boot/hybris-boot.img +/boot/hybris-updater-script +/boot/hybris-updater-unpack.sh +/boot/update-binary + +%end + +%pre +export SSU_RELEASE_TYPE=release +### begin 01_init +touch $INSTALL_ROOT/.bootstrap +### end 01_init +%end + +%post +export SSU_RELEASE_TYPE=release +### begin 01_arch-hack +if [ "@ARCH@" == armv7hl ] || [ "@ARCH@" == armv7tnhl ]; then + # Without this line the rpm does not get the architecture right. + echo -n "@ARCH@-meego-linux" > /etc/rpm/platform + + # Also libzypp has problems in autodetecting the architecture so we force tha as well. + # https://bugs.meego.com/show_bug.cgi?id=11484 + echo "arch = @ARCH@" >> /etc/zypp/zypp.conf +fi +### end 01_arch-hack +### begin 01_rpm-rebuilddb +# Rebuild db using target's rpm +echo -n "Rebuilding db using target rpm.." +rm -f /var/lib/rpm/__db* +rpm --rebuilddb +echo "done" +### end 01_rpm-rebuilddb +### begin 50_oneshot +# exit boostrap mode +rm -f /.bootstrap + +# export some important variables until there's a better solution +export LANG=en_US.UTF-8 +export LC_COLLATE=en_US.UTF-8 +export GSETTINGS_BACKEND=gconf + +# run the oneshot triggers for root and first user uid +UID_MIN=$(grep "^UID_MIN" /etc/login.defs | tr -s " " | cut -d " " -f2) +DEVICEUSER=`getent passwd $UID_MIN | sed 's/:.*//'` + +if [ -x /usr/bin/oneshot ]; then + su -c "/usr/bin/oneshot --mic" + su -c "/usr/bin/oneshot --mic" $DEVICEUSER +fi +### end 50_oneshot +### begin 60_ssu +if [ "$SSU_RELEASE_TYPE" = "rnd" ]; then + [ -n "@RNDRELEASE@" ] && ssu release -r @RNDRELEASE@ + [ -n "@RNDFLAVOUR@" ] && ssu flavour @RNDFLAVOUR@ + # RELEASE is reused in RND setups with parallel release structures + # this makes sure that an image created from such a structure updates from there + [ -n "@RELEASE@" ] && ssu set update-version @RELEASE@ + ssu mode 2 +else + [ -n "@RELEASE@" ] && ssu release @RELEASE@ + ssu mode 4 +fi +### end 60_ssu +%end + +%post --nochroot +export SSU_RELEASE_TYPE=release +### begin 01_release +if [ -n "$IMG_NAME" ]; then + echo "BUILD: $IMG_NAME" >> $INSTALL_ROOT/etc/meego-release +fi +### end 01_release +### begin hammerhead +cp $INSTALL_ROOT/etc/sailfish-release $IMG_OUT_DIR +### end hammerhead +%end + +%pack +export SSU_RELEASE_TYPE=release +### begin hybris +pushd $IMG_OUT_DIR + +DEVICE=hammerhead + +VERSION_FILE=./sailfish-release +source $VERSION_FILE + +# Locate rootfs tar.bz2 archive. +for filename in *.tar.bz2; do + GEN_IMG_BASE=$(basename $filename .tar.bz2) +done + +if [ ! -e "$GEN_IMG_BASE.tar.bz2" ]; then + echo "No rootfs archive found, exiting ..." + exit 1 +fi + +IMG_SIZE=$(du -h $GEN_IMG_BASE.tar.bz2 | cut -f1) + +# Output filenames +DST_IMG_BASE=$ID-$DEVICE-$SAILFISH_FLAVOUR-$VERSION_ID@EXTRA_NAME@ +DST_IMG=$DST_IMG_BASE.tar.bz2 + +# Copy boot image, updater scripts and updater binary into updater .zip tree. +mkdir -p updater/META-INF/com/google/android + +mv update-binary updater/META-INF/com/google/android/update-binary +mv hybris-updater-script updater/META-INF/com/google/android/updater-script +mv hybris-updater-unpack.sh updater/updater-unpack.sh +mv hybris-boot.img updater/hybris-boot.img + +# Temporarily move the rootfs into the updater directory +mv $GEN_IMG_BASE.tar.bz2 updater/$DST_IMG + +# Update updater-script with image details. +sed -i -e "s %VERSION% $VERSION_ID g" -e "s %IMAGE_FILE% $DST_IMG g" -e "s %IMAGE_SIZE% $IMG_SIZE g" updater/META-INF/com/google/android/updater-script + +# pack updater .zip +pushd updater +zip -r ../$DST_IMG_BASE.zip META-INF/com/google/android/update-binary META-INF/com/google/android/updater-script updater-unpack.sh hybris-boot.img $DST_IMG_BASE.ks $DST_IMG +popd # updater + +# Move the rootfs back out of the updater directory +mv updater/$DST_IMG $GEN_IMG_BASE.tar.bz2 + +# Clean up updater .zip working directory. +rm -rf updater + +popd # $IMG_OUT_DIR +### end hybris +%end + diff --git a/installroot/usr/share/package-groups/jolla-configuration-hammerhead.xml b/installroot/usr/share/package-groups/jolla-configuration-hammerhead.xml new file mode 100644 index 0000000..7586ff5 --- /dev/null +++ b/installroot/usr/share/package-groups/jolla-configuration-hammerhead.xml @@ -0,0 +1,25 @@ + + jolla-configuration-hammerhead + + Jolla Configuration hammerhead + Pattern with packages for hammerhead configurations + + Base Group + + + + + + + + + + + + + + + + + + diff --git a/installroot/usr/share/package-groups/jolla-hw-adaptation-hammerhead.xml b/installroot/usr/share/package-groups/jolla-hw-adaptation-hammerhead.xml new file mode 100644 index 0000000..1eafe4a --- /dev/null +++ b/installroot/usr/share/package-groups/jolla-hw-adaptation-hammerhead.xml @@ -0,0 +1,46 @@ + + jolla-hw-adaptation-hammerhead + + Jolla HW Adaptation hammerhead + Pattern with packages for hammerhead HW Adaptation + + Base Group + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/installroot/usr/share/package-groups/sailfish-porter-tools.xml b/installroot/usr/share/package-groups/sailfish-porter-tools.xml new file mode 100644 index 0000000..2a0e1fa --- /dev/null +++ b/installroot/usr/share/package-groups/sailfish-porter-tools.xml @@ -0,0 +1,20 @@ + + sailfish-porter-tools + + Sailfish OS Porter Tools + Pattern with packages for common debugging tools used by porters + + Base Group + + + + + + + + + + + + + diff --git a/installroot/usr/share/qt5/keymaps/droid.qmap b/installroot/usr/share/qt5/keymaps/droid.qmap new file mode 100644 index 0000000..333e2fb Binary files /dev/null and b/installroot/usr/share/qt5/keymaps/droid.qmap differ diff --git a/installroot/usr/share/ssu/board-mappings.d/05-lge-hammerhead.ini b/installroot/usr/share/ssu/board-mappings.d/05-lge-hammerhead.ini new file mode 100644 index 0000000..c238263 --- /dev/null +++ b/installroot/usr/share/ssu/board-mappings.d/05-lge-hammerhead.ini @@ -0,0 +1,13 @@ +[hwrelease.device] +hammerhead=hammerhead + +[hammerhead] +prettyModel=Nexus 5 +deviceManufacturer=LG +deviceDesignation=hammerhead +img-arch=armv7hl +img-type=fs + +[var-hammerhead] +vendor=lge +maintainer=jolla diff --git a/installroot/usr/share/ssu/features.d/adaptation-community.ini b/installroot/usr/share/ssu/features.d/adaptation-community.ini new file mode 100644 index 0000000..e69de29 diff --git a/installroot/usr/share/ssu/kickstart/attachment/hammerhead b/installroot/usr/share/ssu/kickstart/attachment/hammerhead new file mode 100644 index 0000000..03c720a --- /dev/null +++ b/installroot/usr/share/ssu/kickstart/attachment/hammerhead @@ -0,0 +1,5 @@ +/boot/hybris-boot.img +/boot/hybris-updater-script +/boot/hybris-updater-unpack.sh +/boot/update-binary + diff --git a/installroot/usr/share/ssu/kickstart/pack/hammerhead/hybris b/installroot/usr/share/ssu/kickstart/pack/hammerhead/hybris new file mode 100644 index 0000000..0634f83 --- /dev/null +++ b/installroot/usr/share/ssu/kickstart/pack/hammerhead/hybris @@ -0,0 +1,49 @@ +pushd $IMG_OUT_DIR + +DEVICE=hammerhead + +VERSION_FILE=./sailfish-release +source $VERSION_FILE + +# Locate rootfs tar.bz2 archive. +for filename in *.tar.bz2; do + GEN_IMG_BASE=$(basename $filename .tar.bz2) +done + +if [ ! -e "$GEN_IMG_BASE.tar.bz2" ]; then + echo "No rootfs archive found, exiting ..." + exit 1 +fi + +IMG_SIZE=$(du -h $GEN_IMG_BASE.tar.bz2 | cut -f1) + +# Output filenames +DST_IMG_BASE=$ID-$DEVICE-$SAILFISH_FLAVOUR-$VERSION_ID@EXTRA_NAME@ +DST_IMG=$DST_IMG_BASE.tar.bz2 + +# Copy boot image, updater scripts and updater binary into updater .zip tree. +mkdir -p updater/META-INF/com/google/android + +mv update-binary updater/META-INF/com/google/android/update-binary +mv hybris-updater-script updater/META-INF/com/google/android/updater-script +mv hybris-updater-unpack.sh updater/updater-unpack.sh +mv hybris-boot.img updater/hybris-boot.img + +# Temporarily move the rootfs into the updater directory +mv $GEN_IMG_BASE.tar.bz2 updater/$DST_IMG + +# Update updater-script with image details. +sed -i -e "s %VERSION% $VERSION_ID g" -e "s %IMAGE_FILE% $DST_IMG g" -e "s %IMAGE_SIZE% $IMG_SIZE g" updater/META-INF/com/google/android/updater-script + +# pack updater .zip +pushd updater +zip -r ../$DST_IMG_BASE.zip META-INF/com/google/android/update-binary META-INF/com/google/android/updater-script updater-unpack.sh hybris-boot.img $DST_IMG_BASE.ks $DST_IMG +popd # updater + +# Move the rootfs back out of the updater directory +mv updater/$DST_IMG $GEN_IMG_BASE.tar.bz2 + +# Clean up updater .zip working directory. +rm -rf updater + +popd # $IMG_OUT_DIR diff --git a/installroot/usr/share/ssu/kickstart/post_nochroot/hammerhead b/installroot/usr/share/ssu/kickstart/post_nochroot/hammerhead new file mode 100644 index 0000000..a84f3ac --- /dev/null +++ b/installroot/usr/share/ssu/kickstart/post_nochroot/hammerhead @@ -0,0 +1 @@ +cp $INSTALL_ROOT/etc/sailfish-release $IMG_OUT_DIR diff --git a/installroot/var/lib/environment/compositor/droid-hal-device.conf b/installroot/var/lib/environment/compositor/droid-hal-device.conf new file mode 100644 index 0000000..22f721a --- /dev/null +++ b/installroot/var/lib/environment/compositor/droid-hal-device.conf @@ -0,0 +1,12 @@ +# Config for Nexus5 CM11 +# Tell hybris to use hwcomposer to allow eglfs for Qt to use hwcomposernativewindow +EGL_PLATFORM=hwcomposer +# and Qt to use hwcomposer (note this needs a qpa hwcomposer plugin (qt5-qpa-hwcomposer-plugin)) +QT_QPA_PLATFORM=hwcomposer +# which looks like this on the hammerhead +QT_QPA_EGLFS_DEPTH=32 +QT_QPA_EGLFS_HIDECURSOR=1 +LIPSTICK_OPTIONS=-plugin evdevtouch:/dev/input/event1 -plugin evdevkeyboard:keymap=/usr/share/qt5/keymaps/droid.qmap + +QT_COMPOSITOR_NEGATE_INVERTED_Y=0 +# PRE_USER_SESSION_DISPLAY_OPTIONS=-displayX 187 -displayY -187 -displayRotation -9 diff --git a/installroot/var/lib/environment/nemo/60-multimedia.conf b/installroot/var/lib/environment/nemo/60-multimedia.conf new file mode 100644 index 0000000..35f58aa --- /dev/null +++ b/installroot/var/lib/environment/nemo/60-multimedia.conf @@ -0,0 +1,3 @@ +QT_GSTREAMER_CAMERABIN_SRC=droidcamsrc +QT_GSTREAMER_PLAYBIN_FLAGS=0 +QT_GSTREAMER_CAMERABIN_FLAGS=15 diff --git a/installroot/var/lib/environment/nemo/99-hybris.conf b/installroot/var/lib/environment/nemo/99-hybris.conf new file mode 100644 index 0000000..e085135 --- /dev/null +++ b/installroot/var/lib/environment/nemo/99-hybris.conf @@ -0,0 +1,2 @@ +# Ensure that we can find hybris libs from any hybris-enabled binary +HYBRIS_LD_LIBRARY_PATH=/usr/libexec/droid-hybris/system/lib:/vendor/lib:/system/lib diff --git a/installroot/var/lib/environment/ofono/noplugin.conf b/installroot/var/lib/environment/ofono/noplugin.conf new file mode 100644 index 0000000..e9ae212 --- /dev/null +++ b/installroot/var/lib/environment/ofono/noplugin.conf @@ -0,0 +1,31 @@ +OFONO_ARGS=--noplugin=\ +,he910\ +,dun_gw_bluez5\ +,hfp_bluez5\ +,hfp_ag_bluez5\ +,cdma_provision\ +,bluez5\ +,isimodem\ +,n900\ +,u8500\ +,qmimodem\ +,gobi\ +,cdmamodem\ +,isiusb\ +,nwmodem\ +,ztemodem\ +,iceramodem\ +,huaweimodem\ +,calypsomodem\ +,swmodem\ +,mbmmodem\ +,hsomodem\ +,ifxmodem\ +,stemodem\ +,dunmodem\ +,hfpmodem\ +,speedupmodem\ +,phonesim\ +,telitmodem\ +,udev\ +,udevng\ diff --git a/installroot/var/lib/flash-partition/device-info b/installroot/var/lib/flash-partition/device-info new file mode 100644 index 0000000..7e697d4 --- /dev/null +++ b/installroot/var/lib/flash-partition/device-info @@ -0,0 +1,8 @@ +CPUCHECK_STRING="Qualcomm MSM 8974 HAMMERHEAD" + +PART_1="boot" + +PART_REAL_1="mmcblk0p19" + +PART_I="1" + diff --git a/installroot/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/bta2dp b/installroot/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/bta2dp new file mode 100644 index 0000000..878a296 --- /dev/null +++ b/installroot/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/bta2dp @@ -0,0 +1,3 @@ +x-nemo.mainvolume.call = "0:-6000,1:-1400,2:-800,3:-450,4:-190,5:0" +x-nemo.mainvolume.media = "0:-20000,1:-5850,2:-5525,3:-5200,4:-4875,5:-4550,6:-4225,7:-3900,8:-3575,9:-3250,10:-2925,11:-2600,12:-2275,13:-1950,14:-1625,15:-1300,16:-975,17:-650,18:-325,19:0" +x-nemo.mainvolume.high-volume-step = "15" diff --git a/installroot/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/btmono b/installroot/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/btmono new file mode 100644 index 0000000..0093016 --- /dev/null +++ b/installroot/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/btmono @@ -0,0 +1,2 @@ +x-nemo.mainvolume.call = "0:-20000,1:-6175,2:-4875,3:-3625,4:-3025,5:-2425,6:-2025,7:-1815,8:-1625,9:-1200,10:-1025,11:-700,12:-575,13:-250,14:-125,15:0" +x-nemo.mainvolume.media = "0:-20000,1:-6175,2:-4875,3:-4225,4:-3625,5:-3025,6:-2425,7:-1815,8:-1625,9:-1200,10:-1025,11:-700,12:-575,13:-450,14:-225,15:0" diff --git a/installroot/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/hp b/installroot/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/hp new file mode 100644 index 0000000..423f020 --- /dev/null +++ b/installroot/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/hp @@ -0,0 +1,2 @@ +x-nemo.mainvolume.call = "0:-6000,1:-1400,2:-800,3:-450,4:-190,5:0" +x-nemo.mainvolume.media = "0:-6175,1:-5850,2:-5525,3:-5200,4:-4875,5:-4550,6:-4225,7:-3900,8:-3575,9:-3250,10:-2925,11:-2600,12:-2275,13:-1950,14:-1625,15:-1300,16:-975,17:-650,18:-325,19:0" diff --git a/installroot/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/ihf b/installroot/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/ihf new file mode 100644 index 0000000..687971b --- /dev/null +++ b/installroot/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/ihf @@ -0,0 +1,2 @@ +x-nemo.mainvolume.call = "0:-6000,1:-1400,2:-800,3:-450,4:-190,5:0" +x-nemo.mainvolume.media = "0:-20000,1:-3800,2:-3187,3:-2648,4:-2158,5:-1716,6:-1324,7:-932,8:-612,9:-368,10:-122,11:0" diff --git a/installroot/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/lineout b/installroot/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/lineout new file mode 100644 index 0000000..f3c42c0 --- /dev/null +++ b/installroot/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/lineout @@ -0,0 +1,3 @@ +x-nemo.mainvolume.call = "0:-6000,1:-1400,2:-800,3:-450,4:-190,5:0" +x-nemo.mainvolume.media = "0:-20000,1:-5500,2:-5000,3:-4500,4:-4000,5:-3600,6:-3200,7:-2800,8:-2500,9:-2200,10:-1900,11:-1600,12:-1300,13:-1100,14:-950,15:-800,16:-600,17:-400,18:-200,19:0" +x-nemo.mainvolume.high-volume-step = "12" diff --git a/installroot/var/lib/nemo-pulseaudio-parameters/modes/bta2dp/mainvolume b/installroot/var/lib/nemo-pulseaudio-parameters/modes/bta2dp/mainvolume new file mode 120000 index 0000000..3fe53b2 --- /dev/null +++ b/installroot/var/lib/nemo-pulseaudio-parameters/modes/bta2dp/mainvolume @@ -0,0 +1 @@ +../../algs/mainvolume/bta2dp \ No newline at end of file diff --git a/installroot/var/lib/nemo-pulseaudio-parameters/modes/btmono-hfp/mainvolume b/installroot/var/lib/nemo-pulseaudio-parameters/modes/btmono-hfp/mainvolume new file mode 120000 index 0000000..b875fdd --- /dev/null +++ b/installroot/var/lib/nemo-pulseaudio-parameters/modes/btmono-hfp/mainvolume @@ -0,0 +1 @@ +../../algs/mainvolume/btmono \ No newline at end of file diff --git a/installroot/var/lib/nemo-pulseaudio-parameters/modes/btmono-hsp/mainvolume b/installroot/var/lib/nemo-pulseaudio-parameters/modes/btmono-hsp/mainvolume new file mode 120000 index 0000000..b875fdd --- /dev/null +++ b/installroot/var/lib/nemo-pulseaudio-parameters/modes/btmono-hsp/mainvolume @@ -0,0 +1 @@ +../../algs/mainvolume/btmono \ No newline at end of file diff --git a/installroot/var/lib/nemo-pulseaudio-parameters/modes/btmono/mainvolume b/installroot/var/lib/nemo-pulseaudio-parameters/modes/btmono/mainvolume new file mode 120000 index 0000000..b875fdd --- /dev/null +++ b/installroot/var/lib/nemo-pulseaudio-parameters/modes/btmono/mainvolume @@ -0,0 +1 @@ +../../algs/mainvolume/btmono \ No newline at end of file diff --git a/installroot/var/lib/nemo-pulseaudio-parameters/modes/hp/mainvolume b/installroot/var/lib/nemo-pulseaudio-parameters/modes/hp/mainvolume new file mode 120000 index 0000000..4f75aa9 --- /dev/null +++ b/installroot/var/lib/nemo-pulseaudio-parameters/modes/hp/mainvolume @@ -0,0 +1 @@ +../../algs/mainvolume/hp \ No newline at end of file diff --git a/installroot/var/lib/nemo-pulseaudio-parameters/modes/hs/mainvolume b/installroot/var/lib/nemo-pulseaudio-parameters/modes/hs/mainvolume new file mode 120000 index 0000000..a475731 --- /dev/null +++ b/installroot/var/lib/nemo-pulseaudio-parameters/modes/hs/mainvolume @@ -0,0 +1 @@ +../../algs/mainvolume/lineout \ No newline at end of file diff --git a/installroot/var/lib/nemo-pulseaudio-parameters/modes/ihf/mainvolume b/installroot/var/lib/nemo-pulseaudio-parameters/modes/ihf/mainvolume new file mode 120000 index 0000000..313d4e2 --- /dev/null +++ b/installroot/var/lib/nemo-pulseaudio-parameters/modes/ihf/mainvolume @@ -0,0 +1 @@ +../../algs/mainvolume/ihf \ No newline at end of file diff --git a/installroot/var/lib/nemo-pulseaudio-parameters/modes/ihfandbtmono-hfp/mainvolume b/installroot/var/lib/nemo-pulseaudio-parameters/modes/ihfandbtmono-hfp/mainvolume new file mode 120000 index 0000000..b875fdd --- /dev/null +++ b/installroot/var/lib/nemo-pulseaudio-parameters/modes/ihfandbtmono-hfp/mainvolume @@ -0,0 +1 @@ +../../algs/mainvolume/btmono \ No newline at end of file diff --git a/installroot/var/lib/nemo-pulseaudio-parameters/modes/ihfandbtmono-hsp/mainvolume b/installroot/var/lib/nemo-pulseaudio-parameters/modes/ihfandbtmono-hsp/mainvolume new file mode 120000 index 0000000..b875fdd --- /dev/null +++ b/installroot/var/lib/nemo-pulseaudio-parameters/modes/ihfandbtmono-hsp/mainvolume @@ -0,0 +1 @@ +../../algs/mainvolume/btmono \ No newline at end of file diff --git a/installroot/var/lib/nemo-pulseaudio-parameters/modes/ihfandbtmono/mainvolume b/installroot/var/lib/nemo-pulseaudio-parameters/modes/ihfandbtmono/mainvolume new file mode 120000 index 0000000..b875fdd --- /dev/null +++ b/installroot/var/lib/nemo-pulseaudio-parameters/modes/ihfandbtmono/mainvolume @@ -0,0 +1 @@ +../../algs/mainvolume/btmono \ No newline at end of file diff --git a/installroot/var/lib/nemo-pulseaudio-parameters/modes/ihfandheadset/mainvolume b/installroot/var/lib/nemo-pulseaudio-parameters/modes/ihfandheadset/mainvolume new file mode 120000 index 0000000..313d4e2 --- /dev/null +++ b/installroot/var/lib/nemo-pulseaudio-parameters/modes/ihfandheadset/mainvolume @@ -0,0 +1 @@ +../../algs/mainvolume/ihf \ No newline at end of file diff --git a/installroot/var/lib/nemo-pulseaudio-parameters/modes/ihfandlineout/mainvolume b/installroot/var/lib/nemo-pulseaudio-parameters/modes/ihfandlineout/mainvolume new file mode 120000 index 0000000..313d4e2 --- /dev/null +++ b/installroot/var/lib/nemo-pulseaudio-parameters/modes/ihfandlineout/mainvolume @@ -0,0 +1 @@ +../../algs/mainvolume/ihf \ No newline at end of file diff --git a/installroot/var/lib/nemo-pulseaudio-parameters/modes/lineout/mainvolume b/installroot/var/lib/nemo-pulseaudio-parameters/modes/lineout/mainvolume new file mode 120000 index 0000000..a475731 --- /dev/null +++ b/installroot/var/lib/nemo-pulseaudio-parameters/modes/lineout/mainvolume @@ -0,0 +1 @@ +../../algs/mainvolume/lineout \ No newline at end of file diff --git a/installroot/var/lib/platform-updates/flash-bootimg.sh b/installroot/var/lib/platform-updates/flash-bootimg.sh new file mode 100755 index 0000000..e1e1cf4 --- /dev/null +++ b/installroot/var/lib/platform-updates/flash-bootimg.sh @@ -0,0 +1,3 @@ +#!/bin/sh +/usr/sbin/flash-partition boot /boot/hybris-boot.img + diff --git a/patterns/jolla-configuration-hammerhead.yaml b/patterns/jolla-configuration-hammerhead.yaml index 4ad92bc..0c1e43f 100644 --- a/patterns/jolla-configuration-hammerhead.yaml +++ b/patterns/jolla-configuration-hammerhead.yaml @@ -39,5 +39,9 @@ Requires: # needs some configuration to get all features working - csd +# Devices with 2G or more memory should also include this booster +# to improve camera startup times and the like +- mapplauncherd-booster-silica-qt5-media + Summary: Jolla Configuration hammerhead diff --git a/tmp/bluez4.files b/tmp/bluez4.files new file mode 100644 index 0000000..553c829 --- /dev/null +++ b/tmp/bluez4.files @@ -0,0 +1,2 @@ +/etc/pulse/bluez4_stream_restore.pa +/etc/pulse/xpolicy.conf.d/bluez4.conf diff --git a/tmp/bluez5.files b/tmp/bluez5.files new file mode 100644 index 0000000..b43434c --- /dev/null +++ b/tmp/bluez5.files @@ -0,0 +1,2 @@ +/etc/pulse/bluez5_stream_restore.pa +/etc/pulse/xpolicy.conf.d/bluez5.conf diff --git a/tmp/droid-config.files b/tmp/droid-config.files new file mode 100644 index 0000000..1a73d63 --- /dev/null +++ b/tmp/droid-config.files @@ -0,0 +1,97 @@ +%defattr(-,root,root,-) +/var/lib/environment/nemo/60-multimedia.conf +/var/lib/environment/nemo/99-hybris.conf +/var/lib/environment/ofono/noplugin.conf +/lib/systemd/system/graphical.target.wants/droid-late-start.service +/lib/systemd/system/graphical.target.wants/droid-hal-init.service +/lib/systemd/system/droid-late-start.service +/lib/systemd/system/actdead.target.wants/droid-hal-init.service +/lib/systemd/system/adbd.service +/lib/systemd/system/adbd-prepare.service +/lib/systemd/system/droid-hal-init.service +/lib/udev/platform-device +/lib/udev/rules.d/998-droid-system.rules +/lib/udev/rules.d/997-droid-drm.rules +/etc/modprobe.d/blacklist-evbug.conf +/etc/media_codecs.xml +/etc/media_codecs_google_telephony.xml +/etc/audio_platform_info.xml +/etc/acdbdata +/etc/obexd/excludes/bluetooth:pcsuite +/etc/obexd/root +/etc/obexd/noplugins/syncevolution +/etc/obexd/noplugins/irmc +/etc/obexd/noplugins/mas +/etc/obexd/noplugins/ftp +/etc/obexd/opp.conf +/etc/obexd/pbap.conf +/etc/sec_config +/etc/xtwifi.conf +/etc/gps.conf +/etc/sysctl.d/ipv6-settings.conf +/etc/sysctl.d/ipv4-settings.conf +/etc/sap.conf +/etc/xtra_root_cert.pem +/etc/media_codecs_google_video.xml +/etc/xdg/QtProject/QtQuick2.conf +/etc/xdg/QtProject/QPlatformTheme.conf +/etc/xdg/QtProject/Sensors.conf +/etc/media_codecs_google_audio.xml +/etc/media_codecs_ffmpeg.xml +/etc/media_profiles.xml +/etc/mixer_paths.xml +/etc/bluetooth/audio.conf +/etc/bluetooth/main.conf +/etc/bluetooth/rfcomm.conf +/etc/bluetooth/network.conf +/etc/bluetooth/input.conf +/etc/bluetooth/serial.conf +/etc/bluetooth/jolla.conf +/etc/usb-moded/dyn-modes/mtp_mode-droid.ini +/etc/sensorfw/primaryuse.conf +/etc/izat.conf +/usr/share/environment/nemo/hybris.conf +/usr/bin/droid/get_partition.sh +/usr/bin/droid/droid-init-done.sh +/usr/bin/droid/droid-hal-shutdown.sh +/usr/bin/droid/droid-hal-startup.sh +/usr/lib/tmpfiles.d/droid-hal.conf +/usr/sbin/adbd-functionfs.sh +/var/lib/environment/compositor/droid-hal-device.conf +/lib/systemd/system/android-links.service +/lib/systemd/system/local-fs.target.wants/android.mount +/lib/systemd/system/multi-user.target.wants/android-links.service +/lib/systemd/system/multi-user.target.wants/bt-sleep-monitor.timer +/lib/systemd/system/hciattach.service +/lib/systemd/system/dev-ttyHS99.device +/lib/systemd/system/bt-sleep-monitor.timer +/lib/systemd/system/android.mount +/lib/systemd/system/bt-sleep-monitor.service +/lib/udev/platform-device +/lib/udev/rules.d/999-bluetooth.rules +/lib/udev/rules.d/999-torch.rules +/lib/udev/rules.d/998-droid-system.rules +/lib/udev/rules.d/999-extra-rules.rules +/etc/media_codecs.xml +/etc/media_codecs_google_telephony.xml +/etc/acdbdata +/etc/gps.conf +/etc/audio_policy.xm +/etc/media_codecs_google_video.xml +/etc/media_codecs_performance.xml +/etc/wifi/wpa_supplicant_overlay.conf +/etc/wifi/p2p_supplicant_overlay.conf +/etc/wifi/bcmdhd.cal +/etc/wifi/wpa_supplicant.conf +/etc/media_codecs_google_audio.xml +/etc/media_codecs_ffmpeg.xml +/etc/media_profiles.xml +/etc/ofono/ril_subscription.conf +/etc/mixer_paths.xml +/etc/gst-droid/gstdroidcamsrc-0.conf +/etc/gst-droid/gstdroidcodec.conf +/etc/gst-droid/gstdroidcamsrc-1.conf +/etc/gst-droid/gstdroidcamsrcquirks.conf +/usr/bin/droid/android-links.sh +/usr/bin/bt-sleep-monitor.sh +/usr/lib/modules-load.d/droid-hal-hammerhead.conf diff --git a/tmp/flashing.files b/tmp/flashing.files new file mode 100644 index 0000000..4fd5c44 --- /dev/null +++ b/tmp/flashing.files @@ -0,0 +1,3 @@ +/usr/sbin/flash-partition +/var/lib/flash-partition/device-info +/var/lib/platform-updates/flash-bootimg.sh diff --git a/tmp/kickstart-configuration.files b/tmp/kickstart-configuration.files new file mode 100644 index 0000000..e9f3582 --- /dev/null +++ b/tmp/kickstart-configuration.files @@ -0,0 +1,3 @@ +/usr/share/ssu/kickstart/post_nochroot/hammerhead +/usr/share/ssu/kickstart/attachment/hammerhead +/usr/share/ssu/kickstart/pack/hammerhead/hybris diff --git a/tmp/policy-settings.files b/tmp/policy-settings.files new file mode 100644 index 0000000..f3e4b56 --- /dev/null +++ b/tmp/policy-settings.files @@ -0,0 +1,6 @@ +/etc/ohm/dbus_signal_conf.ini +/etc/ohm/modules.ini +/etc/ohm/plugins.d/dbus_signal.ini +/etc/ohm/ohmd.ini +/etc/dbus-1/system.d/ohm-policy.conf +/etc/ohm/plugins.d/accessories.ini diff --git a/tmp/pulseaudio-settings.files b/tmp/pulseaudio-settings.files new file mode 100644 index 0000000..28cab4e --- /dev/null +++ b/tmp/pulseaudio-settings.files @@ -0,0 +1,28 @@ +/var/lib/nemo-pulseaudio-parameters/modes/ihfandbtmono-hsp/mainvolume +/var/lib/nemo-pulseaudio-parameters/modes/btmono-hsp/mainvolume +/var/lib/nemo-pulseaudio-parameters/modes/ihfandheadset/mainvolume +/var/lib/nemo-pulseaudio-parameters/modes/ihfandbtmono-hfp/mainvolume +/var/lib/nemo-pulseaudio-parameters/modes/bta2dp/mainvolume +/var/lib/nemo-pulseaudio-parameters/modes/hp/mainvolume +/var/lib/nemo-pulseaudio-parameters/modes/ihfandlineout/mainvolume +/var/lib/nemo-pulseaudio-parameters/modes/ihfandbtmono/mainvolume +/var/lib/nemo-pulseaudio-parameters/modes/ihf/mainvolume +/var/lib/nemo-pulseaudio-parameters/modes/btmono/mainvolume +/var/lib/nemo-pulseaudio-parameters/modes/btmono-hfp/mainvolume +/var/lib/nemo-pulseaudio-parameters/modes/lineout/mainvolume +/var/lib/nemo-pulseaudio-parameters/modes/hs/mainvolume +/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/bta2dp +/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/hp +/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/ihf +/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/btmono +/var/lib/nemo-pulseaudio-parameters/algs/mainvolume/lineout +/etc/pulse/x-maemo-stream-restore.table +/etc/pulse/xpolicy.conf +/etc/pulse/arm_droid_default.pa +/etc/pulse/x-maemo-route.table +/etc/pulse/x-maemo-sink-volume.table +/etc/pulse/mainvolume-listening-time-notifier.conf +/etc/pulse/x-maemo-match.table +/etc/sysconfig/pulseaudio +/etc/pulse/arm_msm8974_hammerhead.pa +/etc/sysconfig/pulseaudio diff --git a/tmp/sailfish-settings.files b/tmp/sailfish-settings.files new file mode 100644 index 0000000..a483aa5 --- /dev/null +++ b/tmp/sailfish-settings.files @@ -0,0 +1,5 @@ +/etc/dconf/db/vendor.d/locks/screen-rotation.txt +/etc/dconf/db/vendor.d/locks/silica-configs.txt +/etc/dconf/db/vendor.d/screen-rotation.txt +/etc/dconf/db/vendor.d/silica-configs.txt +/etc/dconf/db/vendor.d/jolla-camera-hw.txt diff --git a/tmp/ssu-kickstarts.files b/tmp/ssu-kickstarts.files new file mode 100644 index 0000000..861393a --- /dev/null +++ b/tmp/ssu-kickstarts.files @@ -0,0 +1 @@ +/usr/share/kickstarts/Jolla-@RELEASE@-hammerhead-@ARCH@.ks