Created
September 26, 2018 03:53
-
-
Save 0312birdzhang/5c99bf399dc04b2de8b40c536a3a2c5b to your computer and use it in GitHub Desktop.
SFOS HADK Backup
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
https://public.etherpad-mozilla.org/p/faq-hadk | |
Please, do not use browser-in-place translation tools (right-click translate-this) or similar. They overwrite the content on this page. | |
--------------------------------------------------------------------------------------------------------------------- | |
So you booted your Sailfish OS? Congrats! No GUI? Oh dear :) | |
both usb0 and rndis0 interfaces might be up, remove usb0 from init-script and rebuild kernel image with make hybris-boot or make hybris-recovery | |
selinux and user session masking are now in HADK v1.1.1 section 9.2.1 | |
USB tethering is now in HADK v1.1.1 section 9.2.3 | |
------------------------------------------------------------------------------------------------------------- | |
sudo: effective uid is not 0, is sudo installed setuid root? | |
Just after chroot is entered through the `sdk` command, sudo fails to execute and fails with the previous message | |
check for suid mount flag in the bind-mounted root: if your home (not chroot home) is mounted with nosuid you need to remount it before | |
$HOST | |
sudo mount -o remount,suid $HOME | |
If you're running an encrypted home partition with ecryptfs, you need to remount home anyway, even if nosuid flag is not set | |
$HOST | |
sudo mount -i -o remount,suid $HOME) | |
repo init -u git://github.com/mer-hybris/android.git -b hybris-11.0 fails because of gpg | |
In sdk chroot gpg command is gpg2 | |
$MERSDK | |
git config --global gpg.program gpg2 | |
lipstick segfaults/no display | |
As you follow steps below, strace any of the binaries that would fail for non-obvious reasons. You'll need to install strace to do so: zypper in strace | |
test simple hwc as root: | |
EGL_PLATFORM=hwcomposer test_hwcomposer | |
^^ strace if segfaults | |
if strace dies after open("/sys/kernel/debug/tracing/trace_marker..., perform | |
systemctl mask sys-kernel-debug.mount | |
test_hwcomposer should not be used as reliable hwc test!! if fails, then try minimer: | |
curl -O https://qtl.me/minimer3.tar.gz # seems to currently give 404, the archive is mirrored at https://1drv.ms/u/s!AuDqiTFly4jxgxYNUdt16YluZn90 | |
zypper in qt5-qtdeclarative-qmlscene | |
tar -xf minimer3.tar.gz; cd minimer | |
EGL_PLATFORM=hwcomposer /usr/lib/qt5/bin/qmlscene -platform hwcomposer main.qml | |
if fails as user, try as root | |
/system/bin/surfaceflinger | |
for more info: zypper in gdb | |
if you get test_hwcomposer, minimer or lipstick segfault, or test_hwcomposer or minimer running but doing nothing (as on m7) | |
Check if your device uses qcom_display-caf or display-legacy | |
Look in any of the BoardConfig.mk or BoardConfigCommon.mk in any of the device repos for the device for the variable TARGET_QCOM_DISPLAY_VARIANT. It should be set to either caf or legacy. | |
The repos included can be determined by looking at the -include device/$VENDOR/*/BoardConfig.mk or device/$VENDOR/*/BoardConfigCommon.mk lines at beginning the .mk files starting from the primary BoardConfig.mk | |
If you're on display-legacy or display-caf(repo sync before 2015.06.04) patch hwcomposer withhttp://pastebin.com/AfRXPKVA | |
From HABUILD_SDK recompile android hwcomposer*.so for your device | |
Find the name of the hwcomposer*.so module: run make modules | grep hwcomposer | |
If this command complains about missing column command run sudo apt-get install bsdmainutils) | |
Run `make hwcomposer.module_name` from results above | |
Once rebuilt, hwcomposer.*.so will be picked up and used by droid hal rebuild, and reside under /usr/libexec/droid-hybris/system/lib/hw | |
If your apps are crashing (like on flo): Repeat the same for gralloc and copybit | |
Scream on the IRC if this worked for you | |
If strace indicates something like: | |
"Waiting for service display.qservice..." | |
This error is known only on cm-10.1 base, and will be upstreamed to mer-hybris soon, but we need more tests: applyhttps://github.com/mer-hybris/android_frameworks_native/commit/6ed4a6e834f6c71b2b6bd8ae1134f50b060e70be to this line https://github.com/CyanogenMod/android_frameworks_base/blob/cm-10.1/cmds/servicemanager/service_manager.c#L88 and also apply https://github.com/mer-hybris/android_system_core/commit/34ea48fd3ad7bf47ec0d0524d76bd20e62717773 | |
open("/sys/kernel/debug/tracing/trace_marker", O_WRONLY|O_LARGEFILE) = | |
disable debugfs by: https://github.com/mer-hybris/droid-hal-device/commit/8d437fc6f215081d4e1d2baaa6ac23bb94f73154 | |
if it still crashes on gralloc or other gpu related bits, refer to WIP: https://wiki.merproject.org/wiki/Adaptations/libhybris/gpu | |
Devices with Mali GPU | |
Add this to $ANDROID_ROOT/rpm/droid-hal-$DEVICE.spec before the last line (do not change the last line, ever) | |
%define android_config \ | |
#define MALI_QUIRKS 1\ | |
%{nil} | |
Rebuild droid-hal and libhybris packages | |
------------------------------------------------------------------------------------------------------------- | |
Skip tutorial: | |
Congratulations if you have got gui working. During the debugging process you will be building and flashing quite a few times, in which tutorial during the setup screen can be annoying. You can skip that by tapping on the each corner of the screen clockwise, while starting from left-top corner. | |
------------------------------------------------------------------------------------------------------------- | |
SIM card not detected: | |
This often causes a bootloop | |
Cellular Modem bringup is now in HADK v1.1.1 section 13.3 | |
Additional checks: | |
Replicate /dev/block structure from Android as closely as possible (for rild to be able to access the modem partition) | |
Run ls -lR /dev/block in CM | |
Run ls -lR /dev/block in Sailfish OS | |
diff the two outputs (this is WIP - android's toolbox ls might need more parameters to produce a comparable output) | |
If you see differences you need to add custom udev rules to create the correct /dev/block structure | |
(added automatically since 2016-12-10) For devices with /dev/block/platform/msm_sdcc.1/by-name/ paths (msm_sdcc.1 can be different) add to $ANDROID_ROOT/rpm/ these paths and files with contents, and it most probably will help (but still paste your diff to the IRC channel): | |
https://github.com/mer-hybris-kis3/droid-config-kis3/blob/master/sparse/lib/udev/platform-device | |
https://github.com/mer-hybris-kis3/droid-config-kis3/blob/master/sparse/lib/udev/rules.d/998-droid-system.rules | |
(added automatically since 2017-06-03) Some devices (at least all hybris-13.0 based ports) have /dev/block/bootdevice/by-name/ as /dev/block structure in CM in which case you need to add the following line to the end of the 998-droid-system.rules file in the last link: | |
ENV{ID_PART_ENTRY_SCHEME}=="gpt", ENV{ID_PART_ENTRY_NAME}=="?*", IMPORT{program}="/bin/sh /lib/udev/platform-device $env{DEVPATH}", SYMLINK+="block/bootdevice/by-name/$env{ID_PART_ENTRY_NAME}" | |
If you have logcat and journal error messages suggesting that RIL/ofono can't power the modem on and you have a qcom chipset, have a look in your init.qcom.rc for lines that power it on when the boot animation (bootanim) stops. If you have those, try this (paths may need correcting): https://github.com/stephgosling/android_device_htc_m7-common/commit/9f4abdca65356090e6dd6f0356c5cf4a1870aa5f (note the typo there in the chown line!) | |
If you have pil-q6v5-mss fc880000.qcom,mss: modem: Failed to locate modem.mdt in your dmesg then try this steps: | |
Mask firmware.mount | |
add this service to /lib/systemd/system/ https://pastebin.com/9tbUtVnC | |
create symlink to that service in /lib/systemd/system/local-fs.target.wants/ | |
add /usr/bin/droid/extract_firmware.sh with this content https://pastebin.com/bgphKn4z | |
------------------------------------------------------------------------------------------------------------- | |
Ofono problems: | |
RILD is running but ofono does not work | |
If ofono is not working properly and shows "ERROR! Can't connect to RILD: No such file or directory" in logs, edit /etc/ofono/ril_subscription.conf to contain | |
[ril_0] | |
name=RIL1 | |
socket=/dev/socket/rild | |
# if your device is dual SIM, add also these lines (don't add them otherwise!): | |
[ril_1] | |
name=RIL2 | |
socket=/dev/socket/rild2 | |
If it works add your ril_subscription.conf to the droid-config-$DEVICE like done here https://github.com/Nokius/droid-config-find5/commit/3e3e636e7e3973f9102ebca9dea79794c00c9174 | |
Also add the jolla-settings-networking-multisim to patterns like done here https://github.com/mlehtima/droid-config-fp2-sibon/blob/master/patterns/jolla-configuration-fp2-sibon.yaml#L15 | |
Fix remembering manual access point configurations across reboots run the following command before building the image | |
sed -i "/begin 60_ssu/a chown -R radio:radio /var/lib/ofono" Jolla-@RELEASE@-$DEVICE-@ARCH@.ks | |
Devices without modem | |
File /etc/ofono/ril_subscription.conf should contain | |
[Settings] | |
EmptyConfig=true | |
------------------------------------------------------------------------------------------------------------- | |
Phone calls fail but SMS and mobile data work -> HADK v2.0.0 | |
------------------------------------------------------------------------------------------------------------- | |
how to bring store to your device: | |
Your device adaptation should be on Mer OBS (read "Building things on OBS" below) | |
Do `ssu s`, Device UID should show a unique ID that is: | |
IMEI for devices with modem, note - your GSM modem should provide a valid IMEI even without an inserted SIM! Always a good cross-check that IMEI matches the one on your phone's box or under battery, and in CM/Android | |
For devices without modem -- WLAN or BT MAC address. | |
Find another port/phone and prove that unique ID there is different than yours, and that all of them persist across reboots. | |
If unique ID is OK then ping pketo on #sailfishos-porters with "Device model" line from `ssu s` to enable store for you. | |
------------------------------------------------------------------------------------------------------------- | |
gstreamer-1.0 support (video and camera): -> HADK v2.0.0 | |
------------------------------------------------------------------------------------------------------------- | |
Waiting for service SurfaceFlinger seen in logcat? then read this (read surfaceflinger-hack below) | |
If you are using a service like lipstick-hack which loads surfaceflinger for a few seconds to init the hardware, then this stops servicemanager seeing minisfservice as SurfaceFlinger becuase it uses the same service name, then dies. | |
Disable/mask lipstick-hack from being started by systemd | |
Add lipstickhack to /init.rc and start in the the core class | |
service lipstickhack /usr/bin/droid/lipstick-hack.sh | |
class core | |
user system | |
oneshot | |
group graphics drmrpc | |
------------------------------------------------------------------------------------------------------------- | |
Alternative to lipstick-hack (aka surfaceflinger-hack): | |
For devices that need the so called lipstick-hack to start surfaceflinger for a few seconds to init the hardware we developed an alternative as the lipstick-hack has proven to be rather unstable during system boots. | |
This alternative uses a modified version of libsurfaceflinger itself to init the display and then exits it's main run loop and afterwards behaves like minisfservice. This eliminates the timing issues of lipstick-hack. | |
Implementation: | |
1. BoardConfig.mk | |
- in the BoardCommon.mk of your device add the following lines: | |
# SurfaceFlinger init | |
BOARD_USE_MOTO_SF = true | |
2. libsurfaceflinger | |
- apply the patches from https://github.com/guhl/android_frameworks_native/commit/ead91374111114fded280abe56484523355ee2cc to $ANDROID_ROOT/frameworks/native/services/surfaceflinger | |
- in HABUILD_SDK build libsurfaceflinger by doing: | |
source build/envsetup.sh | |
breakfast $DEVICE | |
make libsurfaceflinger | |
3. | |
- apply the patches from https://github.com/guhl/droidmedia/commit/cf176cd1bec2c0e5b633b8d728528edc6133ed7d to $ANDROID_ROOT/external/droidmedia | |
- build droidmedia as described in HADK v2.0.1 - chapter 13.2 | |
4. init.rc | |
- add minisfservice as a service to your $ANDROID_ROOT/system/core/rootdir/init.rc like this: | |
service minisf /usr/libexec/droid-hybris/system/bin/minisfservice | |
setenv LD_PRELOAD /usr/libexec/droid-hybris/system/lib/libsurfaceflinger.so | |
class main | |
user system | |
group graphics | |
5. rebuild hybris-hal | |
as described in HADK v2.0.0 - chapter 5.4 and afterwards package Droid HAL and build the Root Filesystem | |
------------------------------------------------------------------------------------------------------------- | |
hls streams and other codecs: | |
devel-su | |
ssu ar experimental http://repo.merproject.org/obs/nemo:/devel:/hw:/experimental/sailfish_latest_armv7hl/ | |
zypper ref experimental | |
zypper dup --from experimental | |
------------------------------------------------------------------------------------------------------------- | |
monitoring udev events: | |
udevadm monitor is your friend. T | |
To get it for cyanogenmod, add this repository https://github.com/chombourger/android-udev/ to your manifest as external/usb and make udevadm | |
To monitor boot-time events, compile the kernel with CONFIG_DEBUG_KOBJECT=y and increase the log buffer size by setting the kernel command line option: log_buf_len=21 (or higher) | |
------------------------------------------------------------------------------------------------------------- | |
persistent journalctl: | |
modify /etc/systemd/journald.conf | |
Storage=volatile --> Storage=automatic | |
mkdir /var/log/journal | |
reboot | |
Systemd suppresses journal, and some valuable info might get hidden. To prevent this, set | |
RateLimitInterval=0 | |
------------------------------------------------------------------------------------------------------------- | |
Nothing provides /system/bin/sh: | |
Add this to your .spec | |
%define __provides_exclude_from ^/system/.*$ | |
%define __requires_exclude ^/system/bin/.*$ | |
%define __find_provides %{nil} | |
%define __find_requires %{nil} | |
------------------------------------------------------------------------------------------------------------- | |
to change pixel ratio on a running device, as user: | |
devel-su dconf update | |
# PIXEL_RATIO should be close to the value of horizontal_display_resolution/540 | |
# e.g. Nexus 7 (800 x 1280) displays the pixel ratio is 800/540~=1.48 | |
# always round the value up with two decimal precision | |
PIXEL_RATIO=1.48 | |
# UPDATE! Please test the new formula for pixel ratio calculation: | |
# diagonal_display_size_inches/4.5 * horizontal_display_resolution/540 | |
# and feedback the outcome to sledges via IRC (better/worse/closer via own trial&error picks?) | |
# Yet another formula: YourDevicePPI/sbjPPI (245), e.g. OnePlusX PPI 441/245 = 1.8 | |
# Available ICON_RES values are 1.0, 1.25, 1.5, 1.75, and 2.0. Choose the closest one to PIXEL_RATIO: | |
ICON_RES=1.5 | |
devel-su zypper in jolla-ambient-z$ICON_RES ambient-icons-closed-z$ICON_RES | |
dconf write /desktop/sailfish/silica/theme_pixel_ratio $PIXEL_RATIO | |
dconf write /desktop/sailfish/silica/theme_icon_subdir $ | |
# check that everything worked: | |
dconf read /desktop/sailfish/silica/theme_pixel_ratio | |
devel-su reboot | |
# PIXEL_RATIO and ICON_RES are subjects to fine tuning: https://bugs.nemomobile.org/show_bug.cgi?id=814#c1 | |
Script to scale your icons https://pastebin.com/mxKRkt7Z | |
------------------------------------------------------------------------------------------------------------- | |
existence_error (yes, you read that right) when locally building policy-settings-common: | |
You get: | |
ERROR: error(existence_error(procedure, qsave_program/2), context(precompile/0, _G669)) | |
Solution: | |
sb2 -t $VENDOR-$DEVICE-armv7hl -R -msdk-install | |
cd /usr/lib/swipl-5.6.50/library | |
rm INDEX.pl | |
zypper in fakeroot | |
fakeroot swipl -g true -t 'make_library_index(.)' | |
then rebuild the package again with mb2 | |
------------------------------------------------------------------------------------------------------------- | |
rpm/dhd/helpers/build_packages.sh fails building libhybris, ... | |
HOST$ | |
cd $HOME | |
sudo mkdir -p $MER_ROOT/devel | |
sudo chown -R $USER mer/devel | |
run the script again | |
------------------------------------------------------------------------------------------------------------- | |
make[3]: *** [security/commoncap.o] Error 1... | |
Those errors appears because ANDROID_CONFIG_PARANOID_NETWORK is disabled in your kernel and with it enabled, you can't access internet with Sailfish OS. ( Since hybris-12.1, rild does not work without ANDROID_CONFIG_PARANOID_NETWORK. Add nemo to group inet if it is enabled.) | |
Check http://forum.xda-developers.com/showpost.php?p=42880275&postcount=104 | |
To resolve this replace in <path of your kernel>/security/commoncap.c : | |
if (cap == CAP_NET_RAW && in_egroup_p(AID_NET_RAW)) | |
return 0; | |
if (cap == CAP_NET_ADMIN && in_egroup_p(AID_NET_ADMIN)) | |
return 0; | |
With this: | |
#ifdef CONFIG_ANDROID_PARANOID_NETWORK | |
if (cap == CAP_NET_RAW && in_egroup_p(AID_NET_RAW)) | |
return 0; | |
if (cap == CAP_NET_ADMIN && in_egroup_p(AID_NET_ADMIN)) | |
return 0; | |
#endif | |
Save the file and recompile the kernel | |
------------------------------------------------------------------------------------------------------------- | |
Failed at step OOM_ADJUST spawning /usr/libexec/mapplauncherd/booster-qt5: Permission denied | |
Causes for example the failure of startup wizard on first boot | |
try to revert kernel change in fs/proc/base.c | |
https://github.com/mer-hybris/android_kernel_oneplus_msm8974/commit/0ed87d7f3cf7d3388f09bd264a856ad9efc564a3 | |
ping on the IRC if this worked for you :) | |
------------------------------------------------------------------------------------------------------------- | |
UI is shown in tablet mode | |
needed anymore | |
(this fix will not work when the display has a super high resolution) | |
Symptoms: event view has two columns, very large icons in app grid | |
Check if the screen size is recognised correctly | |
journalctl --no-pager | grep QSizeF | |
If the values are not realistic set the screen size in your droid-hal-device.conf | |
(only works since Sailfish OS 2.0.1) | |
QT_QPA_EGLFS_PHYSICAL_WIDTH=<in mm> | |
QT_QPA_EGLFS_PHYSICAL_HEIGHT=<in mm> | |
------------------------------------------------------------------------------------------------------------- | |
Building things on OBS: | |
Benefits: automated builds, Jolla Store (see above), OTA (see below); local PC is then only needed for Android, dhd, and droidmedia building (which barely happen when port becomes stable), and mic image creation | |
It makes sense to go OBS as soon as you have polished your code, minimised hacks, and pushed it to github (usuall when display+touch+WLAN and maybe cellular are working) | |
On IRC ask sledges to create project and get maintainership for your nemo:devel:hw:$VENDOR:$DEVICE (you can try things out in your home repo first) | |
Click on Repositories tab in your nemo:devel:hw:$VENDOR:$DEVICE | |
Then "Add repositories" | |
Check "SailfishOS latest" | |
Click "Add selected repositories" at the bottom of the page | |
Add a hw:devel:common repo to build against (which contains all important backports for all ports:), you'll need to add it as an additional repo: | |
Click on Repositories tab in your nemo:devel:hw:$VENDOR:$DEVICE | |
Click "Edit repository" | |
Click Add additional path to this repository | |
Project: nemo:devel:hw:common | |
Repository: sailfish_latest_armv7hl | |
Check how other devices are built here e.g. | |
Create droid-hal-$DEVICE package manually and upload RPMs for droid-hal-device and droidmedia (and audioflingerglue if device needs it) | |
For all other packages create webhooks and trigger builds | |
How to create webhooks: | |
Which webhooks will you need for your device: https://webhook.merproject.org/webhook (search for nemo:devel:hw:lge:mako and replicate that structure) | |
Add cibot as maintainer, then ask lbt via IRC to "patternise" your nemo:devel:hw:$VENDOR:$DEVICE | |
Build an image successfully on your PC by following HADK but, using .ks file from droid-config-$DEVICE-ssu-kickstarts-*.rpm built on OBS (don't forget to sed the repos and add nemo:hw:devel:common as adaptation1, this will help you more: http://images.devaamo.fi/sfe/mako/gamma6/Jolla-2.0.1.11-mako-armv7hl.ks ) | |
------------------------------------------------------------------------------------------------------------- | |
Over-the-Air updates (OTA): | |
Prerequisities: | |
Your port has stabilised and is ready to face the big public (gets our retweets, you create Sailfish OS port thread on e.g. XDA, evangelise it :) | |
Good measure is to have bare necessities of a daily-driver for most people: LED, audio, texts, calls, data, WLAN, GPS, camera, light, proximity, accelerometer, vol keys, vibra, power management | |
You should be building on OBS (guide above) | |
Then add these two files (change contents apropriately) | |
https://github.com/mer-hybris/droid-config-hammerhead/blob/master/sparse/var/lib/flash-partition/device-info | |
Change PART_REAL_1 to match "boot" partition of your device | |
Change CPUCHECK_STRING to match the Hardware field in /proc/cpuinfo | |
https://github.com/mer-hybris/droid-config-hammerhead/blob/master/sparse/var/lib/platform-updates/flash-bootimg.sh | |
Don't forget to make it executable | |
Port over to your device this line: | |
https://github.com/mer-hybris/droid-hal-hammerhead/blob/ca102d255f1b6f274e2768e8cbd4ad9c631890e9/droid-hal-hammerhead.spec#L12 | |
And this commit (only if MultiROM exists or in-the-works for your device): | |
https://github.com/mer-hybris/droid-config-hammerhead/commit/cb39670de095b914aea23d6ce0e633d295493016 | |
Don't forget to commit and tag so configs rebuild on OBS :) | |
Simulate OTA on :devel: https://wiki.merproject.org/wiki/Template:SFOS_OTA , see if all is fine (e.g. you can build devel 1.1.9.28 image and OTA it to 2.0) | |
Then you can test how an updated kernel package flashes itself automatically with an extra reboot, by making some change in kernel, reuploading RPMs and simulating OTA again | |
For your users to actually use OTA, you should move it to :testing (on IRC ask sledges to create nemo:testing:hw:$VENDOR:$DEVICE), to still be able to play (i.e. break things) in your :devel | |
Get maintainership on that :testing repo | |
Add cibot as maintainer, then via IRC ask lbt to "patternise" that repo too | |
Click on Repositories tab in your nemo:testing:hw:$VENDOR:$DEVICE | |
Then "Add repositories" | |
Then "pick one via advanced interface" | |
Start typing "sailfishos", then pick the version you want OTA to be available for in format "sailfishos:X.Y.Z.W" | |
Choose "latest_$PORT_ARCH" for your architecture | |
Make the "Name" to match exactly "sailfishos_X.Y.Z.W" | |
Add nemo:testing:hw:common to that as additional repo just like you did with :devel: above | |
Ensure NO webhooks point to :testing ! Cross-check with https://webhook.merproject.org/webhook | |
Promote by using osc copypac to all your device packages from devel to testing (useful script: http://pastebin.com/GssLRr8e )(How To https://gist.github.com/taaem/53ed3a99893d323d7ab3bd8d07540f50 ) - use this (or simpler "Submit Package" WebUI option) also in future whenever a HW adaptation package needs updating in between sfos releases | |
(PR is being prepared to add device hw version to zip filename, HW Adaptation version is also shown in About Product, and is incremented by 1 each time OBS automatically | |
rebuilds droid-hal-version-$DEVICE whenever any hw package changes ;)) | |
Make an image with adaptation-community repo pointing to testing, adaptation-community-common pointing to common in your .ks file, and start distributing that to the rest of the world | |
Don't forget to document everything, create a nice installation wiki article for your device (if not yet already), and add such section: https://wiki.merproject.org/wiki/index.php?title=Adaptations/libhybris/Install_SailfishOS_for_mako&action=edit§ion=4 | |
Point your existing users to the OTA section of your device's wiki | |
Once the next Sailfish OS release comes out and your port adopts it, you can create a new repository in OBS with that version and your users will OTA to it. | |
------------------------------------------------------------------------------------------------------------- | |
Access Android's virtual SD card (needs more massaging) | |
Has received mixed feedback of working/not-working. Replicate onto your device accordingly: | |
https://github.com/mer-hybris/droid-hal-hammerhead/commit/ca102d255f1b6f274e2768e8cbd4ad9c631890e9 | |
https://github.com/mer-hybris/droid-config-hammerhead/blob/master/sparse/usr/bin/droid/android-links.sh | |
https://github.com/mer-hybris/droid-config-hammerhead/commit/e15591b98380c95e5be96bf9f386278b9825b5f3 | |
------------------------------------------------------------------------------------------------------------- | |
mic fails during the run | |
If you get error like this | |
Warning: repo problem: pattern:jolla-hw-adaptation-$DEVICE1-1.noarch requires droid-config-$DEVICE-policy-settings, but this requirement cannot be provided, uninstallable providers: droid-config-$DEVICE-policy-settings-1-1.armv7hl[adaptation0-$DEVICE-2.0.1.7] | |
п | |
Or for example | |
No provider of 'pkgconfig(qofonoext)' found. | |
In these cases the missing dependencies can be added with the command | |
MER_SDK $ | |
sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -R -m sdk-install ssu ar common http://repo.merproject.org/obs/nemo:/devel:/hw:/common/sailfish_latest_armv7hl/ | |
Also add the same repo to .ks file before building the installation package with mic | |
Run the following commands before chapter 8.3 of HADK pdf | |
MER_SDK $ | |
cd $ANDROID_ROOT | |
MOBS_URI="http://repo.merproject.org/obs" | |
HA_REPO="repo --name=adaptation0-$DEVICE-@RELEASE@" | |
HA_REPO1="repo --name=common \ | |
--baseurl=$MOBS_URI/nemo:/devel:/hw:/common/sailfish_latest_@ARCH@/" | |
sed -i -e "/^$HA_REPO.*$/a$HA_REPO1" tmp/Jolla-@RELEASE@-$DEVICE-@ARCH@.ks | |
If MIC fails with | |
RuntimeError: Invalid runmode: native | |
remove `--runtime=native` from mic command args | |
If the error message ends with | |
CreatorError: <creator>Unable to find pattern: Jolla Configuration $DEVICE | |
then make sure that you executed 8.4 in the hadk pdf (as of v1.9.9). If it still does not work, try executing it again, then process patterns and build again. | |
If the ks file generated in $ANDROID_ROOT does not contain the local repo, then add it manually. To the top of the list of repos, add | |
"repo --name=adaptation-community-$DEVICE-@RELEASE@ --baseurl=file:$ANDROID_ROOT/droid-local-repo/$DEVICE/" | |
substitute $DEVICE and $ANDROID_ROOT appropriately. | |
Process patterns and build again. | |
---------------------------------------------------------------------------------------------------------- | |
ff-memless haptics | |
To use memless haptics driver instead of droid-vibrator, you need a kernel haptics driver that supports a memless interface (evdev). This is briefly explained in HADK pdf chapter 13.1. | |
Reference kernel driver implementation for qpnp vibrator is here; | |
https://github.com/kimmoli/android_kernel_oneplus_msm8974/pull/1 | |
It needs also vibrator configuration files if defaults are not ok; (this is also in HADK) | |
https://github.com/kimmoli/droid-config-onyx/commit/dac479716a6b4300be3c5875982265f6914bb498 | |
And depends which evdev index the new ffmemless gets, one might need to change lipstick config; | |
https://github.com/kimmoli/droid-config-onyx/pull/4/commits/73bb85fcdc5e2627a8cb0cea0fb5fc2ca9d8e814 | |
in droid-hal-version-$DEVICE.spec comment %define have_vibrator 0 out and add %define have_ffmemless 1 | |
add build of qt5-feedback-haptics-ffmemless in build_packages.sh, and comment out other vibrator packages; | |
buildmw "https://git.merproject.org/mer-core/qt-mobility-haptics-ffmemless.git" rpm/qt5-feedback-haptics-ffmemless.spec || die | |
---------------------------------------------------------------------------------------------------------- | |
perf :) | |
MER_SDK $ | |
cd $ANDROID_ROOT | |
mkdir -p perf/rpm | |
cd perf | |
ln -s $ANDROID_ROOT/kernel/$VENDOR/$DEVICE linux | |
curl -o rpm/perf.spec http://pastebin.com/raw/QiW7FD02 | |
Replace string <YOUR_KERNEL_VERSION> in rpm/perf.spec with kernel version for which you're building perf (for example: 3.4.0) | |
mb2 -s rpm/perf.spec -t $VENDOR-$DEVICE-armv7hl build | |
mv RPMS/*.rpm $ANDROID_ROOT/droid-local-repo/$DEVICE/ | |
createrepo $ANDROID_ROOT/droid-local-repo/$DEVICE | |
"less" package is needed for perf to format its output. You can find it here: http://repo.merproject.org/obs/nemo:/testing:/hw:/common/sailfish_latest_armv7hl/ | |
---------------------------------------------------------------------------------------------------------- | |
FM Radio support | |
Needs a device with suitable FM radio hardware and a kernel defconfig containing CONFIG_RADIO_IRIS=y (CONFIG_RADIO_IRIS=m if fail to build IRIS_TRANSPORT as module) and CONFIG_RADIO_IRIS_TRANSPORT=m (or =y) | |
If your CONFIG_RADIO_IRIS_TRANSPORT is built-in then this is not needed, however if you have problems try building CONFIG_RADIO_IRIS_TRANSPORT as a module: add (adapt to fit your device if needed) https://github.com/mlehtima/droid-config-fp2-sibon/blob/master/sparse/lib/systemd/system/droid-fm-up.service and https://github.com/mlehtima/droid-config-fp2-sibon/blob/master/sparse/lib/systemd/system/bluetooth.service.wants/droid-fm-up.service | |
Sometimes device permissions are wrong (root owner), in this case add https://github.com/mlehtima/droid-config-fp2-sibon/blob/master/sparse/lib/udev/rules.d/999-droid-fm.rules to your droid-configs repo (or directly to device for testing) | |
Add qt5-qtmultimedia-plugin-mediaservice-irisradio to patterns (or install directly to device for testing) | |
Add https://github.com/mlehtima/droid-config-fp2-sibon/blob/master/sparse/etc/pulse/xpolicy.conf.d/fmradio.conf to your droid-configs repo (or directly to device for testing) | |
Starting from Sailfish OS 2.0.2 FM radio Media app plugin jolla-mediaplayer-radio can be added to patterns. | |
-------------------------------------------------------------------------------------------------------------- | |
Bluetooth for Qualcomm devices | |
Enable CONFIG_BT_HCISMD in the kernel defconfig. If it is not present in your kernel, then make these changes (https://github.com/adeen-s/android_kernel_cyanogen_msm8916/commit/4627f4f6f5d886433ff1f9639dc18fe8a006fd00 ) | |
Add these files to sparse (or directly to device) and modify them as needed for your device --> | |
https://github.com/adeen-s/droid-config-wt88047/blob/master/sparse/usr/bin/droid/droid-hcismd-up.sh | |
https://github.com/adeen-s/droid-config-wt88047/blob/master/sparse/lib/systemd/system/droid-hcismd-up.service | |
https://github.com/adeen-s/droid-config-wt88047/blob/master/sparse/lib/systemd/system/bluetooth.service.wants/droid-hcismd-up.service | |
Bluetooth Should now work. If it doesn't then make sure the permissions are set correctly and all paths mentioned in above files point to valid locations. | |
If you are still having trouble, check to see if there is a service that configures bluetooth and disable/comment it. Eg, config_bluetooth in init.qcom.rc | |
-------------------------------------------------------------------------------------------------------------- | |
Bluetooth for Broadcomm devices | |
Enable CONFIG_BT_HCIUART_H4 in the kernel defconfig. These devices typically are attached on high speed uart to something like /dev/ttyHS0 | |
Symlink your firmware file to /etc/firmware. | |
eg. https://github.com/r0kk3rz/droid-config-scorpion_windy/blob/master/sparse/etc/firmware/BCM4350C0.hcd | |
You need to make sure the firmware symlink filename matches your bluetooth device name, which can be found by stracing hciattach | |
Build rfkill middleware and add to patterns | |
rpm/dhd/helpers/build_packages.sh --mw=https://github.com/mer-hybris/bluetooth-rfkill-event --spec=rpm/bluetooth-rfkill-event-hciattach.spec | |
add configs: https://github.com/mer-hybris/droid-config-f5121/commit/afa01bdf4bdb8a0d16bbd34996ec7cac34bbbc55 | |
-------------------------------------------------------------------------------------------------------------- | |
Error During end of kernel build | |
Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider | |
at java.lang.Class.getDeclaredMethods0(Native Method) | |
at java.lang.Class.privateGetDeclaredMethods(Class.java:2531) | |
at java.lang.Class.getMethod0(Class.java:2774) | |
at java.lang.Class.getMethod(Class.java:1663) | |
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494) | |
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486) | |
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider | |
at java.net.URLClassLoader$1.run(URLClassLoader.java:366) | |
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) | |
at java.security.AccessController.doPrivileged(Native Method) | |
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) | |
at java.lang.ClassLoader.loadClass(ClassLoader.java:425) | |
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) | |
at java.lang.ClassLoader.loadClass(ClassLoader.java:358) | |
... 6 more | |
Ensure that unzip is installed as its required for BouncyCastle compile | |
run something like this in $ANDROID_ROOT outside HABUILD_SDK | |
java -jar \ | |
/home/$USER/mer/android/droid/out/host/linux-x86/framework/dumpkey.jar \ | |
build/target/product/security/testkey.x509.pem \ | |
build/target/product/security/cm.x509.pem \ | |
build/target/product/security/cm-devkey.x509.pem > /home/$USER/mer/android/droid/out/target/product/$DEVICE/obj/PACKAGING/ota_keys_intermediates/keys | |
-------------------------------------------------------------------------------------------------------------- | |
Flashlight shortcut | |
Starting from Sailfish 2.0.2 it's possible to have flashlight shortcut in eventsview. If your device supports flash torch mode add jolla-settings-system-flashlight package to patterns in your droid-configs repo. The shortcut can be enabled in the eventsview settings. | |
-------------------------------------------------------------------------------------------------------------- | |
Chapter six | |
SETTING UP SCRATCHBOX2 TARGET | |
Lately Jolla offers two sb2 targets so the HADK instructions create some strange behaviour when downloading the sb2 target | |
You have two options now to replace this line | |
TARBALL=$(curl $TARBALL_URL | grep "$PORT_ARCH.tar.bz2" | cut -d\" -f4) | |
TARBALL=$(curl $TARBALL_URL | grep "$PORT_ARCH.tar.bz2" | cut -d\" -f4 | tail -n1) | |
will give you the sb2 for the latest Early Access | |
TARBALL=$(curl $TARBALL_URL | grep "$PORT_ARCH.tar.bz2" | cut -d\" -f4 | head -n1) | |
will give you the sb2 for latest non EA SFOS Version | |
-------------------------------------------------------------------------------------------------------------- | |
Fix remembering Bluetooth state on reboot | |
Add this https://github.com/mlehtima/droid-config-fp2-sibon/commit/265310c24e254ba102211b6ea398f9ef2b68d523 | |
----------------------------------------------------------------------------------------------------------------- | |
qemu gives segmentation fault error in Ubuntu 16.10, instead, use Ubuntu 16.04.1 LTS, or earlier versions.how | |
---------------------------------------------------------------------------------------------------------------- | |
If the pm-service complains about no permissions its because PARANOID_NETWORK is required for your kernel config | |
---------------------------------------------------------------------------------------------------------------- | |
when building for 2.1 and qt5-qpa-hwcomposer-plugin fails with the error "pkgconfig(Qt5PlatformSupport)" update dhd submodule | |
---------------------------------------------------------------------------------------------------------------- | |
Kernel changes needed for updated systemd in Sailfish 2.1.1.X | |
Apply this to all devices with 3.4 kernel https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0640113be25d283e0ff77a9f041e1242182387f0 | |
---------------------------------------------------------------------------------------------------------------- | |
Building droid-config fails with: Segmentation fault (core dumped) /usr/lib/qt5/bin/kmap2qmap ......... | |
try updating the packages in the target with | |
sb2 -t $VENDOR-$DEVICE-armv7hl -R -m sdk-install zypper ref | |
sb2 -t $VENDOR-$DEVICE-armv7hl -R -m sdk-install zypper dup | |
or | |
add the file /system/build.prop to the target with the contents | |
---------------------------------------------------------------------------------------------------------------- | |
libdsyscalls is cause of segfault after r or minimer | |
Usually means that in your device repo, its enabling clang somewhere, do a grep and disable clang and rebuild :) | |
---------------------------------------------------------------------------------------------------------------- | |
Build Wlan Driver as Module | |
Most devices require the wlan driver to be built and loaded as a module during startup | |
Ensure you have CONFIG_MODULES=y in your kernel config | |
Find your wifi driver in your kernel config, it should already be set to `y` and have something like WLAN in the name. | |
Set it to m | |
eg. | |
CONFIG_BCMDHD=m | |
CONFIG_PRIMA_WLAN=m | |
CONFIG_PRONTO_WLAN=m | |
Add the wlan-module-load.service to your droid-configs sparse directory | |
https://github.com/mer-hybris/droid-config-onyx/blob/master/sparse/lib/systemd/system/wlan-module-load.service | |
and add a symlink to enable to service on startup: | |
https://github.com/mer-hybris/droid-config-onyx/blob/master/sparse/lib/systemd/system/multi-user.target.wants/wlan-module-load.service | |
--------------------------------------------------------------------------------------------------------------- | |
Audio not routed to headphones: | |
run evdev_trace from mce-tools package and find /dev/input/eventX that detects headphones connection. It will be the one with SW_HEADPHONE_INSERT* and SW_MICROPHONE_INSERT* like here: | |
----====( /dev/input/event0 )====---- | |
Name: "sensorprocessor" | |
ID: bus 0x0, vendor, 0x0, product 0x0, version 0x0 | |
Type 0x00 (EV_SYN) | |
Type 0x01 (EV_KEY) | |
KEY_VOLUMEDOWN KEY_VOLUMEUP KEY_POWER KEY_CAMERA KEY_MEDIA KEY_VOICECOMMAND | |
Type 0x05 (EV_SW) | |
SW_LID SW_HEADPHONE_INSERT* SW_MICROPHONE_INSERT* | |
Add this https://github.com/mlehtima/droid-config-fp2-sibon/blob/master/sparse/etc/ohm/plugins.d/accessories.ini file and replace jack-match and jack-device with values from evdev_trace: | |
jack-match matches Name: field and | |
ack-device matches /dev/input/eventX | |
where X is your device input number | |
Optional way for devices without headphone connector event device: | |
If your device doesn't have event device for the headphone jack then it might have a switch in /sys/class/switch/h2w/ or similar path | |
If the state file in the /sys/class/switch/h2w/ or similar path reacts to headphone connection by changing the value it can be used for headphone detection | |
Add file /etc/ohm/plugins.d/accessories.ini with the following content (replace switch name with the name found in the path on your device) | |
model = uevent | |
switch = h2w | |
If the headphone detection works then add the file to your config repo sparse for future builds | |
Notes on LOS14.1 Porting | |
------------------------------------ | |
Obsolete (do not use): On mixed 32/64bit devices, LD_LIBRARY_PATH could be wrong. If logcat shows services aborting with SIG 6 due to wrong arch, try removing the LD_LIBRARY_PATH from /init.environ.rc | |
Run this script in $ANDROID_ROOT http://paste.opensuse.org/40869869 | |
Details of what the script does: | |
Symlinks for services: | |
sh-3.2# ls -lh /usr/libexec/droid-hybris/system/etc/init/ | |
total 4.0K | |
lrwxrwxrwx 1 root root 26 Oct 6 20:52 atrace.rc -> /system/etc/init/atrace.rc | |
lrwxrwxrwx 1 root root 28 Oct 6 20:52 bootstat.rc -> /system/etc/init/bootstat.rc | |
lrwxrwxrwx 1 root root 29 Oct 6 20:52 debuggerd.rc -> /system/etc/init/debuggerd.rc | |
lrwxrwxrwx 1 root root 29 Oct 6 20:52 drmserver.rc -> /system/etc/init/drmserver.rc | |
lrwxrwxrwx 1 root root 29 Oct 6 20:52 dumpstate.rc -> /system/etc/init/dumpstate.rc | |
lrwxrwxrwx 1 root root 31 Oct 6 20:52 gatekeeperd.rc -> /system/etc/init/gatekeeperd.rc | |
lrwxrwxrwx 1 root root 30 Oct 6 20:52 init-debug.rc -> /system/etc/init/init-debug.rc | |
lrwxrwxrwx 1 root root 28 Oct 6 20:52 installd.rc -> /system/etc/init/installd.rc | |
lrwxrwxrwx 1 root root 27 Oct 6 20:52 logcatd.rc -> /system/etc/init/logcatd.rc | |
lrwxrwxrwx 1 root root 24 Oct 6 20:52 logd.rc -> /system/etc/init/logd.rc | |
lrwxrwxrwx 1 root root 30 Oct 6 20:52 mediacodec.rc -> /system/etc/init/mediacodec.rc | |
lrwxrwxrwx 1 root root 34 Oct 6 20:52 mediadrmserver.rc -> /system/etc/init/mediadrmserver.rc | |
lrwxrwxrwx 1 root root 34 Oct 6 20:52 mediaextractor.rc -> /system/etc/init/mediaextractor.rc | |
lrwxrwxrwx 1 root root 24 Oct 6 20:52 mtpd.rc -> /system/etc/init/mtpd.rc | |
lrwxrwxrwx 1 root root 29 Oct 6 20:52 perfprofd.rc -> /system/etc/init/perfprofd.rc | |
lrwxrwxrwx 1 root root 26 Oct 6 20:52 racoon.rc -> /system/etc/init/racoon.rc | |
lrwxrwxrwx 1 root root 24 Oct 6 20:52 rild.rc -> /system/etc/init/rild.rc | |
lrwxrwxrwx 1 root root 29 Oct 6 20:52 superuser.rc -> /system/etc/init/superuser.rc | |
lrwxrwxrwx 1 root root 27 Oct 6 20:52 uncrypt.rc -> /system/etc/init/uncrypt.rc | |
lrwxrwxrwx 1 root root 23 Oct 6 20:52 vdc.rc -> /system/etc/init/vdc.rc | |
lrwxrwxrwx 1 root root 23 Oct 6 20:52 vold.rc -> /system/etc/init/vold.rc | |
NOTE, no audioserver and mediaserver links! | |
NOTE, bootanim was removed in the updated script, also vold was added | |
if NINJA builds are not working, export USE_NINJA=false | |
--------------------------------------------------------------------------------------------------------------- | |
For actdead charging animation, see changes here https://github.com/kimmoli/sfos-onyx-issues/issues/29 but also add 'trigger late-start' to 'on charging' in init.rc | |
--------------------------------------------------------------------------------------------------------------- | |
hwcomposer fails to run with `atomic commit failed ret:-22` in dmesg | |
You may need to add the following commits | |
https://github.com/zhxt/android_kernel_xiaomi_msm8996/commit/ab8e2349bae3a0971b237b744465089d6f22f8a1 | |
https://github.com/zhxt/android_kernel_xiaomi_msm8996/commit/c48eee07ace04204cf6c670ddfcf8c694fd88db4 | |
-------------------------------------------------------------------------------------------------------------- | |
Devices that have qseecomd usually have issues getting to UI so its best to disable it in the init.$DEVICE.rc | |
-------------------------------------------------------------------------------------------------------------- | |
Updating submodules | |
Submodule locations: | |
rpm/dhd | |
hybris/droid-configs/droid-configs-device | |
hybris/droid-hal-version-$DEVICE/droid-hal-version | |
In the each folder check remote name using git remote -v | |
Run (replace remote_name with the name you found out in previous step) | |
git fetch remote_name | |
git pull remote_name master | |
-------------------------------------------------------------------------------------------------------------- | |
Issues with ngfd or ngfd-plugin-droid-vibrator or pulseaudio | |
Update submodules as described above | |
Replace %define have_vibrator 1 in droid-hal-version-@DEVICE@.spec with %define have_vibrator_native 1 | |
Change package names in droid-configs patterns as described in templates https://github.com/mer-hybris/droid-hal-configs/commit/aac652aae840a15629c0f4e070275ea128fe088f | |
in PLATFORM_SDK | |
sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R zypper rm ngfd-plugin-droid-vibrator | |
rpm/dhd/helpers/build_packages.sh | |
-------------------------------------------------------------------------------------------------------------- | |
Determine which is the touch event | |
use command "getevent" as super user in adb shell. The event which spams most outputs on the screen when the screen is touched is the touch event. | |
-------------------------------------------------------------------------------------------------------------- | |
No installroot directory after droid-configs build when preparing .ks file | |
rpm2cpio droid-local-repo/$DEVICE/droid-configs/droid-config-$DEVICE-ssu-kickcdstarts-1-1.armv7hl.rpm | cpio -idmv | |
in the sed command use $ANDROID_ROOT/usr/share/kickstarts/$KS instead of $ANDROID_ROOT/hybris/drod-configs/installroot/usr/share/kickstarts/$KS | |
-------------------------------------------------------------------------------------------------------------- | |
Updating local build target | |
Change release version in the command if needed | |
In Platform SDK: | |
sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R ssu release 2.1.4.14 | |
sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R zypper ref | |
sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R zypper dup | |
-------------------------------------------------------------------------------------------------------------- | |
Using backported Bluetooth drivers in 3.4 kernel for devices with Qualcomm bluetooth chip using hci_smd driver | |
Generic guide: https://bluez-android.github.io/#building-own-kernel | |
Sailfish specific guide: | |
Build your kernel with patches from https://github.com/bluez-android/misc/tree/master/patches-kernel and with following flags defined in defconfig | |
CONFIG_BT=m | |
CONFIG_CRYPTO_CMAC=y | |
CONFIG_CRYPTO_USER_API=y | |
CONFIG_CRYPTO_USER_API_HASH=y | |
CONFIG_CRYPTO_USER_API_SKCIPHER=y | |
NOTE: Patches may not be required for >= 3.18 | |
In your local_manifest, add | |
<project name="mlehtima/backports-bluetooth" path="external/backports-bluetooth" revision="master" /> | |
run repo sync in HABUILD_SDK | |
Build backported drivers by running make backports in HABUILD_SDK while in $ANDROID_ROOT folder | |
if you get "external/backports-bluetooth/drivers/bluetooth/hci_smd.c:35:26: fatal error: mach/msm_smd.h: No such file or directory" error change | |
#include <mach/msm_smd.h> to #include <soc/qcom/smd.h> in that file | |
IMPORTANT: if you rerun make hybris-hal at any time you will always have to rerun make backports after that | |
Package droid-hal as usual | |
Change your config repo to use bluez5 https://github.com/mlehtima/droid-config-fp2-sibon/commit/1cba868fdcfebaffc14a084c5d82fbf2e4339173 | |
Rebuild config rpms and image | |
-------------------------------------------------------------------------------------------------------------- | |
Graphics performance improvements | |
Test framerate display (can be enabled in Settings->Developer mode) when using some apps like gallery | |
If the top view is mostly red try to set QPA_HWC_IDLE_TIME=5 in /var/lib/environment/compositor/droid-hal-device.conf | |
Run systemctl restart user@100000 using devel-su | |
Test framerate display again and if you see more green than before you should use the value | |
Different values can be tested but value 5 has been found to be helping on some devices | |
On some devices also setting QPA_HWC_BUFFER_COUNT=3 in /var/lib/environment/compositor/droid-hal-device.conf helps with graphics performance | |
-------------------------------------------------------------------------------------------------------------- | |
Black gallery pictures and no browser content/browser crash: | |
Add this to droid-hal .spec file (before the last line, never change the last line in the spec file) and rebuild droid-hal and libhybris packages (remove the sources from hybris/mw/libhybris to make sure a clean rebuild is done): | |
%define android_config \ | |
#define WANT_ADRENO_QUIRKS 1\ | |
%{nil} | |
-------------------------------------------------------------------------------------------------------------- | |
Problems with tfa9890: | |
Copy /system/etc/firmware to /etc/firmware. Symlink or mount doesn't work! (But why?) | |
-------------------------------------------------------------------------------------------------------------- | |
make[1]: *** No rule to make target `XXX_defconfig'. Stop. | |
This was seen as an error while making hybris-hal on wingray | |
Open hadk/device/*/*/BoardConfig.mk and comment out the line "TARGET_KERNEL_SOURCE=XXX" | |
Re-run source build/envsetup.sh and breakfast $DEVICE | |
Re-run make -jXX hybris-hal | |
Kernel should build properly at this point but you may get an error later along the lines of "svn: command not found" | |
"sudo apt-get install subversion" should fix it | |
if that doesn't work try un-commenting the"TARGET_KERNEL_SOURCE=XXX" line for what you are doing and then if you have to rebuild kernel again re-comment it | |
---------------------------------------------------------------------------------------------------------------- | |
Building GST-OMX: | |
cd $ANDROID_ROOT/hybris/mw | |
git clone --recurse-submodules https://github.com/sailfishos/gst-omx.git | |
cd gst-omx && mb2 apply | |
cd upstream && git add -A && git commit -m "fake commits" | |
cd .. && git add -A && git commit -m "fake commits" | |
#check git status and make sure it is clear | |
mb2 -x -t $VENDOR-$DEVICE-$PORT_ARCH build | |
------------------------------------------------------------------------------------------------------------- | |
"cryptfs.h No file or directory" - Seen when building the CM11 kernel for tuna/maguro | |
go into the folder of the file causing this error (in my case: device/samsung/tuna/recovery) | |
create a new file named cryptfs.h | |
open it and paste all of the stuff from the following link: https://android.googlesource.com/platform/system/vold/+/kitkat-dev/cryptfs.h | |
you can do this for pretty much every missing ***.h file error. | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
Enabling the various hw settings for device (fixing sensors in latest builds and autobrightness toggle): | |
If your device has broken sensors after updating to latest SailfishOS version or If your autobrightness toggle doesn't appear in settings, it is due to hw-settings.ini missing for device (light sensor is not declared in the configs and that's why Autobrightness option is not enabled in jolla-settings) | |
Use this as a reference https://github.com/mer-hybris/droid-config-f5121/blob/master/sparse/usr/share/csd/settings.d/hw-settings.ini and make changes accordingly. | |
When satisfied, make a copy of the file to $ANDROID_ROOT/hybris/droid_configs/sparse/usr/share/csd/settings.d/ and git commit ! | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Fixing the screen timeout issue: | |
If display gets automatically blanked from lockscreen, but not when in app/home -> logical diffrences between those include: | |
1. user activity (=input events) does not reset blanking timers in lockscreeen, | |
2. similarly some blanking inhibitors are ignored while lockscreen is active | |
in past there have been constantly reporting , such as gyros that have been mistaken for something that user is doing -> check with evdev_trace if there is something that sends events regularly | |
could be some blanking inhibit mode (keep display on while charging, demo-mode & co), or some application doing blank prevent ping-pong with mce -> check with "dbus-monitor --system sender=com.nokia.mce" what kind of signals get emitted when swiping away from lockscreen / shortly after | |
https://github.com/sailfishos-wt88047/droid-config-wt88047/commit/4512092dbba56ac9a6bf69cb034ceca8512f5a38 | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Creating kickstart file | |
If kickstart file creation fails download https://bpaste.net/raw/02aa4ba3150a to $ANDROID_ROOT with filename get_kickstart.sh | |
In $ANDROID_ROOT run the script using | |
source get_kickstart.sh | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
No rule to make target kernel needed by booti.img or similar error | |
Open device/$VENDOR/$DEVICE/BoardConfig.mk | |
comment out the lines | |
TARGET_KERNEL_SOURCE | |
TARGET_KERNEL_PREBUILT | |
Common error in hybris10.1 due to the old CM10.1 kernels and how they were built back then. | |
------------------------------------------------------------------------------------------------------------------------------------------ | |
Porting based on hybris15.1-Surfaceflinger is required, follow below steps | |
follow https://github.com/mer-hybris/droid-config-sony-nile/commit/5a1dfaa131b9a22111fc474dadbb0f184adb51b4 and take all surfaceflinger related things from there | |
------------------------------------------------------------------------------------------------------------------------------------------ | |
"/var/tmp/rpm-tmp.MZzwRg: line 37: tar: command not found" Error while building droidmedia | |
update your dhd submodule and re-run droidmedia build, fixing PR merged https://github.com/mer-hybris/droid-hal-device/pull/191/files run this command in PLATFORM SDK: sb2 -t $VENDOR-$DEVICE-armv7hl -R -m sdk-install zypper in tar | |
"but not I am getting this error: cp: cannot stat `out/target/product/hammerhead/system/lib/libminisf.so': No such file or directory.so" | |
this means libminisf.so hasn't made it into the local droidmedia tarball. Re-run from HADK with latest droidmedia checked out; | |
DROIDMEDIA_VERSION=$(git --git-dir external/droidmedia/.git describe --tags | sed -r "s/\-/\+/g") | |
rpm/dhd/helpers/pack_source_droidmedia-localbuild.sh $DROIDMEDIA_VERSION | |
open "$ANDROID_ROOT/hybris/mw/droidmedia-localbuild/rpm/droidmedia.spec" | |
change line 63 (cp out/target/product/hammerhead/system/lib/libminisf.so \) to | |
(cp $ANDROID_ROOT/out/target/product/hammerhead/system/lib/libminisf.so \) | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Anbox Information | |
https://public.etherpad-mozilla.org/p/anbox-sailfishos | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
BOARD_USES_QCOM_HARDWARE is not in vendor device repo | |
Add the following lines to rpm/droid-hal-$DEVICE.spec before the line "%include rpm/dhd/droid-hal-device.inc" (do not change that line or add anything after it) | |
%define android_config \ | |
#define QCOM_BSP 1\ | |
#define QTI_BSP 1\ | |
%{nil} | |
Rebuild packages with build_packages.sh | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Please, do not use browser-in-place translation tools (right-click translate-this) or similar. They overwrite the content on this page. | |
2018-08-21 New HADK revision fixing droidmediafglue builds & re-explaining straggler files; https://sailfishos.org/develop/hadk/ diff to 2.2.0.1 https://pastebin.com/xA238hUG | |
Also update your dhd submodule if mic (thanks KayMW for spotting), zypper, or droidmedia builds were giving you hard time recently | |
2018-07-24 lunch_arch (fixed in HADK v2.2.0.2) | |
The new simplified droidmedia/audioflingerglue target detection didn't work for some devices, so there have been some changes to the detect_target_arch script that break the current HADK. Until a definitive solution is found, type 'gettargetarch > lunch_arch' in the android root after running lunch. Or just keep using the last tagged master version, which is always a good idea anyway. | |
2018-07-18: HADK v2.2.0.1 https://sailfishos.org/develop/hadk | |
Fixes to making ubu-chroot and tar available | |
Simplified camera adaptation by building afglue instead of patching Android | |
2018-07-05: HADK v2.2.0 https://sailfishos.org/develop/hadk | |
Simplified droidmedia/audioflingerglue builds | |
updated ubu-chroot so no additional package installs are needed into it | |
Strong emphasis to update/reinstall Platform SDK and tooling/targets to 2.2.0, and update your dhd and configs submodules! | |
other minor fixes | |
Sailfish X build updated to work with 2.2.0: https://sailfishos.org/wiki/Sailfish_X_Build_and_Flash | |
We're hiring porters \o/ https://jolla.com/careers | |
--------------------------------------------------------------------------------------------------------------------- | |
2018-03-20: libminisf | |
There's a new library to be built by droidmedia - libminisf. It's invoked from the qt-hwcomposer plugin in lipstick to create the MiniSurfaceFlinger service if it's not already running, and start the binder thread pool. The latter is important on some adaptations that create services from inside hwcomposer, that would previously hang when starting recording. Include 'libminisf_32' in your make command to build it. | |
2018-03-14: Hardware video codecs in Android 7 | |
Droidmedia now supports video decoding in Android 7, but it relies on a fix in frameworks/av that allows hardware codecs to be selected. This bug seems to have survived for a while in Android, perhaps because the things that use it aren't really used there yet. It's confirmed as present in mer-hybris 14.1. Check that you have it in your tree: https://android.googlesource.com/platform/frameworks/av/+/ca4c68f25eb61f4d4e339e99cf63f863adc52fdd%5E!/#F0 | |
2018-03-08: Droidmedia_32 | |
As many adaptations don't contain the psecial Qualcomm BOARD_QTI_CAMERA_32BIT_ONLY variable, there's now a variable to set in OBS to override this: droidmedia_32bit := 1. The old variable will still work for OBS builds too though. | |
When building locally, add DROIDMEDIA_32 := true to env.mk | |
2018-02-12: Native droid vibrator backend is now built as the default. Update submodules (if needed check faq how to do it) and replace %define have_vibrator 1 in droid-hal-version-@DEVICE@.spec with %define have_vibrator_native 1 and change package names in droid-configs patterns as described in templates https://github.com/mer-hybris/droid-hal-configs/commit/aac652aae840a15629c0f4e070275ea128fe088f | |
2018-02-05: Droidmedia Camera HAL forcing | |
A new .mk file is now present in droidmedia: env.mk. This parametrizes the droidmedia build for device-specific tweaking. It's been introduced because we encountered a device with a camera that wouldn't work properly using the default camera connection, which connects using the highest declared HAL version, and instead requires a forced HAL1 connection. To try this for camera that aren't behaving properly, insert 'FORCE_HAL:=1' into env.mk | |
2017-12-05: PulseAudio droid modules configuration update | |
pulseaudio-modules-droid has been changed so that the default startup creates a profile called "default", which has most relevant sinks and sources enabled. Previously there was separate "combine" mode, which tried to achieve something similar, but was a bit flawed in a way since it required more custom changes to other configuration parts. | |
To be able to classify these automatically created sinks and sources, the sinks and sources are now marked with properties defining their use. For example, primary sink has droid.output.primary = true, etc. | |
=== What this means to your port === | |
* If you have custom (under sparse/) /etc/pulse/xpolicy.conf, /etc/pulse/xpolicy.conf.d/bluez4.conf or/etc/pulse/xpolicy.conf.d/bluez5.conf or have added any files to /etc/pulse/xpolicy.conf.d directory, you may need to adapt those configurations to the new format. | |
* If you use droid card profile "primary-primary" etc, change those to read "default" | |
* If you have modified /etc/pulse/arm_droid_default.pa or added your own configuration, at least make sure that module-droid-card is not loaded with "combine" argument. | |
* If you are using the defaults, make sure you have commit 91718954ba84c956c0be6232d1148a760ae0505e (PR https://github.com/mer-hybris/droid-hal-configs/pull/114 ) in your d-h-c submodule, and make sure you are using at least the following package versions: | |
pulseaudio 8.0+git13 | |
pulseaudio-modules-nemo 8.0.24 | |
pulseaudio-policy-enforcement 8.0.33 | |
pulseaudio-modules-droid 8.0.63 | |
Also check https://github.com/mer-hybris/pulseaudio-modules-droid/blob/master/README if you want to get a bit more indepth description of droid modules' behaviour. | |
2017-11-20 All minimalhooks/mm64-rpm/n64-rpm libhybris branches have been merged to master; please switch and check if you need additional defines in your dhd .spec: https://github.com/mer-hybris/droid-hal-device/commit/d32f25ba40f1149379b3c5a18c0965d8a54e45b8 | |
2017-11-02: Sailfish X: droid-flashing-tools has now been provided in nemo:devel:hw:common repo, should unbreak mic builds | |
2017-10-13 Friday! oooOOOOoo | |
The wiki I believe has a typo (critical one at that), in the flashing the linux way without being able to use EMMA, the mount line for the blob partition is wrong? | |
mkdir oem | |
mount /dev/mmcblk0p28 oem | |
mkdir blobs | |
mount /dev/mmcblk0p52 system <---------this should be blobs? no, because we flash .img to system partition temporarily | |
rm -rf oem/* | |
cp -ar blobs/* oem | |
umount oem | |
umount blobs | |
rmdir oem blobs | |
exit | |
It probably would be a good idea to have full paths in the mounts as well (so /oem or /root/oem or whatever) | |
Also it appears that the sed that matches the 'too old' line has changed due to working changing in the flash.sh script. The wiki reads: | |
MATCH='You have too old Sony Android version ($VMAJOR.$VMINOR) on your device,' | |
whereas my flash.sh reads: | |
"Your Sony Android version ($VMAJOR.$VMINOR) on your device is too old," thanks, I've fixed that in wiki, please delete this case once seen | |
In addition to that I also had to remove the exit 1; line below and for some reason my md5sum failed too (but that was probably due to build error on my part) | |
2017-10-10 Sailfish X wiki updated to blobless builds, and blobs are now under /odm (being independent from /system/vendor); you will need a complete rebuild | |
(https://sailfishos.org/wiki/Sailfish_X_Build_and_Flash ) | |
This transition is not OTA-compatible (but i haven't heard from you about how our xperia OTAs have been coming along ;P) | |
Thanks for bearing with us during crucial times and helping and testing; there shouldn't be more collossal changes thereafter | |
2017-10-06 Sailfish X: bluez5 with patch against blueborne is now in nemo:devel:hw:common | |
exempi backported to nemo:devel:hw:common, should fix ambience and gallery edit crashes for 64bit devices | |
* all packages from nemo:devel:hw:common get automagically into an image | |
2017-10-03 Camera hangs on CM14, silently waiting for a 'SchedulingPolicyService'. Avoid by adding | |
camera.fifo.disable=1 | |
to build.props | |
2017-10-03 IF YOU TAKE IN DROID-CONFIGS NEWER THAN v0.1.1 YOUR SONY WILL GET STUCK IN BOOTLOOP. Countermeasures (either inside a still working Sailfi | |
Thanks for bearing with us during crucial times and helping and testing; there shouldn't be more collossal changes thereafter | |
2017-10-06 Sailfish X: bluez5 with patch against blueborne is now in nemo:devel:hw:common | |
exempi backported to nemo:devel:hw:common, should fix ambience and gallery edit crashes for 64bit devices | |
sh OS, or via recovery chroot if you got less lucky): | |
Working SFOS: | |
devel-su | |
mkdir ~/oem | |
mount /dev/disk/by-partlabel/oem ~/oem | |
rm -rf ~/oem/* | |
cp -ar /system/vendor/* ~/oem | |
umount ~/oem | |
rmdir ~/oem | |
Recovery: | |
mkdir oem | |
mount /dev/mmcblk0p28 oem | |
mkdir cache | |
mount /dev/mmcblk0p24 cache | |
rm -rf oem/* | |
cp -ar cache/* oem | |
umount oem | |
umount cache | |
rmdir oem cache | |
2017-09-27: sfosx bluetooth pushed out. If you feel adventurous, resync hybris manifest and rebuild, writing up your findings in hot-hadk etherpad ;) ping jusa on how to contrib for those BT profiles/devices that you find not working | |
Double tap to wake has been pushed out, but is known to cause issues on certain xperia x the revisions. try it with `mcetool --set-doubletap-wakeup=proximity` | |
T | |
Browser video playback has been fixed | |
syspart rebuild should get video recording working too | |
2017-09-24 | |
Section 5.2 in the hadk, the local_manifest URL is incorrect, should be https://github.com/mer-hybris/local_manifests Thanks, will be fixed in HADK >2.0.1 | |
2017-09-23: Sailfish X (Xperia X) GPS fixed. To get into existing builds: | |
# NOTE: some git repos below will be nuked (rm -rf) and re-cloned. If you've done some coding in them, be careful not to lose it、 | |
PLATFORM_SDK $、 | |
cd $ANDROID_ROOT | |
sdk-assistant remove sony-f5121-armv7hl | |
sdk-assistant create sony-f5121-armv7hl http://releases.sailfishos.org/sdk/targets-1707/Jolla-2.1.1.24-Sailfish_SDK_Target-armv7hl.tar.bz2 | |
rm -rf rpm/ | |
git clone --recursive https://github.com/mer-hybris/droid-hal-f5121 rpm | |
rm -rf hybris/mw/geoclue-providers-hybris/ | |
# Now go through ONLY ONE code snippet right below "Ignore chapter 7, but do the following instead:" in https://sailfishos.org/wiki/Sailfish_X_Build_and_Flash | |
# Then jump to "Now go through chapter 8, but instead of the `sudo mic create fs ...` command, perform the following:" | |
2017-09-20 Sailfish X HW adaptation opensourced: https://blog.jolla.com/xperiax-open-source-hw-adaptation/ | |
2017-09-15 CUSTOMCONTEXT_NO_BGRA has been renamed to QT_OPENGL_NO_BGRA in the latest qtscenegraph-adaptation (master) - all 64bit devices that had black gallery photos (in fullscreen) can now build from master, but rename that env var in your configs | |
2017-09-15 If you have OOM errors doing the make in the syspart portion of sailfishx try adding a swapfile to your build host: | |
mkdir /root/swap | |
chmod 700 /root/swap | |
dd if=/dev/zero of=/root/swap/swapfile bs=1M count=1024 # only 1G swap? I build on 8GB with 8GB swap, I think having any largish swap may help | |
chmod 600 /root/swap/swapfile | |
mkswap /root/swap/swapfile | |
swapon /root/swap/swapfile | |
2017-06-29 droid-hal-init has been updated and now shuts down by properly stopping all android services, instead of issuing kill signals. a 'hybris.shutdown' property triggers this, and so needs to be included in /init.rc. See the script droid-hal-shutdown for details: https://github.com/mer-hybris/droid-hal-configs/pull/95 | |
This replaces the old kill-cgroup.sh script, which was a bit heavy handed and failed to shutdown some services. | |
the needed changes will soon be included to mer-hybris repos so better wait until that than to patch per device | |
2017-05-10 qtscenegraph-adaptation has a new home, update your dhd submodule: https://github.com/mer-hybris/droid-hal-device/commit/60eaca23a16319e4ccc1a67b50d5b95e8f8febd9 | |
2017-02-17 Are you tired of this error in recent HADK: | |
File '/repodata/repomd.xml' not found on medium 'http://repo.merproject.org/obs/nemo:/devel:/hw:/$VENDOR:/$DEVICE/sailfish_latest_armv7hl/' Abort, retry, ignore? [a/r/i/?] (a): | |
Look no more, but update your rpm/dhd submodule and run `rpm/dhd/helpers/fix_dangling_adaptation-community_repo.sh` | |
2017-01-14 Please update your droid-hal-device ($ANDROID_ROOT/rpm/dhd/) submodule, as it contains latest bluez and Android 6 (64+32bit frankenstein) build fixes | |
2016-12-15 Bluez configs were broken in 2.0.5 ports (and process_patterns.sh due to recent build_package.sh refactorings), please now: | |
update your droid-hal-configs submodule for the fix: https://github.com/mer-hybris/droid-hal-configs/pull/65 | |
remove bluez-configs-sailfish (and if you have obexd-configs-sailfish), from your patterns | |
add %define community_adaptation 1 to your droid-config-$DEVICE.spec | |
2016-11-09 Jolla now offers two sb2 targets, one for the Early Access and one 'normal'. This is the reason why downloading of the sb2 target ends with bunch of symbols. The hadk-faq shows how to prevent this in line 608. | |
2016-11-09 Since 2.0.4 you will no longer find much in Settings | Accounts :) Fix: | |
https://github.com/mer-hybris/droid-hal-configs/commit/c13a6e771d96a81b39337f407e9dc06cc3bcc6a8 | |
2016-10-19 <krnlyng> hi, there is a small mistake in libhybris which prevents hybris-13 adaptation to work on mako, namely memcpy should always return dest. with this test_hwcomposer, minimer and the language picker (haven't tested more) of sailfishos work on mako | |
21:36 < krnlyng> here is the patch for anyone interested: https://github.com/krnlyng/libhybris-ghosalmartin/commit/09d9647c1802a89df3e491ba93bf2ade49068deb i have to note that with ubuntus libhybris only test_hwcomposer works with this patch. minimer and the language picker fail to start up, i used a version of libhybris where i ported the mm linker to manually and there all that i mentioned work 21:36 < krnlyng> in particular if src == null, still dest seems to be the expected return value | |
21:36 < krnlyng> http://imgur.com/a/Gc6ny | |
21:36 < krnlyng> https://bpaste.net/show/30844512bdeb excerpt from memcpy.S https://github.com/krnlyng/libhybris/tree/mako_13_mmlinker | |
2016-10-15 Latest droid-hal-configs needs: | |
"usb-moded-pc-suite-mode-android" removed from your patterns | |
backport buteo-syncfw-qt5 0.8.9 to sfos 2.0.4 (hopefully will work for 2.0.2 ports too) | |
and if device reboots when you pull USB cable out during MTP transfers, you might need this: | |
https://github.com/yacuken/android_kernel_oneplus_msm8974/commit/ebf4afca4f247073b88db1f33f1ce47573e563e0 | |
2016-10-08 Building qt5-qpa-hwcomposer-plugin is now broken for 2.0.2 and 2.0.4 ports, please use qt-5.2 branch: | |
update submodule of your rpm/dhd (droid-hal-device) which fixes build | |
point your qt5-qpa-hwcomposer-pluginwebhooks to use qt-5.2: https://webhook.merproject.org/webhook/finger | |
2016-09-18 - 2.0.2.51 available for the MotoG xt1032 by pigz | |
2016-08-12 If a another party hears their own voice echoing during the call, you might need the new 0.0.5.18 libhybris for your port | |
2016-08-09 Sailfish OS 2.0.1.11 alpha2 released by mal- for Fairphone 2 https://twitter.com/sledgeSim/status/763069388014645248https://wiki.merproject.org/wiki/Adaptations/libhybris/Install_SailfishOS_for_fp2 | |
2016-08-02 AsteroidOS (based on mer/sailfish) is on Asus Zenwatch 2 \o/ https://twitter.com/AsteroidOS/status/758762130933940224 | |
As for ChromeOS, I can't comment much since I haven't used it myself (unlike Sailfish). Uh, what? Sailfish uses all those other Linux projects, yes. Like any other Linux distribution. In other words, Sailfish is a real Linux distribution and that is why it's so nice. I don't care that there's some high-level proprietary theming going on, it's really not relevant to the core functionality of the distribution. | |
2016-08-01 restored FAQ is now here: http://bit.ly/hadk-faq-v2 | |
2016-07-18 Sfdroid multiwindow by krnlyng \o/ https://twitter.com/locusf/status/755334989802274817 | |
2016-07-17 AsteroidOS on Sony Smartwatch 3 https://twitter.com/AsteroidOS/status/754619821921333248 | |
2016-06-26 PSA: New Sailfish 2.0.1.11 alpha4 releases for 2011 Xperias [Arc/Arc S (anzu), Live (coconut), Neo V (haida), Neo (hallon), Pro (iyokan), Mini Pro (mango), Active (satsuma), Mini (smultron) and Ray (ururhi)] are now available at http://images.devaamo.fi/sfe/. Installation instructions at https://wiki.merproject.org/wiki/Adaptations/libhybris/Install_SailfishOS_for_iyokan. | |
https://twitter.com/sledgeSim/status/747364122803732480 | |
2016-06-26 OnePlus X team (kimmoli+taeem) hit beta! \o/ https://twitter.com/sledgeSim/status/747361512277311488 | |
2016-06-23 #sfdroid on CM12.1 based port \o/ https://twitter.com/adampigg/status/746091598182776832 | |
2016-06-18 Samsung Galaxy S4 \o/ https://twitter.com/wickwire2099/status/744297149198962688 | |
2016-06-16 New hadk, bugfixes only and section 8.2 shows what's not allowed in the image: https://sailfishos.org/hadk | |
2016-05-27 Sony Xperia Z3 Compact: alpha version released on XDA: http://forum.xda-developers.com/z3-compact/devn9ent/rom-sailfish-os-2-0-1-11-community-port-t3386966 | |
2016-04-18 OnePlus X alpha-3 https://twitter.com/LiKimmo/status/722188953202384898 | |
2016-04-08 OTA and gamma5 for #Nexus4 by ballock \o/ Sound recordin in camera app, dual mic voicecalls https://twitter.com/bolek1337/status/718397905963495424 | |
2016-04-06 #sfdroid on Motorola MotoG 2nd Gen. by Mister_Magister! https://twitter.com/sledgeSim/status/717850289953497088 | |
2016-04-01 First steps for Sony Xperia Z3 Compact Tablet by Nokius \o/ https://twitter.com/Nokius/status/715645080435077121 | |
2016-03-25 OnePlus X alpha-2 https://twitter.com/LiKimmo/status/713095896104312834/photo/1 | |
2016-01-11 Xiaomi Redmi 1S revived by Litew \o/ https://twitter.com/tradiz/status/686409340916502529 -> http://tradiz.org/?sfos-armani | |
2016-03-06 22:07 < eMPee584> @all: I will sponsor a i927 phone (full QWERTY keyboard! 2011, 1GB RAM, 8GB EMMC, Dual-core 1.0 GHz Cortex-A9) for the brave soul that wants to have a go at porting mer on it. it's a worthy successor to the N900. CM11 port available, see XDA. If you're interested, drop me a mail mpartap<ät>gmx.net . Best Regards! | |
One more (olden one), you can still try to contact the offerer: | |
[BOUNTY] Will pay for a Sailfish OS port to Moto E 2015 LTE (Name your price.) http://forum.xda-developers.com/moto-e-2015/general/bounty-pay-sailfish-os-port-price-t3252278/post63900427#post6390042 | |
2016-03-01 Nexus 4 revival \o/ https://twitter.com/bolek1337/status/704725132825202688 | |
2016-03-01 Moto G 1st Gen. (falcon) \o/ https://twitter.com/adampigg/status/704786369269334016 (most requested on http://bit.ly/port-requests) | |
2016-02-28 THIS IS OMG! https://twitter.com/LiKimmo/status/703924632341114881 | |
2016-02-18 HTC One M6 gets more working things by stephg! https://twitter.com/chucisteph/status/700380393426575360 | |
2016-02-18 14:15 < sledges> PSA: RFC: added OBS and OTA tutorial draft from line 340 http://piratepad.net/hadk-faq | |
2016-02-13 11:36 < r0kk3rz> Ok, any wiki editors, if you look at the first few rows of the glorious HADK table https://wiki.merproject.org/wiki/Adaptations/libhybris you will see a couple of new ways of having the device row. One is to create a device_codename template page like the one i made for the FP2 https://wiki.merproject.org/wiki/Template:Device_fp2, or if you look a bit further down the table you can just use a template to create the row | |
This enables device hw support status to be shown with a link to its template, e.g.: https://wiki.merproject.org/wiki/Adaptations/libhybris/Install_SailfishOS_for_hammerhead#Hardware_Support\o/ | |
Credits go to Nokius, lbt, and r0kk3rz for this amazing templatism work :) | |
2016-02http://piratepad.net/port-hot-01 http://bit.ly/port-requests | |
2016-01-24 HTC One \o/ two-porter effort https://twitter.com/rltyseven/status/691232410826993664 | |
2016-01-22 OnePlusX \o/ https://twitter.com/taaeem_/status/690475762609168384 | |
2016-01-16 OnePlus one calls+SMS \o/ https://twitter.com/vgrade/status/688170150525190145 | |
2016-01-10 Samsung Galaxy Tab 2 - p3100 | |
https://twitter.com/AdeenShukla/status/684314355031117824 | |
2015-12-26 Motorola Photon Q \o/ https://twitter.com/VEvgeniev/status/680844603130511360 | |
2015-12-23 Android as Sailfish OS App! https://twitter.com/sledgeSim/status/679647138305970177 | |
2015-12-23 Oppo Find 7s \o/ https://twitter.com/Nokius/status/679573564845101056 | |
2015-12-21 Fairphone 2 status \o/ https://wiki.merproject.org/wiki/Adaptations/libhybris | |
2015-12-20 Samsung Galaxy Note \o/ https://twitter.com/adampigg/status/6511516216369152 | |
2015-12-08 OnePlus One SFOS 2.0 teaser by smoku https://twitter.com/sledgeSim/status/674020668883734530 | |
2015-11-18 mako 2.0.0.10, but no camera yet;) : https://twitter.com/_undressed_/status/666943740263718912 | |
2015-11-18 Alpha3 releases of Sailfish OS 2.0.0.10 for Xperia Pro (iyokan), Mini (smultron), Mini Pro (mango), Ray (urushi) and Active (satsuma) now available at http://images.devaamo.fi/sfe, for a partial list of bug fixes see http://forum.xda-developers.com/jolla-sailfish/general/request-port-sailfish-os-to-xperia-2011-t2171283/post63885492#post63885492 | |
2015-11-03 to make call recording work, add this to your patterns/device: | |
https://github.com/mer-hybris/droid-config-hammerhead/commit/7246d1e8dbb6fac7de79d78c2557ffda609ed4b2 | |
2015-10-02 API CHANGE: since 1.1.9 all cellular devices must add this to their patterns: | |
- pattern:jolla-sailfish-cellular-apps | |
- telepathy-ring | |
2015-09-24 PSA: API CHANGE: when you'll decide to update to >=libhybris-0.0.5.12, you'll need to update your $ANDROID_ROOT/hybris/droid-config-$DEVICE/droid-configs-device submodule and regenerate patterns | |
2015-09-22 Alpha2 releases for iyokan (Xperia Pro), mango (Xperia Mini Pro), smultron (Xperia Mini) and urushi (Xperia Ray) are now available at http://images.devaamo.fi/sfe/ | |
2015-09-16 Chromium-based browser for Sailfish OS by Tworaz \o/ Check: http://piratepad.net/sailfish-quicksilver | |
2015-09-15 ZTE Open C / Kis 3. :D https://twitter.com/konstatuomio/status/643802228789235716 | |
2015-09-14 PSA: new hadk is out! https://sailfishos.org/hadk | |
2015-09-14 API CHANGE! Starting 1.1.9, every port must have this for sensors to work: https://github.com/mer-hybris/droid-config-hammerhead/commit/9dfbac7a4520ceaf1e7755e3b7a86bc00f7ecdd1 | |
2015-09-13 Sony Xperia Ray - first blind port ever! https://twitter.com/sledgeSim/status/643037489914097665 | |
2015-09-10 PSA: latest dhc contains cleaned up "sailfish-porter-tools" pattern, adjust your hybris/droid-configs/patterns/jolla-*-$DEVICE.yaml like this: https://github.com/mer-hybris/droid-hal-configs/commit/488c9da91e2fda5d9fa26826360dc8cfde4dab87#diff-4ecd3b609a20b29fa8e103412b553279R5 | |
for this you'll have to update the submodule to latest configs, of course | |
2015-09-10 SailfishOS 2.0 on Nexus5: https://twitter.com/alinmelena/status/641901594674622465 | |
2015-09-07 Motorola Moto G 1st Gen. (falcon) https://twitter.com/muhammadrefa/status/640920003097706496 | |
2015-09-04 Motorola Moto G 2nd Gen. https://twitter.com/sledgeSim/status/639819004132093952 | |
2015-09-02 Add yourself here if your port is active! https://wiki.merproject.org/wiki/Adaptations/libhybris/porters | |
2015-08-27 for icon pack lovers updated instructions line 174 http://piratepad.net/hadk-faq | |
2015-08-20 LG G watch! \o/ https://twitter.com/AsteroidOS/status/634496272553115648 | |
2015-08-20 Sony Xperia SP \o/ https://twitter.com/sledgeSim/status/634424350708469760 | |
2015-08-19 Xiaomi Redmi 1S \o/ https://twitter.com/sledgeSim/status/633992949890682880 | |
2015-07-28 Maintainers of all mer packages: http://www.merproject.org/dash src: http://www.mail-archive.com/mer-general@lists.merproject.org/msg01557.html THANKS lbt \o/ | |
2015-08-11 hybris-12.1 branch now available for creating cm-12.1 based ports | |
2015-08-06 Jolla Store works again for Nexus 5 and 4 and Xperia Pro!! and soon others! https://twitter.com/sledgeSim/status/629325072646467584 Search for "how to bring Jolla store to your device" in http://piratepad.net/hadk-faq | |
2015-07-26 Sony Xperia Pro release by mal-! https://twitter.com/sledgeSim/status/625235917486338048 | |
2015-07-16 apkenv is now in :common: https://build.merproject.org/package/show/nemo:devel:hw:common/apkenv | |
game compatibility (you'll need to download apk exactly the version indicated) http://wiki.maemo.org/Apkenv/Game_Compatibility | |
tested games list in video description: https://www.youtube.com/watch?v=SEfCvV_mzKk | |
if you install it and launch with any compatible android game apk, it should work on nexus4 out of the box | |
nexus5 will need to wait until next release though | |
(which states that 10.1 ports apkenv works already now, and 11.0 not yet ;P) | |
2015-07-02 GPS alpha works: http://forum.xda-develop | |
2015-04-30 Nexus5 alpha11 hotfix: https://twitter.com/alinmelena/status/593667006345404416 | |
Nexus4 beta6 https://twitter.com/_undressed_/status/593787467146403842 | |
2015-04-29 Nexus5 alpha10: https://twitter.com/alinmelena/status/593278121069178880 | |
2015-04-24 Samsung Galaxy Nexus u13 build (pre-alpha) nightly thread: http://forum.xda-developers.com/galaxy-nexus/general/august-25th-sailfishos-nightly-galaxy-t3092570 | |
2015-04-23 Samsung Galaxy Nexus u11 community build: http://forum.xda-developers.com/galaxy-nexus/general/august-3rd-sailfishos-galaxy-nexus-alpha-t2837096/post60312044#post60312044 | |
2015-04-22 23:26 < MSameer> BTW if someone is brave to build gecko, get https://github.com/foolab/gecko-dev and build nemo_embedlite_31-gst1 | |
23:27 < MSameer> to get [youtube] video playback | |
23:28 < MSameer> if it works be happy. if it does not then stay away from me :P | |
HP Touchpad release: https://twitter.com/JShafer817/status/590723522714009601 | |
Nexus 7 (2013) release: https://twitter.com/vrutkovs/status/590630551981334528 | |
Oppo Find5 video & camera: https://twitter.com/Nokius/status/590565167878037505 https://twitter.com/Nokius/status/590959270784536576 | |
2015-04-21 Nexus 4 u13 release: https://twitter.com/_undressed_/status/590563744662560769 | |
WhatsUp works on SFE devices! \o/ http://forum.xda-developers.com/showpost.php?p=60264278&postcount=137 | |
2015-04-20 Nexus4 u13 early access: | |
image creation succesful | |
jolla apps in store wouldn't show up. Findable and installable manually is possible -- reproduced on Nexus5. Expect glitches in Jolla Store until tablet comes out | |
2015-04-16 Nexus5 u13 early preview successfully built and booted: | |
bugs reported R&D style: | |
background parallax scrolling is inverted (workaround: set custom picture ambience) | |
2015-04-16 < vgrade> PSA, http://androidcommunity.com/lollipop-not-good-for-nexus-5-and-nexus-7-units-being-bricked-20150413/ | |
2015-04-14 Reward$ from community to community: http://forum.xda-developers.com/google-nexus-5/development/rom-sailfish-os-alpha-t2841266/post60108604#post60108604 | |
2015-04-06 You can help if you like refactoring: http://piratepad.net/dhd2modular | |
2015-04-07 N5 released with camera: https://twitter.com/alinmelena/status/585337663659630592 | |
2015-04-06 Ready to release cameraplus with Nexus5 image after merging https://github.com/foolab/cameraplus/pull/43 | |
almost not very ready as is pretty buggy but better than nothing | |
older news: http://bit.ly/port-news | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment