Jolla

Jolla is a mobile Linux phone based on Sailfish OS and Mer.

I have an issue/idea/problem aka Where to get help

 * 1) is it the software? No or doubt --> email care@jolla.com
 * 2) check FAQs at http://care.jolla.com/ (or below)
 * 3) do you have a cool idea/app and wish to work on it yourself? Yes --> spread idea in #jollamobile on IRC, get help via sailfish ML
 * 4) is it android compatibility? Yes --> file bug at to be created bugtracker that will be passed on to alien dalvik by Jolla employees
 * 5) is it apps? --> maybe give app review, or contact app maker
 * 6) in doubt how to ask questions below --> ask in #jollamobile on IRC
 * 7) is it kernel? Yes --> get help on LKML (or ask in #jollamobile on IRC)
 * 8) is it mer (lower level basic OS (non UI))? Yes --> file bug on mer tracker, or mail the mer mailing list
 * 9) is it nemo (higher level basic OS (non UI/mobile specific))? Yes --> file bug on nemo tracker or mail the mailing list
 * 10) is it sailfish UI or jolla apps (basic UI structure)? Yes --> file bug at to be created bugtracker that will be passed onto Jolla employees
 * 11) anything else? ask on IRC in #jollamobile or file bug at to be created bugtracker

Developing for Jolla/Sailfish
To develop applications for Jolla, you need to download the SailFish SDK.

Motto of Jolla devs: Don't wait for us, do something and we'll follow you.

'Then that is what we'll do!'

have interesting ideas?: add it and yourself to section TODO list below

working on some apps? add it and yourself to section apps below

list of bugs for sailfish goes here (bugtracker): kernel: LKML mer: nemomobile: nemomobile-packages: sailfish:possibly to be created with nemo or just sailfish-devel ML alien dalvik (android): donno yet

questions on development?: irc://freenode.net/#jollamobile ML: devel@lists.sailfishos.org

forum?: at TMO

git: http://github.com/nemomobile/ http://github.com/nemomobile-packages/ http://github.com/mer-packages/

Features possibly to be added later (aka TODO list)

 * hopefully NFS mounts (maybe via app) -- AL13N
 * bluetooth pairing with the help of NFC
 * bluetooth GPS pairing (overrides and turn off own GPS sensors)
 * bluetooth car audio (parrot and the likes)
 * better android support
 * qwerty TOH
 * getting qcom open source driver to work
 * security for apps -- AL13N

only jolla devs:
 * improved clock sync (automatic update) [FIXED by Jolla]
 * notification scrolling -- Jolla
 * Landscape browsing -- Jolla
 * 4G support -- Jolla
 * USB Host mode
 * MMS support
 * caldav/carddav support
 * navigation -- apello via Jolla
 * file manager (that can find SD) -- Jolla
 * notes should be similar to other apps and have same cover icons: new + update/sync

harbour stuff:
 * harbour public list of apps
 * harbour user reviews of apps
 * harbour real data
 * harbour list of apps being worked on, maybe, visible for app devs only? so that other devs know something is being worked on, so they don't have to do it themselves?

Interesting native apps possibly in the works

 * NFCKeyring
 * MOSH (by tbr)
 * [ACCEPTED] CityBike'me (by TheBootroo)
 * Billboard (by thp)
 * [ACCEPTED] Puzzle Master (by Venemo)
 * IRC Chatter (by Venemo)
 * speedcrunch
 * Morzyn
 * SOWatch (originally by Javispedro, porting attempt by tbr)

try to get beta updates and fail to get devmode back on again

 * 1) log in with x@sales with any password, it fails
 * 2) turn back devmode again

try to get developer access in devmode

 * try 'ssu domain sales'

See pirate pad for more
http://piratepad.net/JollaFAQ

How to connect to SSH over usb connection from PC
the usb is either usb_storage or usb_net


 * 1) enable developer mode
 * 2) enable SSH (it's openssh, not dropbear)
 * 3) set password
 * 4) goto usb settings
 * 5) change that to developer mode
 * 6) reconnect usb cable
 * 7) you should see the ip address of the device on the UI
 * 8) you should be able to ssh to that address from PC (set an ip address first)

optional:
 * 1) copy ssh public key to /home/nemo/.ssh/authorized_keys
 * 2) ssh-copy-id nemo@192.168.2.15
 * 3) copy ssh public key to /root/.ssh/authorized_keys
 * 4) devel-su
 * 5) copy -a /home/nemo/.ssh /root
 * 6) chown root:root -R /root/.ssh

How is The Other Half connecting to the Phone?

 * see http://talk.maemo.org/showpost.php?p=1390512&postcount=174 for possible pins
 * NFC (a unique ID)
 * I²C (bandwidth/pins unknown as of yet)
 * 1,8V I2C (400kHz default setting in kernel)
 * Other half expected to work in slave mode, phone is master
 * Dedicated INT GPIO (1,8V) for interrupts
 * power in (for charging)
 * power out (for using battery)
 * 3,3V VDD (max 300mA, preferrably < 150mA to avoid thermal issues)

and of course also
 * Bluetooth
 * Wifi
 * USB

Where do I put .apk files

 * 1) download from web and choose install

or


 * 1) put apk into ~/ (home directory)
 * 2) launch it with "xdg-open `pwd`/${app}.apk" (where $app is your app name)

or other not encouraged way :


 * 1) go into developer mode
 * 2) put the .apk file into /data/app/ (chown to root)
 * 3) if icon doesn't show up automagically "systemctl restart apkd.service" (or reboot device)

How to install the Google Play Store
(From )


 * 1) Enable Jolla Developer Mode and allow SSH-connection.
 * 2) Download http://goo.im/gapps/gapps-jb-20121011-signed.zip and extract it.
 * 3) Plug your Jolla with USB to computer in normal mode.
 * 4) Copy system-folder from your extract files to Jolla.
 * 5) Open SSH-connection to your phone and login.
 * 6) Write "devel-su" and press enter. After that, write your password.
 * 7) Write command: rsync -av --ignore-existing /home/nemo/system /opt/alien
 * 8) Reboot phone
 * 9) Install Google Play services to Jolla
 * 10) Install Google Play Store to Jolla
 * 11) Start Play Store and do updates.

How is the software structured

 * 1) jolla hw adaptation for device
 * 2) mer
 * 3) nemo
 * 4) sailfishos middle layer
 * 5) sailfishos UI
 * 6) native apps or android app via emulator or html5 apps via browser(gecko engine)

What kind of new software is used

 * kernel 3.4
 * btrfs as rootfs
 * ext4 mounts
 * systemd with journal
 * pulseaudio
 * wayland
 * qt5.1
 * libhybris (load Android bionic libraries and HAL in a glibc system)

Jolla Hardware
This is a basic overview of the hardware subsystems of the Jolla phone. Please populate the items. See http://wiki.maemo.org/N900_Hardware_Subsystems for one suggested style.


 * Audio
 * Video
 * USB
 * User interaction
 * Touchscreen
 * Accelerometer
 * GPS
 * Magnetometer
 * Gyroscope
 * Switches
 * Proximity Sensor
 * Light sensor
 * Storage
 * On-board 16 GB eMMC
 * MicroSD slot (with ~15M/s write performance, so Class 10)
 * Power managment
 * Battery
 * Charge meter
 * Phone
 * Phone module
 * SIM
 * CPU
 * Core System on Chip
 * RAM
 * Flash

Thoughts on security

 * app security
 * run all apps as regular user
 * put every app in a cgroup container?
 * have a list of policykit defined rules for system/hardware things
 * developer mode dependency? (ie: sudo root access? for certain things)
 * on harbour: app creator can ask for extra policykit defined rules
 * on harbour: list the username you wish to run your app as (does not have to be unique if there's a specific reason for that)
 * on harbour: defined policykit rules that app exports/handles for other apps to use functionality
 * on harbour: requested limits/priority for cgroup (nice/realtime)
 * on harbour: developer to be reachable for bugs/update request(eg; security reasons)? (estimated timeframe of app update? does the dev want to be warned? willingness to keep app updated? app take-over? abandonware?)
 * policy on how to handle unsecure apps? (lock down cgroup/user/...? warn user? ...)

Thoughts on app development

 * developer to be reachable for bugs/update request(eg; security reasons)? (estimated timeframe of app update? does the dev want to be warned? willingness to keep app updated? app take-over? abandonware?)
 * each app to define services (for other apps) via API on some versioning rules (add to API means new minor release, remove/change from API means new major release, etc...)
 * install requirements to be similar (rpm spec requires/suggests)
 * tasks/bundled rpms? (referring to optional suggests)

this helps documentation and working on apps compatible with each other...

new version major of any app can then be used to email dependant app maintainer to check and/or update their app for compatibility

LINKS

 * https://plus.google.com/+MikkoAhlroth/posts/ZQFRBfCjRsy