[PORT] Ubuntu Touch for LG L90 Dual

Search This thread

peat_psuwit

Senior Member
Jan 4, 2013
84
126
Update 30 October 2016: I'm sorry for very long delay. Being a university student make my free time lower considerably. Anyway, new device tarball is released in stable and rc-proposed channel. This version mostly contains minor fixes, but more importantly, this includes fixes for some famous vulnerability, including the Quadrooter and dirty CoW vulnerabilities. Go to "System Settings" to get your update, or follow instructions below if you haven't update your phone since 9 January 2016.
I still ship experimental fixes in rc-proposed that may freeze your phone when the screen is off. If this matters to you, you may consider using stable channel for now, but that has pretty bad power consumption (but that still means about one day of light usage). Also, there is known bug about mobile network not usable on some network that affects all channels.
Oh, and for those stay on absolute bleeding edge on devel-proposed channel, I currently don't have enough time to test that. So, no release to devel-proposed just yet. Sorry!


Disclaimer
Code:
/*
 * Your warranty is now void.
 *
 * I am not responsible for bricked devices, dead SD cards,
 * thermonuclear war, or you getting fired because the alarm app failed. Please
 * do some research if you have any concerns about features included in this ROM
 * before flashing it! YOU are choosing to make these modifications, and if
 * you point the finger at me for messing up your device, I will laugh at you.
 */
By the way, this disclaimer is actually copied from somewhere else just to protect me from being in the court, and I won't actually laugh at you if your device bricks. If your device really bricks, I will help you as much as possible. :)

Introduction
This is a port of Ubuntu touch to LG L90 Dual and all L90 models. (See below for tested devices.) Basic functionalities work, but there're still some rough edges all around. It's stable enough to use daily, and I personally use it on my phone every day. If you're tired of Android, you may want to give Ubuntu touch a try.

Tested device
This doesn't mean other devices aren't supported. If your device is labeled as "L90" (or can run Cyanogenmod for LG L90), you can give this a try.
  • LG L90 Dual (D410) (My device :) )
  • LG L90 D405n (single card) (Thanks, keturidu!)
  • LG Optimus L90 D415 (T-Mobile variant) (Thanks, JamesB3)

What's working/not working
Note that this is tested using rc-proposed channel.
  • Screen: Works
  • Touch: Works
  • Audio: Works
  • Screen rotation: Works
  • Vibration: Works
  • Camera: Stil picture works for both camera. But video recording doesn't work for the front camera.
  • Mobile Phone: Works for both SIM, but please see "Bugs and workarounds" below for info about 3G slot and data connection.
  • Wifi: Works
  • Video playback: Works
  • GPS: Works.*
  • Bluetooth: Works, but on/off doesn't.
*Do note that Wi-Fi-assisted location isn't available as it's licensed for the official devices only.

Screenshot

lockscreen.png

homescreen.png

taskswitcher.png

calculator.png

about-phone-censor.png


Information about device tarball and channel selection (obsolete)
Now, you don't have to worry about correct device tarball anymore. You just type in correct channels in the command, and the flashing software will get the correct files for you. You can find out more about Ubuntu touch channels at https://developer.ubuntu.com/en/start/ubuntu-for-devices/image-channels/. If you're in doubt, I recommend you to use stable channel.

How to install/upgrade
Installing for the first time (updated):

The easiest way to install it is using ubuntu-device-flash. All of your personal data will be deleted. Make sure you backup everything important before install.
You have to root your device and unlock device's bootloader. This forum has a good tutorial on that.
For rooting, I recommend http://xdaforums.com/lg-l90/general/guide-root-l90-varients-updates-t2928364. If that doesn't work, try http://xdaforums.com/showthread.php?t=2732311. This guide is guaranteed to work.
For unlocking bootloader, I recommend http://xdaforums.com/lg-l90/general/guide-guide-to-unlocking-bootloader-l90-t2852917
Also, you'll need an Ubuntu (virtual) machine.
If your device has been running Lolipop, you may have to flash Kitkat-based bootstack for your device (http://xdaforums.com/lg-l90/development/bootstack-kk-l-l90-t3118632). Make sure you know exact phone model (Dxxx__).
  1. Follow the instruction for preparing your desktop in this link.
  2. Select channel (see information about selection above). Don't download device tarball. The flashing software will get it for you.
  3. Enable ADB for your device. I won't teach you here, but, again, this forum has a good tutorial about that.
  4. Plug your device into your computer. Then, put the device in fastboot mode by running the following command:
    Code:
    adb shell su -c 'dd if=/dev/zero of=/dev/block/platform/msm_sdcc.1/by-name/boot bs=16 count=1'
    adb reboot
    The first command will wipe the first 16 bytes of the boot partition. So, when the device reboot, it'll boot into fastboot mode as the boot partition is broken. Don't worry, it'll be flashed by Ubuntu Touch anyway.
  5. When the device is in fastboot mode, run the following command:
    Code:
    sudo ubuntu-device-flash --server http://system-image.ubports.com/ touch --channel ubuntu-touch/{selected channel} --device w7 --bootstrap --wipe
    There maybe some trouble flashing recovery. If that happen, re-plug the USB chord and try again. You'll see a lot of text and then purple recovery screen. At this point, the computer will push the files into your device. Don't unplug your USB chord until the device reboot again with big Ubuntu logo spinning. Wait until the device reboot into Ubuntu Touch, and, viola, Ubuntu Touch is installed!
Upgrading your device or switch channel (updated):
If you've updated your device with new instruction at least once (since 9 January 2016) and just want to update the device tarball, just go to "System settings" on your device to get your update. But if you've never updated with the new instruction, read on.
  1. Enable developer mode on the device by going to System Settings > About this phone > Developer mode. If you don't have a passcode for your device, set it now by pressing Lock security. Then, enable developer mode by pressing at the check.
  2. Plug your device into the computer, unlock your device (this is important) and run:
    Code:
    ubuntu-device-flash --server http://system-image.ubports.com/ touch --channel ubports-touch/15.04/stable
Don't unplug your USB chord until the device reboot again with big Ubuntu logo spinning.

Flash different (Android-based) recovery:

Ubuntu recovery can't be used to flash Android-recovery-format ZIP file. If you want to go back to Android using backed up file or ZIP file, you'll need custom Android-based recoveries, such as TWRP or CWM. You'll need raw disk image (IMG file) for this. Run the following command in terminal:
Code:
adb reboot recovery
# wait for recovery to appear
adb push {recovery image name}.img /cache
adb shell dd if=/cache/{recovery image name}.img of=/dev/block/platform/msm_sdcc.1/by-name/recovery
adb reboot recovery

Download & Source code
You don't need to download device tarball manually anymore as flashing software will deals that for you. But if you want, you can download device-specific tarball using --download-only flag with ubuntu-device-flash. Be warned that you can't flash that image directly because updater in recovery image won't trust the signature.

Customization on the Android side can be found in the local manifest in this Github repository:
https://github.com/peat-psuwit/ubuntu-phone_manifest_w7
All kind of pull request is welcome on all of my repository.

Most customization on Ubuntu side can be found at
https://launchpad.net/~peat-new/+archive/ubuntu/lg-d410-custom/+packages
For those interested, this is programs that make phone call on this device works: https://github.com/peat-psuwit/pulseaudio-droid-card-parameters-setter

Legal notice
This distribution of software contains software from Android Open Source Project and CyanogenMod Project. It's under Apache license. Additionally, this distribution also contains software that is normally distributed with Android system, being under various licenses. The detail of license of those files is at /system/etc/NOTICE.html.gz after the system is installed.

This distribution of software contains part of PulseAudio. (Particularly, the modified version of droid module.) It's licensed under GPL version 2 or any later version of GPL. (it's actually distributed under LGPL 2.1+, but it's used with GPL-only libraries, making the effective license GPL. Please look at /usr/share/doc/pulseaudio-module-droid/copyright for detail). Get the patch at https://github.com/peat-psuwit/pulseaudio-droid-card-parameters-setter

This distribution of software contains timekeep, a small utility to keep track of time & date. This is Copyright (c) 2015, Sony Mobile Communications Inc, and licensed under 3-clauses BSD license. The full license can be seen at https://github.com/peat-psuwit/timekeep/blob/master/license.txt

Old legal notice:
This distribution of software contains modified version of oFono, Open Source Telephony. It's licensed under GPL version 2. You may have your source-code at https://launchpad.net/~peat-new/+archive/ubuntu/lg-d410-custom/+packages

This distribution of software contains part of GStreamer, open source multimedia framework. (Particularly, the modified version of androidmedia plugin.) It's licensed under LGPL version 2 or any later version of LGPL. You may have your source-code at https://launchpad.net/~peat-new/+archive/ubuntu/lg-d410-custom/+packages

Changelogs
Latest update: 30 October 2016
  • Fix problem where pressing buttons below the screen in certain way will cause screen not to go sleep.
  • Fix Quadrooter, dirty CoW, and other vulnerabilities.
  • Change some aspect of build system.
  • Make system use our GPS configuration instead of system's default.

Older update

16 June 2016
  • Fix thumbnail generation for some video resolution.
  • Revert NetworkManager workaround added in the last release as NM 1.2 is now in both rc-proposed and stable channel.
  • Change method to wait for Bluetooth config at startup.
  • Change grid unit size to 13px.
  • (rc-proposed only) Run init.zetaw.post-boot.sh when the phone finished booting. This'll make battery consumption a lot lower but will cause the phone to lock up sometimes. That's why I release this fix to rc-proposed channel only. If you can't bare with something like this, switch to stable channel.


28 April 2016
  • Add a workaround for NetworkManager, to fix Wi-Fi connectivity after mobile data is disconnected. The actual fix is preparing to land in rc-proposed soon, but until then, let's use this workaround.

8 April 2016
  • Update Pulseaudio-module-droid to incorporate audio recording fix.

4 April 2016 (rc-proposed only update)
  • Update Pulseaudio-module-droid
  • Update configuration to run ADB in secure mode.
  • Update recovery image.

11 March 2016
  • Fix race condition in Bluetooth initialization code.
  • Update recovery image

4 March 2016
  • Enable Bluetooth in kernel and android parts.
  • Update recovery image

6 February 2016
  • Update pulseaudio-module-droid distributed in device tarball.

9 January 2016
  • Enforce GPG verification for UBPorts system-image server.
  • Reduce possibility to reboot at startup due to Wi-Fi subsystem.

3 January 2016
  • Fixes in kernel and framework for camera due to changes in Ubuntu side.
  • Make Wi-Fi (pseudo-)on/off works. This fix Wi-Fi not work at startup.
  • Change the way to distribute Pulseaudio module.
  • Fix for touchscreen not working in new revision of Ubuntu.

20 November 2015
  • Split device tarball into 2 versions.
  • Disable some service in Android container that crashes all the time.

26 August 2015
  • Working video recording.

4 July 2015:
  • Include timekeep, a small utility to keep track of time & date.
  • Remove oFono and gstreamer1.0-plugins-bad, as patches are accepted upstream.

8 Jun 2015
  • Working GPS.
  • Update oFono.

1 Jun 2015
  • Working mobile phone for both SIM slots.
  • Update gstreamer1.0-hybris, oFono and droid module of PulseAudio, for supporting new Ubuntu version (wily).

6 May 2015
  • Finally working video playback. Although this is not so good as I cannot make hardware rendering works yet.
  • Include a modified version of gstreamer1.0-hybris package.
  • Update oFono and droid module of PulseAudio.

17 April 2015
  • Update Pulseaudio.

7 April 2015
  • Fix Wi-Fi
  • Temporary disable ubuntu-location-service. As GPS doesn't work yet, leaving that enable will make battery drain fast as it'll always try to load GPS library.

4 April 2015
  • Fix mobile phone in the hackery way.

17 March 2015:
  • Partially fix camera. It can take a still picture, but cannot record video.
  • Fix the problem about GPG signature properly. The hack is no longer needed.

Bugs and workarounds
Note that this list is based on rc-proposed channel and stable-based device tarball.
  • At boot, the device may freezes and restarts itself. This is due to the Wi-Fi system and I'm investigating this issue. This is due to fatal subsystem failure in the kernel. I've reduced possibility for Wi-FI subsystem (this is the most common failure), but this may still happen but at the lower rate.
  • If Wi-Fi list doesn't update during the day, turn Wi-Fi off and on.
  • Turning Wi-Fi on and off currently doesn't work. (Note that while you can turn Wi-Fi on-off in system settings, the Wi-Fi chip will be not turned off.)
  • If you're using rc-proposed channel, you may experience lockup when you're trying to wake the phone up from sleep. Currently, there's no fix yet, but if you can't live with it, use stable channel instead.
  • If you're using some mobile provider, your phone will not be able to detect SIM card. The fix is being developed. (If you're curious, it's about comunication between RILD and oFono and how your SIM card is programed.)
Fixed or disappeared problem:
  • Camera will stop working after you bring camera app from suspended state. Workaround: bring app back to suspend state and bring back again. This can be done by swiping from left edge. This seems not be the case now.
  • Sometime, the device may seems freeze because an app is crash. This seems to be the problem in graphic subsystem. The system may becomes responsive again after seconds, but if it takes too long, just restart the phone. This seems not be the case now.
  • Sometime (at boot or sometime after), Wi-Fi stops working. This can be noticed by having Wi-Fi network list not updated. Fixed by pseudo-on/off fix.
  • Second One or both SIM slots may stop working at some boot. Simple rebooting should fix it. You may have to reboot multiple times. Seems to be disappear.
  • 3G slot selection doesn't work when there's only 1 SIM card. Workaround: use another SIM slot. (Fix released)
  • Data connection will work with only 1 of the slots (the one you most recently used before flashing Ubuntu touch. Don't worry, if you can't remember you van try them both). Workaround: put the SIM card with a data plan in another SIM slot. If you happened to have only 1 SIM and the slot that data works is different from the slot with 3G capability, I recommend you to temporary borrow another SIM card from your friend so that you can change 3G slot. change 2G slot in system settings. Fix accepted and released.

Credits goes to
  • Quarx2k for the initial Cyanogenmod port.
  • Cyanogenmod for many components I used to simplify my build.
  • Every contributor of LG L90's device tree on Cyanogenmod.
  • Ubuntu for the porting guide.
  • awe, ogra, abeato, rsavelti, popey, anpok, and much more people on irc.freenode.net #ubuntu-touch
  • Sony for timekeep.
  • mariogrips for UBPorts.
 
Last edited:

Warimation

Senior Member
Jul 31, 2013
397
95
Almada
Im not testing yet as you dont have phone call working.. But when you do i'm going to take a peek.. :)

Enviado do meu LG-D405n através de Tapatalk
 

ardentis

Senior Member
Jan 4, 2015
564
167
I will try it when I have the time. I have been waiting to try Ubuntu Touch :D

Question: Does this method of install wipe custom recovery?
 
Last edited:

JamesB3

Senior Member
Jan 13, 2015
98
9
Shelby
I would love to test this out on my D415. Once you get mobile phone and wifi(because t-mobile's mobile data sucks here. I only get 2G xD ), Once those two things get solved i'll be happy to test. Also I think if you moved this thread over to the android development section you'll get more interest shown. I know Ubuntu isn't android but it's still technically development.
 

peat_psuwit

Senior Member
Jan 4, 2013
84
126
I would love to test this out on my D415. Once you get mobile phone and wifi(because t-mobile's mobile data sucks here. I only get 2G xD ), Once those two things get solved i'll be happy to test. Also I think if you moved this thread over to the android development section you'll get more interest shown. I know Ubuntu isn't android but it's still technically development.
I'm working on mobile phone now and I promise that Wi-Fi will be the next. :) Anyway, I cannot guarantee that it'll work on your phone, because I have only LG L90 Dual (D410). It may boot or it may not. I have no clue at all.
BTW, I don't know how to move the thread. Please tell me how.
 
  • Like
Reactions: Vilch

JamesB3

Senior Member
Jan 13, 2015
98
9
Shelby
I'm working on mobile phone now and I promise that Wi-Fi will be the next. :) Anyway, I cannot guarantee that it'll work on your phone, because I have only LG L90 Dual (D410). It may boot or it may not. I have no clue at all.
BTW, I don't know how to move the thread. Please tell me how.

That's great! I understand I just want to ask if I will have any way to get my device back to android if it doesn't boot?
And you could probably PM the moderators of the forum and get them to move it.
 

ichiato

Senior Member
Jun 27, 2014
101
8
I'm a fan of ubuntu. Never heard much of the mobile version though. How much app is available on this platform or are Android apps also compartible?
 

ardentis

Senior Member
Jan 4, 2015
564
167
I'm a fan of ubuntu. Never heard much of the mobile version though. How much app is available on this platform or are Android apps also compartible?
There are a little over a thousand apps right now and its just an upcoming platform so it doesnt have good support yet. Android apps are not compatible and will not be officially compatible though someone will eventually change that.
 

ichiato

Senior Member
Jun 27, 2014
101
8
There are a little over a thousand apps right now and its just an upcoming platform so it doesnt have good support yet. Android apps are not compatible and will not be officially compatible though someone will eventually change that.
Thanks. Is there any way I can browse through the list of apps and see? I also read somewhere that the apps for desktop version are compatible with that of the mobile version. How through is this?
 

ardentis

Senior Member
Jan 4, 2015
564
167
Thanks. Is there any way I can browse through the list of apps and see? I also read somewhere that the apps for desktop version are compatible with that of the mobile version. How through is this?
https://uappexplorer.com/ is an unofficial app store. I know nothing about compatibility other than what Canonical has said. I have no experience using Touch. It would be awesome if Touch could be flashed by zip because I dont feel like f-ing up my only phone..
 

ardentis

Senior Member
Jan 4, 2015
564
167
Has anyone tested this rom yet? I am curious how well it performs and of any bugs. I want to install it but I dont want to screw anything up
 

JamesB3

Senior Member
Jan 13, 2015
98
9
Shelby
Is there anyway to recover from this if it doesnt work? Or anyway to go back to android?

Is the developer still working on the project at all?
 

peat_psuwit

Senior Member
Jan 4, 2013
84
126
Is there anyway to recover from this if it doesnt work? Or anyway to go back to android?
You can take a backup with CWM/TWRP before install. If the rom doesn't work, you can boot into recovery, flash CWM/TWRP back, and restore your android.
If in doubt, you can always install stock rom via KDZ file. Search this device's forum for instruction.
Is the developer still working on the project at all?
I'm still working on it if the time permit. The latest update have working Wi-Fi now. Please, don't ask the question like this again, because porting an operating system is not an easy task.
 

JamesB3

Senior Member
Jan 13, 2015
98
9
Shelby
You can take a backup with CWM/TWRP before install. If the rom doesn't work, you can boot into recovery, flash CWM/TWRP back, and restore your android.
If in doubt, you can always install stock rom via KDZ file. Search this device's forum for instruction.

I'm still working on it if the time permit. The latest update have working Wi-Fi now. Please, don't ask the question like this again, because porting an operating system is not an easy task.
Oh ok thats cool. I'll test on D415 when i have time.

I know. I apologize.
 

JamesB3

Senior Member
Jan 13, 2015
98
9
Shelby
You can take a backup with CWM/TWRP before install. If the rom doesn't work, you can boot into recovery, flash CWM/TWRP back, and restore your android.
If in doubt, you can always install stock rom via KDZ file. Search this device's forum for instruction.

I'm still working on it if the time permit. The latest update have working Wi-Fi now. Please, don't ask the question like this again, because porting an operating system is not an easy task.
Do i use Ubuntu's terminal to install?
 

BellaMay95

Senior Member
Dec 27, 2013
178
44

peat_psuwit

Senior Member
Jan 4, 2013
84
126
Do i use Ubuntu's terminal to install?
Yes, you'll use terminal in Ubuntu to type those command. I'm not sure if ubuntu-device-flash is available on another Linux distro.

Most of installing instruction will apply here, just don't forget to specify device as generic and provide our device tarball. The parts that doesn't apply is about unlocking bootloader, because we actually can't do it that way. Instead, use instruction in this device's forum.
The reverting instructions can't be used here, as LG doesn't ship our device's ROM in that format. Instead, search this device's forum for instruction.
 

peat_psuwit

Senior Member
Jan 4, 2013
84
126
I tried to install but after install recovery it says that i´ve no space on the device
I guess you probably need to check free space on your computer. The phone probably have enough space to install this.
But if it still doesn't work, please copy full message printed on the terminal. The error should say if it happen on the phone or on the computer.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 20
    Update 30 October 2016: I'm sorry for very long delay. Being a university student make my free time lower considerably. Anyway, new device tarball is released in stable and rc-proposed channel. This version mostly contains minor fixes, but more importantly, this includes fixes for some famous vulnerability, including the Quadrooter and dirty CoW vulnerabilities. Go to "System Settings" to get your update, or follow instructions below if you haven't update your phone since 9 January 2016.
    I still ship experimental fixes in rc-proposed that may freeze your phone when the screen is off. If this matters to you, you may consider using stable channel for now, but that has pretty bad power consumption (but that still means about one day of light usage). Also, there is known bug about mobile network not usable on some network that affects all channels.
    Oh, and for those stay on absolute bleeding edge on devel-proposed channel, I currently don't have enough time to test that. So, no release to devel-proposed just yet. Sorry!


    Disclaimer
    Code:
    /*
     * Your warranty is now void.
     *
     * I am not responsible for bricked devices, dead SD cards,
     * thermonuclear war, or you getting fired because the alarm app failed. Please
     * do some research if you have any concerns about features included in this ROM
     * before flashing it! YOU are choosing to make these modifications, and if
     * you point the finger at me for messing up your device, I will laugh at you.
     */
    By the way, this disclaimer is actually copied from somewhere else just to protect me from being in the court, and I won't actually laugh at you if your device bricks. If your device really bricks, I will help you as much as possible. :)

    Introduction
    This is a port of Ubuntu touch to LG L90 Dual and all L90 models. (See below for tested devices.) Basic functionalities work, but there're still some rough edges all around. It's stable enough to use daily, and I personally use it on my phone every day. If you're tired of Android, you may want to give Ubuntu touch a try.

    Tested device
    This doesn't mean other devices aren't supported. If your device is labeled as "L90" (or can run Cyanogenmod for LG L90), you can give this a try.
    • LG L90 Dual (D410) (My device :) )
    • LG L90 D405n (single card) (Thanks, keturidu!)
    • LG Optimus L90 D415 (T-Mobile variant) (Thanks, JamesB3)

    What's working/not working
    Note that this is tested using rc-proposed channel.
    • Screen: Works
    • Touch: Works
    • Audio: Works
    • Screen rotation: Works
    • Vibration: Works
    • Camera: Stil picture works for both camera. But video recording doesn't work for the front camera.
    • Mobile Phone: Works for both SIM, but please see "Bugs and workarounds" below for info about 3G slot and data connection.
    • Wifi: Works
    • Video playback: Works
    • GPS: Works.*
    • Bluetooth: Works, but on/off doesn't.
    *Do note that Wi-Fi-assisted location isn't available as it's licensed for the official devices only.

    Screenshot

    Information about device tarball and channel selection (obsolete)
    Now, you don't have to worry about correct device tarball anymore. You just type in correct channels in the command, and the flashing software will get the correct files for you. You can find out more about Ubuntu touch channels at https://developer.ubuntu.com/en/start/ubuntu-for-devices/image-channels/. If you're in doubt, I recommend you to use stable channel.

    How to install/upgrade
    Installing for the first time (updated):

    The easiest way to install it is using ubuntu-device-flash. All of your personal data will be deleted. Make sure you backup everything important before install.
    You have to root your device and unlock device's bootloader. This forum has a good tutorial on that.
    For rooting, I recommend http://xdaforums.com/lg-l90/general/guide-root-l90-varients-updates-t2928364. If that doesn't work, try http://xdaforums.com/showthread.php?t=2732311. This guide is guaranteed to work.
    For unlocking bootloader, I recommend http://xdaforums.com/lg-l90/general/guide-guide-to-unlocking-bootloader-l90-t2852917
    Also, you'll need an Ubuntu (virtual) machine.
    If your device has been running Lolipop, you may have to flash Kitkat-based bootstack for your device (http://xdaforums.com/lg-l90/development/bootstack-kk-l-l90-t3118632). Make sure you know exact phone model (Dxxx__).
    1. Follow the instruction for preparing your desktop in this link.
    2. Select channel (see information about selection above). Don't download device tarball. The flashing software will get it for you.
    3. Enable ADB for your device. I won't teach you here, but, again, this forum has a good tutorial about that.
    4. Plug your device into your computer. Then, put the device in fastboot mode by running the following command:
      Code:
      adb shell su -c 'dd if=/dev/zero of=/dev/block/platform/msm_sdcc.1/by-name/boot bs=16 count=1'
      adb reboot
      The first command will wipe the first 16 bytes of the boot partition. So, when the device reboot, it'll boot into fastboot mode as the boot partition is broken. Don't worry, it'll be flashed by Ubuntu Touch anyway.
    5. When the device is in fastboot mode, run the following command:
      Code:
      sudo ubuntu-device-flash --server http://system-image.ubports.com/ touch --channel ubuntu-touch/{selected channel} --device w7 --bootstrap --wipe
      There maybe some trouble flashing recovery. If that happen, re-plug the USB chord and try again. You'll see a lot of text and then purple recovery screen. At this point, the computer will push the files into your device. Don't unplug your USB chord until the device reboot again with big Ubuntu logo spinning. Wait until the device reboot into Ubuntu Touch, and, viola, Ubuntu Touch is installed!
    Upgrading your device or switch channel (updated):
    If you've updated your device with new instruction at least once (since 9 January 2016) and just want to update the device tarball, just go to "System settings" on your device to get your update. But if you've never updated with the new instruction, read on.
    1. Enable developer mode on the device by going to System Settings > About this phone > Developer mode. If you don't have a passcode for your device, set it now by pressing Lock security. Then, enable developer mode by pressing at the check.
    2. Plug your device into the computer, unlock your device (this is important) and run:
      Code:
      ubuntu-device-flash --server http://system-image.ubports.com/ touch --channel ubports-touch/15.04/stable
    Don't unplug your USB chord until the device reboot again with big Ubuntu logo spinning.

    Flash different (Android-based) recovery:

    Ubuntu recovery can't be used to flash Android-recovery-format ZIP file. If you want to go back to Android using backed up file or ZIP file, you'll need custom Android-based recoveries, such as TWRP or CWM. You'll need raw disk image (IMG file) for this. Run the following command in terminal:
    Code:
    adb reboot recovery
    # wait for recovery to appear
    adb push {recovery image name}.img /cache
    adb shell dd if=/cache/{recovery image name}.img of=/dev/block/platform/msm_sdcc.1/by-name/recovery
    adb reboot recovery

    Download & Source code
    You don't need to download device tarball manually anymore as flashing software will deals that for you. But if you want, you can download device-specific tarball using --download-only flag with ubuntu-device-flash. Be warned that you can't flash that image directly because updater in recovery image won't trust the signature.

    Customization on the Android side can be found in the local manifest in this Github repository:
    https://github.com/peat-psuwit/ubuntu-phone_manifest_w7
    All kind of pull request is welcome on all of my repository.

    Most customization on Ubuntu side can be found at
    https://launchpad.net/~peat-new/+archive/ubuntu/lg-d410-custom/+packages
    For those interested, this is programs that make phone call on this device works: https://github.com/peat-psuwit/pulseaudio-droid-card-parameters-setter

    Legal notice
    This distribution of software contains software from Android Open Source Project and CyanogenMod Project. It's under Apache license. Additionally, this distribution also contains software that is normally distributed with Android system, being under various licenses. The detail of license of those files is at /system/etc/NOTICE.html.gz after the system is installed.

    This distribution of software contains part of PulseAudio. (Particularly, the modified version of droid module.) It's licensed under GPL version 2 or any later version of GPL. (it's actually distributed under LGPL 2.1+, but it's used with GPL-only libraries, making the effective license GPL. Please look at /usr/share/doc/pulseaudio-module-droid/copyright for detail). Get the patch at https://github.com/peat-psuwit/pulseaudio-droid-card-parameters-setter

    This distribution of software contains timekeep, a small utility to keep track of time & date. This is Copyright (c) 2015, Sony Mobile Communications Inc, and licensed under 3-clauses BSD license. The full license can be seen at https://github.com/peat-psuwit/timekeep/blob/master/license.txt

    Old legal notice:
    This distribution of software contains modified version of oFono, Open Source Telephony. It's licensed under GPL version 2. You may have your source-code at https://launchpad.net/~peat-new/+archive/ubuntu/lg-d410-custom/+packages

    This distribution of software contains part of GStreamer, open source multimedia framework. (Particularly, the modified version of androidmedia plugin.) It's licensed under LGPL version 2 or any later version of LGPL. You may have your source-code at https://launchpad.net/~peat-new/+archive/ubuntu/lg-d410-custom/+packages

    Changelogs
    Latest update: 30 October 2016
    • Fix problem where pressing buttons below the screen in certain way will cause screen not to go sleep.
    • Fix Quadrooter, dirty CoW, and other vulnerabilities.
    • Change some aspect of build system.
    • Make system use our GPS configuration instead of system's default.

    Older update

    16 June 2016
    • Fix thumbnail generation for some video resolution.
    • Revert NetworkManager workaround added in the last release as NM 1.2 is now in both rc-proposed and stable channel.
    • Change method to wait for Bluetooth config at startup.
    • Change grid unit size to 13px.
    • (rc-proposed only) Run init.zetaw.post-boot.sh when the phone finished booting. This'll make battery consumption a lot lower but will cause the phone to lock up sometimes. That's why I release this fix to rc-proposed channel only. If you can't bare with something like this, switch to stable channel.


    28 April 2016
    • Add a workaround for NetworkManager, to fix Wi-Fi connectivity after mobile data is disconnected. The actual fix is preparing to land in rc-proposed soon, but until then, let's use this workaround.

    8 April 2016
    • Update Pulseaudio-module-droid to incorporate audio recording fix.

    4 April 2016 (rc-proposed only update)
    • Update Pulseaudio-module-droid
    • Update configuration to run ADB in secure mode.
    • Update recovery image.

    11 March 2016
    • Fix race condition in Bluetooth initialization code.
    • Update recovery image

    4 March 2016
    • Enable Bluetooth in kernel and android parts.
    • Update recovery image

    6 February 2016
    • Update pulseaudio-module-droid distributed in device tarball.

    9 January 2016
    • Enforce GPG verification for UBPorts system-image server.
    • Reduce possibility to reboot at startup due to Wi-Fi subsystem.

    3 January 2016
    • Fixes in kernel and framework for camera due to changes in Ubuntu side.
    • Make Wi-Fi (pseudo-)on/off works. This fix Wi-Fi not work at startup.
    • Change the way to distribute Pulseaudio module.
    • Fix for touchscreen not working in new revision of Ubuntu.

    20 November 2015
    • Split device tarball into 2 versions.
    • Disable some service in Android container that crashes all the time.

    26 August 2015
    • Working video recording.

    4 July 2015:
    • Include timekeep, a small utility to keep track of time & date.
    • Remove oFono and gstreamer1.0-plugins-bad, as patches are accepted upstream.

    8 Jun 2015
    • Working GPS.
    • Update oFono.

    1 Jun 2015
    • Working mobile phone for both SIM slots.
    • Update gstreamer1.0-hybris, oFono and droid module of PulseAudio, for supporting new Ubuntu version (wily).

    6 May 2015
    • Finally working video playback. Although this is not so good as I cannot make hardware rendering works yet.
    • Include a modified version of gstreamer1.0-hybris package.
    • Update oFono and droid module of PulseAudio.

    17 April 2015
    • Update Pulseaudio.

    7 April 2015
    • Fix Wi-Fi
    • Temporary disable ubuntu-location-service. As GPS doesn't work yet, leaving that enable will make battery drain fast as it'll always try to load GPS library.

    4 April 2015
    • Fix mobile phone in the hackery way.

    17 March 2015:
    • Partially fix camera. It can take a still picture, but cannot record video.
    • Fix the problem about GPG signature properly. The hack is no longer needed.

    Bugs and workarounds
    Note that this list is based on rc-proposed channel and stable-based device tarball.
    • At boot, the device may freezes and restarts itself. This is due to the Wi-Fi system and I'm investigating this issue. This is due to fatal subsystem failure in the kernel. I've reduced possibility for Wi-FI subsystem (this is the most common failure), but this may still happen but at the lower rate.
    • If Wi-Fi list doesn't update during the day, turn Wi-Fi off and on.
    • Turning Wi-Fi on and off currently doesn't work. (Note that while you can turn Wi-Fi on-off in system settings, the Wi-Fi chip will be not turned off.)
    • If you're using rc-proposed channel, you may experience lockup when you're trying to wake the phone up from sleep. Currently, there's no fix yet, but if you can't live with it, use stable channel instead.
    • If you're using some mobile provider, your phone will not be able to detect SIM card. The fix is being developed. (If you're curious, it's about comunication between RILD and oFono and how your SIM card is programed.)
    Fixed or disappeared problem:
    • Camera will stop working after you bring camera app from suspended state. Workaround: bring app back to suspend state and bring back again. This can be done by swiping from left edge. This seems not be the case now.
    • Sometime, the device may seems freeze because an app is crash. This seems to be the problem in graphic subsystem. The system may becomes responsive again after seconds, but if it takes too long, just restart the phone. This seems not be the case now.
    • Sometime (at boot or sometime after), Wi-Fi stops working. This can be noticed by having Wi-Fi network list not updated. Fixed by pseudo-on/off fix.
    • Second One or both SIM slots may stop working at some boot. Simple rebooting should fix it. You may have to reboot multiple times. Seems to be disappear.
    • 3G slot selection doesn't work when there's only 1 SIM card. Workaround: use another SIM slot. (Fix released)
    • Data connection will work with only 1 of the slots (the one you most recently used before flashing Ubuntu touch. Don't worry, if you can't remember you van try them both). Workaround: put the SIM card with a data plan in another SIM slot. If you happened to have only 1 SIM and the slot that data works is different from the slot with 3G capability, I recommend you to temporary borrow another SIM card from your friend so that you can change 3G slot. change 2G slot in system settings. Fix accepted and released.

    Credits goes to
    • Quarx2k for the initial Cyanogenmod port.
    • Cyanogenmod for many components I used to simplify my build.
    • Every contributor of LG L90's device tree on Cyanogenmod.
    • Ubuntu for the porting guide.
    • awe, ogra, abeato, rsavelti, popey, anpok, and much more people on irc.freenode.net #ubuntu-touch
    • Sony for timekeep.
    • mariogrips for UBPorts.
    8
    Update 8 Jun 2015

    Update 8 Jun 2015: New version of device-specific tarball is available with working GPS. Download using the same link.
    7
    Update 16 July 2015

    Update 16 July 2015: Big changes is coming. This change will make device tarball upgrade easier and make space usage more efficient. You'll have to wipe your data. So, prepare to backup your personal data.
    6
    Update 1 Jun 2015

    Update 1 Jun 2015: New version of device-specific tarball is available with working 2nd SIM slot. Download using the same link.
    6
    Update 4 July 2015

    Update 4 July 2015: New version of device-specific tarball is available with correct time across reboots without network. Download using the same link. I also update credits, bugs, legal notices, and instruction. Don't forget to check it out.