Related
I see all kinds of posts for using kexec to boot new kernels, but I can't find an Arms download for it.
Not even sure if my kernel supports it, but I am looking for a safe way of testing new kernels. Uboot doesn't support SD Boots and don't have Multi Load or anything for my S3C6410 tablet. Yet I have a lot of S3C kernels and sources to try.
[Kernel][Ref] Samsung Gravity Smart SGH-T589 Technical info & custom kernel project
The Samsung Gravity SMART is a low-midrange Froyo-based Android phone. It hasn't gotten a lot of attention because it's on an unpopular carrier (T-Mobile) and LOL QWERTY KEYBOARD. I intend to change that.
Technical Specifications
Below is information I've gleaned from spec sheets, Internet research, and judicious use of a loupe on my wife's broken phone.
Platform: Qualcomm S1 Snapdragon 7227 @ 800Mhz
CPU: ARM1136EJ-S
Touchscreen: ATMEL mXT224E
WiFi: Broadcom 4329
GPU: Adreno 200
RAM: 320MB, 275MB accessible
Bluetooth: ???
[more later--I'm at work and don't have all my notes]
Kernel development
I don't have anything to release yet. As a proof-of-concept, I've successfully compiled the sources provided by Samsung. It boots, but two big issues prevent me from releasing anything:
The coordinates on the digitizer are inverted--i.e. tapping the top left corner activates the bottom right, and vice versa.
The menu, back, and search capacitive buttons don't work at all.
Upcoming Features
Here's what I'm planning to add to the kernel once driver issues are resolved:
More CPU frequency scaling options
More scheduler/governor options
What's not planned
Gingerbread/ICS (phone needs updated boot loader to support 2.6.35 or later Linux kernels so we are stuck w/ Froyo for now)
I managed to hack the touchscreen driver to kinda-sorta work (at least the axes are correct now), but it's still not quite right. It's very inaccurate, which makes drawing anything (i.e. trying to play Draw Something) not work at all.
ATMEL has released drivers for the mXT series (including the 224E) but I'm having trouble getting it to work properly. Going to compare it against the kinda-working driver and see if I can fix it.
I found part of the problem, but I'm still having trouble with getting the driver to even load. Still, I discovered that the stock touchscreen driver only supports 2 simultaneous touches--the chip actually supports up to 10 simultaneous. I'm hoping to get the driver working so it's actually usable.
I have a friend with this phone i'm curious to see what you can do with it!
Man, this touchscreen driver is kicking my butt.
The official Atmel drivers don't work at all--the i2c call(s) fail during initialization and you get no touchscreen input.
The driver in the kernel released by Samsung is broken, too. In the default configuration, both axis are inverted so you have to tap the top-right of the screen to tap on something that's actually in the bottom-left. And the navigation buttons at the bottom don't work at all (menu/back/search).
So far all I've managed to do is at least get the orientation fixed, but the driver's still broken--you can't tap on anything on the edges (left/right), and the scaling is wrong so taps are mis-aligned in different parts of the screen. It's hard to describe, but comparing the output of YAMTT on stock kernel vs. compiled kernel shows glaring problems.
At this point I am trying to fix the Samsung driver, since it at least partially works. In the process, I'm doing a pretty massive code cleanup, mainly code organization and complete debug info that will make it easier to dissect exactly how the driver works and hopefully find the cause of the freaky behavior.
I've overhauled the debug output of the Samsung driver so that it's easier to parse via grep. The next trick will be actually fixing the driver.. but I'm going to be gone for annual training for the next two weeks, so things will be on hold until I get back.
I'm very excited to see what can be done with this for the phone.
This is my girlfriend's first android phone and while she's enjoying it, I want the experience to be better for her.
Good luck with your training!
SefEXE said:
I'm very excited to see what can be done with this for the phone.
This is my girlfriend's first android phone and while she's enjoying it, I want the experience to be better for her.
Good luck with your training!
Click to expand...
Click to collapse
Nice choice
This is a powerful device but unfourtuneally is an unpopular one, so there is not many developers with the Gravity
I strongly recommend you to install to follow and install this ROM on your girlfriend's phone: http://forum.xda-developers.com/showthread.php?t=1320187
Well, I've managed to get a 3.6.35.7 kernel to boot on the phone.
Samsung released the kernel source for the SGH-T589W which seems to be a Gingerbread edition of the Gravity Smart. The kernel builds successfully and manages to boot, but it gets stuck on a black screen. However, it does show up in the 'adb devices' list, so it's a start.
I believe the problem is the lack of both the OneNAND driver (AKA LinuStoreIII) and the RFS filesystem support. The modules from the stock kernel are compiled against 3.6.32.x so they don't work with the newer kernel.
My Google-Fu has turned up partial source for the same version of LinuStoreIII for the 3.6.35.7 kernel, and it successfully compiled. However, I haven't had any luck finding an RFS module.
EDIT: I think I found what I need, but I won't know until I get home!
gblues said:
Well, I've managed to get a 3.6.35.7 kernel to boot on the phone.
Samsung released the kernel source for the SGH-T589W which seems to be a Gingerbread edition of the Gravity Smart. The kernel builds successfully and manages to boot, but it gets stuck on a black screen. However, it does show up in the 'adb devices' list, so it's a start.
I believe the problem is the lack of both the OneNAND driver (AKA LinuStoreIII) and the RFS filesystem support. The modules from the stock kernel are compiled against 3.6.32.x so they don't work with the newer kernel.
My Google-Fu has turned up partial source for the same version of LinuStoreIII for the 3.6.35.7 kernel, and it successfully compiled. However, I haven't had any luck finding an RFS module.
EDIT: I think I found what I need, but I won't know until I get home!
Click to expand...
Click to collapse
NICE, keep us with update with the news :highfive:
Well, I thought I had something, but it's still not working quite right. I've got the parts for my debug cable on order. Should get here within the next week.
Well, I haven't yet gotten the serial output yet, but I do have a much more detailed output from dmesg now. I'm attaching it below.
Ugh. Samsung's OSRC is being a pain in the butt.
I contacted them requesting the correct driver. Their response: "That is the correct driver."
I responded, "Did you actually test it? Because when I compile the code you provided, the x/y axes are inverted." Their response: "Herp derp Samsung Proprietary."
My most recent response: "Don't give me that proprietary BS. The driver is GPL. If you used any of the code that's in that driver, you need to publish your modifications to it."
We'll see what happens next...
Your dedication to this project continues to provide me with a glimmer of hope for the 589. I thank you sir. Down with herp derp.
Sent from my SGH-T589 using xda app-developers app
Well, now they're claiming that the driver is the one they used in the shipping kernel. Oy!
In other news... I successfully booted Gingerbread on the phone using a stock kernel. I cheated a bit, though. I'll describe how I did it, in case anyone doubts me. The post is intentionally vague because it's not fully usable, wifi doesn't work at all, and I'm not currently at home and able to fully document the process. If anyone is actually interested in trying this out, I'll consider writing a script to automate it.
Known issues with this method:
- network time doesn't seem to work right
- wifi definitely doesn't work right
- usb mode doesn't appear at all
- The phone reports itself as a Galaxy Ace in the Settings screen.
OK, the steps:
First, the things you will need:
1) Stock SGH-T589 firmware (samfirmware.com has it)
2) Stock Galaxy Ace firmware (again on samfirmware.com)
3) unpack-bootimg.pl (google it). This is used to extract the kernel and ramdisk from boot.img
4) mkbootimg (google, or build from source). This is used to re-create the boot.img file
Steps:
- Start by unpacking each firmware package into its own folder.
- From the SGH-T589 folder, delete everything except boot.img
- From the Ace folder, delete everything except boot.img and system.rfs (MAKE SURE YOU DELETE arm11boot.img)
- Now, make an empty folder and copy the stock boot.img into it. Unpack it with unpack-boot.img.pl
- Make another empty folder and put the Ace's boot.img into it. Unpack it also.
- delete the boot.img-kernel.gz from the Ace's folder
- delete boot.img-ramdisk/lib/modules/*.ko
- copy boot.img-kernel.gz from the stock folder to the ace one.
- copy boot.img-ramdisk/lib/modules/*.ko from stock folder to corresponding dir of the ace one.
- copy boot.img-ramdisk/COOPER.rle from stock folder to ace one (optional, preserves the Gravity Smart boot splash screen)
- now, repack the boot.img-ramdisk folder into the CPIO archive
- next rebuild the boot.img file
- lastly, create ODIN archive with the rebuilt boot.img and the Ace's system.rfs
Flash the resulting tar.md5 file using Odin 4.40 USA.
Hi gblues. Very good work so far! Are you planning on porting CWM recovery? It's been ported to very similar phones, like the Ace, Gio, and Mini.
ShaunOfTheLive said:
Hi gblues. Very good work so far! Are you planning on porting CWM recovery? It's been ported to very similar phones, like the Ace, Gio, and Mini.
Click to expand...
Click to collapse
I used a similar technique (unpack, replace kernel/kernel drivers, repack) on the Galaxy Ace CWM recovery and it seems to work. Unfortunately, when I tried to use it to flash the Ace's ICS port, I get a black screen with "A N D R O I D" in the middle (note: this is after extracting the boot.img and doing the unpack/swap/repack process and flashing with ODIN). I suspect that ICS requires kernel features that simply aren't in the stock 2.6.32 kernel.
After doing some more long-term tests, my accomplishment above is a good proof-of-concept but it's not ready for prime time. Landscape mode is completely broken. Games like "Cut the Rope" only give you a black screen. The QWERTY keyboard is borked (mainly alt-keys). The SD card disappeared completely until a reboot. USB mode doesn't work. The accelerometer doesn't seem to work. The stock web browser crashes. Wifi doesn't work. The list goes on.
So that gets back to getting a custom kernel working...
It seems that finally I was able to boot custom kernel with working radio
It's not very stable yet(it stops/crashes at bootanimation quite frequently), and is quite laggy just after boot, but once it boots it seems to be almost usable. Wifi works, sdcard also. Haven't checked bluetooth.
Credits for this goes to:
* milestone1 devs... for sharing 2ndboot source code and providing so much info regarding milestone1/2 phones
* Motorola ... for providing source code(not fully working, but was a great help anyway) for enabling UART over micro usb for debugging purposes(without this I woudn't make any progress)
* tezet... for making quite good roms used by 2ndboot
If you wish to try it(BEWARE THAT IT MIGHT BRICK YOUR PHONE, SO DON'T SAY THAT I HAVEN'T WARNED YOU ), then do as follows:
1. Install tezet's JB10(if you don't have one already).
2. extract 2ndboot.tar(attached) into /data folder, check that /data/2ndboot/hbootuser file has execute permissions.
3. overwrite /system/bootmenu/script/2nd-boot.sh(DON'T TOUCH 2nd-init.sh!!!) with the one from tar(2nd-boot.sh.tar) and check it has execute permissions.
4. reboot into bootmenu
5. change the default boot method to 2ndboot
6. Restart your phone. Most likely it will crash few times at bootlogo, but be patiant, it finally should boot
7. If you wish to get back to 2nd-init, then enter bootmenu again and change default boot method back to 2nd-init, or manually boot 2nd-init
Click to expand...
Click to collapse
Please let me know if someone actually run it and was able to boot(so that to find out if I haven't forgot to include some more files(see changelog for 03.10.2012)
KNOWN LIMITATIONS
Boots very sloooowly
Its' quite laggy just after boot.
GPS does not seem to work yet
Click to expand...
Click to collapse
CHANGELOG
01.10.2012 - corrected battery problems(thanks to Quarx and kabaldan)
03.10.2012 - corrected ramdisk(previous one was calling some script which I forgot to attach to this post, new one has this script inside), so that now you should be able to boot it; updated instructions how to install it; enabled TLS in the kernel(thanks to kabaldan)
04.10.2012 - touch driver updated, now should work with lastest JB(thanks to Eleanor_Ir, Quarx), adb fixed(I hope, stability fix(thanks to Quarx)
Click to expand...
Click to collapse
NOTES for devs
In milestone2(as probably in many others UMTS phones made by Motorola) the BP is somehow very sensible and does not like to be disconnected/reenumerated. The main goal of this 2ndboot is then to not allow it to be disconnected. To do this, in the new kernel I've skipped a few resets(EHCI, TLL, individual port resets), and instead of enumerating BP, I've used the hardcoded usb device address(which for milestone2 seems to be equal to 2).
I attach patch(radio.patch) with the changes I've done to the kernel sources from here:
http://sourceforge.net/projects/milestone.motorola/files/MILS2_U6_4.1-22/
This seems to work(sometime) for both milestone2 and defy.
For other motorola phones:
1. First of all, check with lsusb what's the address and vendor/product id of your BP(for milestone2 it's 0x22b8 and 0x40e6).
2. If the BP usb device address is 2, then just apply the patch(probably it will need some small modifications), and check if it works.
3. If the BP usb device address is not 2, then edit usb/core/hub.c function hub_port_init(providing that it's there for your kernel), and replace 0x02 in the place where usb_control_msg to get descriptors is sent with address of your device
If it does not work, then you can try the following:
Create a procedure to send usb GetDescriptors request using omap3 ehci registers, and call it at different boot stages/usb initialization stages to find out how long the radio remains attached, and comment/change appropriate fragments of kernel code, to preserve this until usb port is initialized. If you wish, I can share the procedure I've written(in the patch file this is that czecho_get_descriptors called in many places) for milestone2, but it probably would need some modification to work with your device).
2ndboot module sources are here:
https://github.com/czechop/2ndboot
Wow, thats perfect This could bring M2 development to another level.
Holding thumbs up and keep it up!
Great news! Thx for your work. I've just bought an OTG cable to start playing with kernel stuff and here's a surprise
Fabulous! That means it starts a new era in the development of our MS2 Roms!
Wonderful job man
Brilliant
Sent from my A953 using Tapatalk 2
I'm gonna try on the Motorola Bravo as soon as PA is done uploading. Hopefully this'll work on Froyo kernels as well :fingers-crossed:
What kernel are you using? A recompiled MS2 GB kernel unmodified?
Awesome job man. This could possibly be the start of a new generation of roms for our common platform if this works on other similar phones like the Defy\Bravo. Only time will tell .
Well good work OP, can this be implemented on other Moto phones like Defy?
Great work !
I see that your work is based on Moto's Linux kernel (2.6 branch as far as I remember...)
Any hope of using another kernel source one day ?
Great News!, Thanks
Waiting for source code
Wow! Tezet and Quarx on the same thread?! I feel like up on the Mount Olypmus lol
Great job, man!...been following your work from General section.
P.S. add Kabaldan to the list Clash of the Moto Titans
skeevy420 said:
I'm gonna try on the Motorola Bravo as soon as PA is done uploading. Hopefully this'll work on Froyo kernels as well :fingers-crossed:
What kernel are you using? A recompiled MS2 GB kernel unmodified?
Awesome job man. This could possibly be the start of a new generation of roms for our common platform if this works on other similar phones like the Defy\Bravo. Only time will tell .
Click to expand...
Click to collapse
Yes, I use MS2 GB U6_4.1-22(http://sourceforge.net/projects/milestone.motorola/files/MILS2_U6_4.1-22/) kernel... but with modified usb host driver.
nidhish91 said:
Well good work OP, can this be implemented on other Moto phones like Defy?
Click to expand...
Click to collapse
I think it can be.
With defy it probably should be easy, as I've seen there was 2ndboot(without radio) already build for it, so most likely only new kernel would need some tuning
czechop said:
I think it can be.
With defy it probably should be easy, as I've seen there was 2ndboot(without radio) already build for it, so most likely only new kernel would need some tuning
Click to expand...
Click to collapse
XT720 users also waiting for instructions for new kernel tuning, cause we have working 2ndboot without radio. =)
boorce.com said:
Great work !
I see that your work is based on Moto's Linux kernel (2.6 branch as far as I remember...)
Any hope of using another kernel source one day ?
Click to expand...
Click to collapse
It should be easy to apply some(perhaps most) 2.6.32 upstream patches to the motorola kernel sources.
Don't know however how difficult it would be to start from another kernel version. Don't know also how motorola proprietary modules/libs would behave with newever kernel version. But, as they say, impossible is nothing
czechop said:
I think it can be.
With defy it probably should be easy, as I've seen there was 2ndboot(without radio) already build for it, so most likely only new kernel would need some tuning
Click to expand...
Click to collapse
In kernel only modified usb driver or some more changes for boot?
fjfalcon said:
XT720 users also waiting for instructions for new kernel tuning, cause we have working 2ndboot without radio. =)
Click to expand...
Click to collapse
Will share source code probably early next week(currently am at work, and during weekend most likely won't be sober enough
Quarx said:
In kernel only modified usb driver or some more changes for boot?
Click to expand...
Click to collapse
In 2ndboot module I've added code to disable lcd before starting new kernel(otherwise new kernel could not initialise properly dss), and in new kernel I've only modified usb driver(perhaps more things will need to be modified, as I'm facing problem with BATTD sayins something about power ic fail, BTW, does someone know what that could mean?), so that it skips restaring EHCI, TLL and don't start enumeration, but just used the old usb device address(assigned by the original kernel), which for M2 is always 2(at least during my tests).
I2c Fail can be caused by wrong permissions for /dev/cpp*
I tried your prebuilt binaries on defy http://pastebin.com/jKjQ2ykn
Black screen + buttons lights and reboot after ~20sec
Quarx said:
I2c Fail can be caused by wrong permissions for /dev/cpp*
I tried your prebuilt binaries on defy http://pastebin.com/jKjQ2ykn
Black screen + buttons lights and reboot after ~20sec
Click to expand...
Click to collapse
Thanks for hint regarding permissions...will check that
Regarding prebuilt binaries on defy, hard to say what's wrong(not sure how much the phones differ). Anyway, you probably would need to use devtree from your device. Also you could unpack ramdisk, and check the init.*.rc scripts if they are ok(e.g. I mount system partion using p21, not sure if that's the same for defy, and staff like that).
Hello all.
Sorry for noob question, but I am just a beginner.
I have a tablet (GoClever R105KB) with Rockchip RK3066 chipset.
So far, I did not find any alternative ROM for it.
I am quite happy with the stock firmware (I just rooted it), but I'd like to modify a single thing - the USB_OTG driver.
The stupid device designer compiled the kernel with the flag CONFIG_USB_OTG_BLACKLIST_HUB enabled.
Therefore my keyboard with integrated hub and mouse port does not work.
I'd like to recompile the kernel, however, the device manufacturer did not post any sources.
I am thinking about downloading the kernel sources for 3.0.8+, compile the hub.c myself and somehow force the module to the kernel.
Can anyone advice if this is even possible?
Thanks.
I now found out that there is some option to patch already running kernel, or maybe disassemble the kernel, remove the condition and assemble it back.
Does anyone have experience with such activity?
sediROM for LG Optimus F3Q - Custom ROM (codenames: fx3q, d520)
This is about building a custom ROM like Cyanogenmod or AOSP working on the LG Optimus F3Q.
Introduction
First of all: At the moment there is no CM or AOSP based ROM available for the F3Q. Not yet.
That said it means I try to port CM (or build pure AOSP) to the F3Q and this is this thread about.
Some words about me and what I do:
I do Android ROM development since June 2014 mainly doing things based on stock.
Before the F3Q I never had to do with porting CM or AOSP to a brand new (no not such "new" anymore) device before.
New means "no file device tree" etc available. So I dive into porting months ago and still learning every day new things here.
Porting is nothing you can learn in a week or so The main problem with porting is that there is not much you can read or
where you can get many help for. The guides out there are very generic and to be honest the best would be having a pro on your site
which guides you through all the problems which WILL occur when porting.
Before starting I never heard about "loki", doesn't know how TWRP gets compiled or created an Android kernel with or without CM
automatism. In the meantime I compiled a working TWRP version, having a kernel in place which allows to boot unsigned system
images and many more. The only "little" thing left is to get CM ready.. Nevertheless I have 2 things which helped me a lot over
the years: patience and "never-give-up".
The state:
If you ever tried to compile Android or CM by your own you know that you need a valid file device tree (in this case "device/lge/fx3q/")
which contains all the stuff which describes the hardware, the things to do, proprietary files you cannot compile because their sources
are kept by LG and so on. Building that from scratch is a pain in the a.. so you need to find another device whose hardware is as much
the same as yours. In this case this means LG Optimus F6 which has the same processor etc. The great thing is that there are people
out there who had build a working device tree for the F6 which means it should be possible to have the same for the F3Q!
The problem is that before I used the DT from hroark and fixed several build errors there and well now I use the very much more newer
one from dm47021 and this means: adapt everything again, fixing build errors again..
Even when there is such a valid base available from a device with same specs this does not means it would simply work when copying
it over.
I need to adapt nevertheless many things to get the sources at least compiled! and then the question is what works and what not.
This is where we are atm: Fixing compilation errors (fix 1 and you get 2 new) and then we will see..
For updates about the state scroll down to the "current state" topic.
Here what we achieved so far :
Root:
Saferoot: http://www.andromods.com/root-unlock/d520-one-click-rooted-tmobile-lg-optimus-f3q.html (Original: http://forum.xda-developers.com/showthread.php?t=2565758)
Recovery:
CWM (I cannot recommend that CWM version atm! Because it was build with not a full valid device tree and is missing features TWRP has included!): https://play.google.com/store/apps/details?id=com.pressy4pie.oudhs.manager
TWRP (highly recommended!): http://forum.xda-developers.com/showthread.php?t=2867339
Kernel:
sediKERNEL thread
ROM related:
AROMA installer for customized ROM installation
Stock based "hLe Storm ROM" by @joel.maxuel: [ROM][STOCK][JB 4.1.2] LG Optimus F3Q / D520
Guides & Discussions:
General talk: http://forum.xda-developers.com/showthread.php?t=2650840
Revert to STOCK again: http://forum.xda-developers.com/showpost.php?p=54667480&postcount=181
If you want to help let me know and I provide you the sources and whatever else needed.
Current state (as of 2015-04-30):
Spent time = about 244 hours... any "Thanks" click still HIGHLy motivating..
Done:
Lokifying (without that we were absolutely L-O-S-T!!! BIG thx @djrbliss) process is done automatically by my self created build-script (took me some time but was it worth)
Lokifying means: due to a hack by @djrbliss (click here and click at his THANKS button!!) we can trick the locked bootloader to boot whatever we want!
boot a modified compiled kernel with the stock ROM / or hLe stock ROM
custom 3.4.0 kernel with kexec(disabled atm), xattr, selinux support and much more based on the stock kernel sources (sediKERNEL thread)
the ability to boot unsigned ROM's provided by sediKERNEL
Fully (or mostly) working TWRP version where storages correctly mounted and backup/restore working fine (TWRP thread)
adapt hroark's device tree of the LG optimus F6 to the F3Q (superseeded by dm47021)
adapt DM47021 DT to F3Q and compiling CM KK systemimage/full otapackage (do not expect too much it simply means that I was able to fix all the thousands of compilation errors. which is GREAT but now the debuggin starts)
Rebasing EVERYTHING of the file device tree to the f6mft one by Dm47021. Reason: CM is now available for the F6 which is damn great because we use the same hardware in many cases. I currently rewriting everything from scratch, adding the correct proprietary files etc. Will take a while but hopefully then we get more in the right direction then before.
Build system:
Intel® Core™ i7-3632QM CPU @ 2.20GHz × 8 (Quadcore. Due Hyperthreading 8 threads/CPU's)
8 GB RAM
Ubuntu Server 14.04 - 64 bit, running in a highly optimized VM based on KVM
CM11 compilation time (full cleaned working directory)
real 56m47.417s - up to 80m
user 213m6.612s
sys 20m9.400s
Click to expand...
Click to collapse
Current progress:
Testing and debugging CM KK image
Building a custom kernel without stock initrd (Details on the process here: sediKERNEL thread)
To do:
must-have: Building a custom kernel without stock initrd
must-have: having a working device tree (depends on having an own initrd)
undecided: compiling AOSP JB
undecided: compiling CM JB
Stalled:
compiling CM11 kernel based on the F6 device tree (too many compilation failures)
compiling AOSP Jellybean including the LG sources works (but different issues with booting)
compiling AOSP KitKat including the LG sources fails (doesn't start at all because of several changed vars maybe. Didn't investigate that further cause I focus on kernel now)
compiling CM JellyBean fails with the adapted LG Optimus F6 device tree
MultiRom (discontinued as sediKERNEL can now do all I need):
Multirom TWRP = compiling OK but no screen shown?!
Multirom binary = compiling OK
Multirom trampoline = compiling OK if it works or not? Cannot test it until TWRP
Kexec Kernel = Porting to F3Q (hopefully) finished. compiling OK but it has problems with mounting the correct places (I think. Didnt investigate that further atm)
For testers: ALPHA/BETA testing download area
http://tinyurl.com/q7fwcf3
(password protected - PM me to get access)
For developers: my sources
My current device tree of the fx3q AOSP build can be found here: device_lge_fx3q_aosp (updated from time to time, PM me for an immediate commit)
My current device tree of the fx3q CM11 build can be found here: android_device_lge_fx3q_cm (updated from time to time, PM me for an immediate commit)
My build tools (useful tools I developed for me to speed up build/compile etc): buildtools (updated from time to time, PM me for an immediate commit)
.
XDA:DevDB Information
sediROM for LG Optimus F3Q / D520, ROM for the Android General
Contributors
xdajog, joel.maxuel
Source Code: https://github.com/xdajog/android_device_lge_fx3q_cm
ROM OS Version: 4.4.x KitKat
ROM Kernel: Linux 3.1.x
Based On: CyanogenMod
Version Information
Status: Testing
Created 2015-05-19
Last Updated 2015-05-20
Reserved
reserved 1
reserved 1
BUT IN THE MEANTIME YOU COULD USE THIS POST FOR ANOTHER THANKS CLICK
Questions & Answers
Frequently Asked Questions (FAQ)
(in no special order)
Question #1: Is CM or pure AOSP (or similar) for this device available now?
No. Not AFAIK. If you find some please tell me! But afaik I'm the only one working on that port so if you find someone or you want to help by yourself please send me a PM!!!
I currently trying to port CM to this device and as I'm doing that alone and the whole process is very complex this is nothing you can do in 2 weeks or so.
Question #2: When will be CM or pure AOSP or similar available?
When it is ready. Sorry but for this no timeline can be made. I will update the OP from time to time so come back often to check if there are any news.
Question #3: Why are you doing this?
Well .. the main reason is I want to have an absolutely fully localized (German) Android for my wife. Yes it's that simple. There are plenty of apps who can switch the language in many dialogs but all LG ones (like settings, power menu etc) are all still English.
The following may harm you but the F3Q is not a device I would buy for myself. I do not really like it's design, it has more weight and height than my current one (Samsung i927). Ok not all is that bad: What I really like is the physical keyboard which is much more better than from the i927..
Nevertheless I own a F3Q since a while because the community sponsored one to me which makes it possible for me to continue developing for this phone. Otherwise I had stopped that at the time where my wife used her F3Q productive.
The other reasons are:
There are problems here in Germany regarding the reception: 3G (or better) is not possible (but it should be from the point of technical specs).
Besides that the displayed information about the speed seems to be wrong in some cases but that is another story..
Last but not least the problem of overfilled storage makes me mad (well in fact makes my wife mad but well that makes me mad then). There is always to less even with tricks like moving apps etc.
So in short: I want to be able to fix problems who are annoying me/my wife.
Question #4: I have bought the phone and need to unlock it (service provider lock, network lock, ...) now. How to do that?
Well there are thousands of services out there who offers unlocking and no guarantees wherever you go.
Just 1 thing before you read on:
I'm not responsible if the mentioned site doesn't work for you! For me it had worked but there are no guarantees out there in the evil internet ocean...!
The following describes my personal experiences with those services only. No guarantees no responsibilities no whatever.
I have tested 2 of them:
The first one is a "free" service named www.unlockphone.me.
Free means first of all: WAIT. As an example my request have this as the waiting time:
1027 people are in queue in front of you. 2 weeks, 3days, 10hrs, 14min remaining until you will receive your CODE
The service itself is free but as I do not wanted to wait such long I donated to them 10$ to receive the code more quickly.
Result: Well I got a code but is was not working. I send them 4 mails - never received any answer. Bad luck. That is what I mentioned above. No guarantees. Well you could try it on your own - at least the free one without a donation - and see what happens for you. It's may worth the try.
.
The second one was fine. To be sure: I do not own the following service or get anything for pointing there but I have used them 2 times and at least the service provider lock could be unlocked both times successfully. The first time used they unlocked for $2 CAD (November 2014) and today (April 2015) they unlocked for $7,50 CAD.. Well it still seems to be a reasonable price (at least for me).
freemyblackberry.com
I filled in the following:
Brand = LG
Carrier/Country = USA / T-Mobile
Model = LG Optimus F3Q
When you have received your code (the one way or the other):
if you do not see the unlock screen already type in the following in the dialer: 2945#*520#
in the displayed menu choose the type of unlock you want to do (in my case it was service provider locked so I choosen that)
type in the received unlock code (for my case the freemyblackberry named it SPCK)
the phone may reboot now automatically
enjoy.
Question #5: What can I do to help?
I thought you would never ask! :victory:
The first one EVERYONE can do even when no programming skills is: Use the "Thanks" button. :good:
This is simple, easy and can be done very quickly. This will not speed up anything of course but it keeps me motivating because it shows me that you like what I do.
.
The second one EVERYONE can do is to participate in beta testing versions.
From time to time I release a new Kernel or TWRP version or some day a CM version. If you want to help you should do that by installing those beta versions (if one is available) and telling me about the good and bad of it.
This needs always a full backup and you may need to restore things afterwards but I'm here to assist you as far as I can.
.
The third one is not for everyone: helping to port.
That means going to the steps of CM porting guide and downloading the LGE sources and cloning my git repos. Get in contact with me before so you use an uptodate repo like the device tree etc.
This one would be the biggest effort but it is the most time consuming. At least for the full port.
If you "only" want to help partly like making TWRP better or helping with Kernel development it will be much much easier because those both are already fully working and you can start with fixing things instead of try&error!
That said Option 3 here is the only option if you really want to speed up the process!
.
The last one I can think of is donating, of course. I do not beg for money here - it is simply one of the available options.
One thing about this is important: a donation is much much more motivating then the mentioned "Thanks" click but you also will not speed up anything (Ok you would speed up things when the donation is about 10.000 € or more haha)!
But seriously: I do all that in my free time atm and that means I need to cut out time somewhere else from RL. This is not a problem for me and if you donate or not I will continue until I reached my personal goal.
That simply means that it will take much more time than doing it full time. The only other option would be developing in the normal work hours which means not earning money here for this time. So there needs to be a balance for if I would do that. That said there will be times where I can work on it and may times not for weeks. It depends.
Question #6: What is that "adb" thing?
adb stands for: Android Debug Bridge and can help a lot when it comes to work with your device. It is not for developers only but they use it a lot of course.
But a normal user can use this to exchange files without the need of mounting, backing up the device, reboot the device and use it as a very comfortable way of having a terminal emulator.
.
Normally adb itself is not available as a standalone application - it comes with the Android SDK which is very big and heavy if you want to use adb and/or fastboot (another great tool) only.
But we live in a great world with many people wanting to make things easy so here you go when you want/need only adb and fastboot:
download & install adb @lifehacker
Question #7: How can I find the LG Hidden Service Menu (STOCK)?
Normally you will not need this! But you may want to enable the USB DIAG mode if you're a developer or you simply want to make your phone unusable - so here we go:
As usual: Use on your own risk!
adb shell
su
am start -a android.intent.action.MAIN -n com.lge.hiddenmenu/com.lge.hiddenmenu.HiddenMenu
Click to expand...
Click to collapse
or simply by typing the following in the dialer:
3845#*520#
Click to expand...
Click to collapse
I know I am getting ahead of myself, but I know some devices have a /datadata partition (like the Samsung Infuse) when ported for a KitKat ROM.
When it comes time to design for KitKat, can this separate partition be eliminated? I know it is done for performance reasons, but with such limited userdata space as it is, another partition would come as a detriment. This has already proved a problem on the Infuse, and they have much more space to deal with (albeit ~600mb /datadata).
The alternative would be building Link2SD into the ROM, knowing that there will still be only a small collections of apps that can be installed.
Unfortunately, because of our limited userdata, we probably won't be able to develop past KitKat, at least end up with something usable. ART will prove to be too much of a pig for this device (storage wise).
Just my nickel's worth...
Bad news..
The Desire Z of my wife is completely broken now.
That means I cannot develop anymore..
- I ported and released the latest TWRP version to the F3Q
- I'm able to build AOSP JellyBean (not booting yet though),
- I compiled and released a custom AOSP Kernel (named sediKERNEL)
.... and a lot more..
I have everything I need to continue here in place...
I have the will and the ability to continue...
But no device anymore..
If someone has a F3Q to give away.. then I will continue but I'm not willing to buy a F3Q for developing only. So if you have an idea how we could continue let me know.
Otherwise that will end here for me unfortunately...
Hopefully not.
Yours
Xdajog.
Update:
Check out the following link if you want to help http://forum.xda-developers.com/showthread.php?t=2952919
-----
Sent from my SGH-I927 using XDA Android mobile app
xdajog said:
sediROM for LG Optimus F3Q - Custom ROM (codenames: fx3q, d520)
Recovery:
CWM (I cannot recommend that CWM version atm! Because it was build with not a full valid device tree and is missing features TWRP has included!): https://play.google.com/store/apps/details?id=com.pressy4pie.oudhs.manager
TWRP (highly recommended!): http://forum.xda-developers.com/showthread.php?t=2867339
Done:
Lokifying succesful and is done automatically by my build-script (took me some time but was it worth)
I am able to boot a modified compiled kernel with the stock ROM
Custom JB kernel with kexec support based on the stock sources (stock initrd)
Custom JB kernel with xattr support based on the stock sources (stock initrd)
Custom JB kernel with selinux support based on the stock sources (stock initrd)
Fully (or mostly) working TWRP version where storages correctly mounted and backup/restore working fine (TWRP thread)
Current progress:
Building a custom kernel without stock initrd (Details on the process here: sediKERNEL thread)
To do:
Building a custom kernel without stock initrd
having a working device tree (depends on having an own initrd)
compiling AOSP JB (depends on device tree)
compiling CM JB (depends on device tree)
compiling CM KK (depends on device tree)
Stalled:
compiling CM11 kernel based on the F6 device tree (too many compilation failures)
compiling AOSP Jellybean including the LG sources works (but different issues with booting)
compiling AOSP KitKat including the LG sources fails (doesn't start at all because of several changed vars maybe. Didn't investigate that further cause I focus on kernel now)
compiling CM JellyBean fails with the adapted LG Optimus F6 device tree
compiling CM KitKat fails with the adapted LG Optimus F6 device tree (mainly because some of the adaptions enforces the goldfish emulater?! Havent found out why! damn.)
MultiRom:
Multirom TWRP = compiling OK but no screen shown?!
Multirom binary = compiling OK
Multirom trampoline = compiling OK if it works or not? Cannot test it until TWRP
Kexec Kernel = Porting to F3Q (hopefully) finished. compiling OK but it has problems with mounting the correct places (I think. Didnt investigate that further atm)
Well one of the ideas is to have a working MultiRom installation which then would boot a custom ROM like CM with the kexec technique.
That way we could boot a "insecure" ROM with our locked boot loader.
That really seems to be possible because I can flash a TWRP image to the BOOT partition for example. That means TWRP would start up everytime.
If we could get MultiRom in place where the boot partition sits we COULD be able to boot everything we want.
Sources:
My current device tree of the fx3q AOSP build can be found here: device_lge_fx3q_aosp
.
Click to expand...
Click to collapse
Just so im clear what exactly is incomplete about the cwm that was compiled? you say its not a valid device tree (crazy because ive never heard those kind of terms even used before) what exactly makes it invalid to you?
what was the point of labeling this thread? gain some thanks by saying you spent 200+ hours on compiling the stock kernel source that has a guide to compile it in teh source zip? cuz it doesnt appear to make any progress on booting aosp even though you forked an oudhs device tree from another device. then you talk about needing hacks etc to get past the locked bootloader yet you dont seem to understand that there was an exploit tahts how there even was a cwm.
instead you are pulling in search results giving false hope to people looking for cm in hopes they donate to you so you can buy a phone when you obviously dont understand how it works.
Just so im clear what exactly is incomplete about the cwm that was compiled? you say its not a valid device tree (crazy because ive never heard those kind of terms even used before) what exactly makes it invalid to you?
Click to expand...
Click to collapse
Never said that CWM is incomplete but to be honest it was and it is missing features TWRP has, of course. It is a while ago that I took a look at that CWM version so I would need to check again maybe. The last time I tried it the mounting of /data/media (the internal usb storage) was not possible as backup, too. But that may have changed.
cuz it doesnt appear to make any progress on booting aosp even though you forked an oudhs device tree from another device
Click to expand...
Click to collapse
You may have more experience in porting to a complete new device so what is wrong with forking from a device which has more or less the same hardware specs ? That is the recommended way mentioned in the porting guides.
The reason why there was no progress since a while is:
I had no device anymore
Donation offer took some weeks
Then the new (used) device need to be shipped for about 2 weeks
Then I was on vacation for 2 and a half weeks
Then I needed to bring down the workload in RL to continue which took me another week
Then I started with development again since 1 day
Today
The main focus is to develop a fully working initial ram disk build from scratch instead of using the stock one. Then I will continue on porting AOSP as the ram disk is an essential part as you know.
then you talk about needing hacks etc to get past the locked bootloader yet you dont seem to understand that there was an exploit tahts how there even was a cwm.
Click to expand...
Click to collapse
Well it seems that you do not understand but that is not a problem I explain it for you:
The locked bootloader is a problem because normally we have not the possibility to install a custom kernel and/or custom ROMs. There is a hack available named "loki" which makes it possible to circumvent that fact. The only thing you need to do is to use the loki patch on the kernel/boot image.
The other thing around this is that the bootloader send kernel boot parameters which avoid starting a custom or modified ROM. This is one of the examples I fixed as you can see in the kernel thread and the reason why the modified stock ROM from @joel.maxuel is booting.
The multirom thingy (you may point to) was about having a special boot image (based on TWRP) named multiROM. With this it would be possible to power on the device and choose different ROMs you may have installed (that means different ROMs on 1 device in parallel). Great thing and at the time of writing one thing I tested. The main problem here is not using the Loki patch mentioned above but instead the /data/media internal storage which need to be mounted correctly and some other things as well. Nevertheless is multirom nothing I want to work on atm because the main part of work is to have CM/AOSP compiled and working.
what was the point of labeling this thread? gain some thanks by saying you spent 200+ hours on compiling the stock kernel source that has a guide to compile it in teh source zip?
Click to expand...
Click to collapse
I never said that I spent 200+ hours for compiling a stock kernel. Please read carefully before getting rude. This thread here is for developing on the F3Q ROM not the kernel. Kernel things are located in the Kernel thread. (Btw. compiling the stock kernel was never a problem or somehow time consuming there are other things like the initial ram disk and correct mounting paths etc which had taken some time but that is another story and as said not related to this thread.)
You may have heard about people porting ROMs to new devices? I try to do so and that is the reason why this thread exists. Not for some thanks clicks - some people define their self not with this you have to know. To be honest I do not get paid for everything here - which is ok. So a thanks click is appreciated, of course. Nothing more nothing less.
btw: I believe that a user can decide on their own if they want to click thanks when they want right? TWRP and Kernel are both things ready to use and the ROM porting is a WIP which a user can or can not say thanks for. That should be decided by the user IMO.
instead you are pulling in search results giving false hope to people looking for cm in hopes they donate to you so you can buy a phone when you obviously dont understand how it works.
Click to expand...
Click to collapse
To be honest it seems obvious that you do not understand. That is not a problem because I can explain it to you again.
As stated before and in the OP I try to port AOSP and/or CM to this device. Well it is true that I'm still learning and will learning forever but that is the truth for everyone (maybe not for you, ok ).
The donation part is something which was an offer to continue the work because I do not owned the device anymore but I was and I am willing to continue. As stated in the the donation thread I do not use the device for anything other then development because I do not really like the phone itself. But my wife uses the phone and she needs CM / AOSP to be able to be fully in German language and having a smoother Android experience than with the stock ROM.
If you know everything better than me then why you do not share your knowledge so we can speed up the process of porting? Would be more efficient than writing
Check out the brand new FAQ: :good:
Frequently Asked Questions
.
.
.
.
......and another thing I want to mention today!
The following has been done 10 minutes ago:
adapt DM47021 DT (device tree) to F3Q and compiling CM KK systemimage/full otapackage
This is 1 step further into the right direction but do not expect too much it simply means that I was able to fix all the thousands of compilation errors for the new adapted device tree.
Which is GREAT, of course but now the debugging starts and recompiling etc ..
The first boot was a mess I believe it has to do with a wrong used gcc version but I need to investigate that further in the next days/hours whatever..
just wanted to keep you updated
greetings from the front
xdajog
EDIT:
if someone interesting in This is the time duration of a full cleaned compilation (real = the actual duration):
Build system:
Intel® Core™ i7-3632QM CPU @ 2.20GHz × 8 (Quadcore. Due Hyperthreading 8 threads/CPU's)
8 GB RAM
Ubuntu Server 14.04 - 64 bit, running in a highly optimized VM based on KVM
CM11 compilation time (full cleaned working directory)
real 56m47.417s
user 213m6.612s
sys 20m9.400s
Click to expand...
Click to collapse
.
Thanks for the update. It's amazing how difficult it can be just to get all the variables of a dev environment to agree. Certainly getting somewhere.
xdajog said:
.
.
.
......and another thing I want to mention today!
The following has been done 10 minutes ago:
adapt DM47021 DT (device tree) to F3Q and compiling CM KK systemimage/full otapackage
This is 1 step further into the right direction but do not expect too much it simply means that I was able to fix all the thousands of compilation errors for the new adapted device tree.
Which is GREAT, of course but now the debugging starts and recompiling etc ..
The first boot was a mess I believe it has to do with a wrong used gcc version but I need to investigate that further in the next days/hours whatever..
just wanted to keep you updated
greetings from the front
xdajog
EDIT:
if someone interesting in This is the time duration of a full cleaned compilation (real = the actual duration):
.
Click to expand...
Click to collapse
My hat is tipped to you xdajog. I'm looking for a qwerty slider replacement phone for my wife as her current one is reaching 5 years old soon.
Your efforts have tipped me towards this phone as a working ASOP or CM would be necessary as I do not think this phone will be updated by anyone else. I'm always leery of putting a family member on anything past a feature phone unless I can be confident of keeping it patched. Since there are no flagship phones with qwerty keyboards the efforts of devs like you are all the rest of us have.
@xdajog than you truly for your continued support on this device, i am a late adopter to this phone but is there any hope for getting android 5 on it?
vordhosbn said:
@xdajog than you truly for your continued support on this device, i am a late adopter to this phone but is there any hope for getting android 5 on it?
Click to expand...
Click to collapse
Well.. lets talk about that when we have KK ready
-----
Sent from my SGH-I927 using XDA Android mobile app
already has a ready rom CyanogenMod with kk ask you to take a look, you just need to fix the camera, can test or basaer it?
link: http://androidforums.com/threads/t-mobile-metropcs-beta-4-4-4-cyanogenmod-11-unofficial.923379/
GhostDwl said:
already has a ready rom CyanogenMod with kk ask you to take a look, you just need to fix the camera, can test or basaer it?
link: http://androidforums.com/threads/t-mobile-metropcs-beta-4-4-4-cyanogenmod-11-unofficial.923379/
Click to expand...
Click to collapse
Thx but this is for the F3 not F3Q.
-----
Sent from my SGH-I927 using XDA Android mobile app
xdajog said:
Thx but this is for the F3 not F3Q.
-----
Sent from my SGH-I927 using XDA Android mobile app
Click to expand...
Click to collapse
yes, but the lg optimus f3 and f3q have the same specifications and the same kernel, the difference among them is where it was manufactured and the f3q comes with a keyboard and different touch buttons, take a look at the comparison below:
http://www.gsmarena.com/compare.php3?idPhone1=5998&idPhone2=5509&
GhostDwl said:
yes, but the lg optimus f3 and f3q have the same specifications and the same kernel, the difference among them is where it was manufactured and the f3q comes with a keyboard and different touch buttons, take a look at the comparison below:
http://www.gsmarena.com/compare.php3?idPhone1=5998&idPhone2=5509&
Click to expand...
Click to collapse
Of course. Thats the reason why I use the F3 device tree as base for development. But there are many differences in compiling. If you want you can try would be nice to have another dev here.
-----
Sent from my SGH-I927 using XDA Android mobile app
xdajog said:
Of course. Thats the reason why I use the F3 device tree as base for development. But there are many differences in compiling. If you want you can try would be nice to have another dev here.
-----
Sent from my SGH-I927 using XDA Android mobile app
Click to expand...
Click to collapse
Yeah, i will try, give me the a one time
So I've got an Ubuntu 14.04 LTS VM set up on my machine and I downloaded the Android source tree (AOSP) and configured the build environment per the instructions. I ran a build and everything came out okay (but slow ). I have some additional RAM on order for my machine so I can dedicate more resources to the VM.
I have an extra F3Q I can use for testing and I have a pre-paid SIM on order so that I can actually use my test device in real-world scenarios.
I'm ready to start digging in here. :good:
Edit: RAM arrived today, have 32GB now which means I can dedicate a full 16GB to the Ubuntu build environment!