Hello everybody,
I'm an Android app developer for some time, but from some time ago until now I have been tweaking the framework, trying to enhance, customize and maybe correcting bugs, so I'm working on the emulator, but I would like to test it on my device (Atrix).
Since I'm a newbie on this matters and I found plenty of threads and sites/blogs, I got a little confused on what are the steps to be made, specially because I would like to build from source as to have my modifications flashed. I'm aware of the hardware implications for my specific device, so I decided to use a reported working rom source code for my device, but i'm a little lost. I thoutgh to be using Cyanogem but I don't know the specifics.
Since I already have the source code AOSP, I think It would be painful to make it work on my device (drivers, kernel, so on...).
I just want (for now) see my framework modifications on device. Anyone could point me to the right direction?
I thought of using this firmware here.
Thank you all.
Related
Hey,
I've just recently started Android development and I'm keen to learn as much as I can about the whole system, not just about SDK app development. As such I'm interested in attempting to build my own ROM completely from scratch. I've downloaded the Android Source (and Galaxy S source) and would like to try my luck.
First I've been mucking around creating custom ROMs with the emulator, moving apps from the Galaxy S ROM I dumped from my device onto the stock emulator ROM and testing things out.
Anyway I'm at the point where I'm wondering if it's possible to flash the stock emulator ROM onto a Galaxy S phone? I know the Galaxy S source includes a lot of device specific stuff however I'm not interested in getting the camera, bluetooth or anything hardware specific working just yet.
If I flash a ROM with a stock kernel, drivers etc. onto my phone will it work? Has anyone done this? Will it just brick my phone?
Any help would be appreciated.
Cheers,
Ben
Anyone?
Also, I know people have flashed AOSP ROMs on other phones, does anyone know if they required modifications or whether they are in fact stock ROMs?
nje, can't work. why?
1) different bootloaders
2) different partition layout
3) different (kernel)drivers
4) different vendor setup
etc.
it is possible to flash the emulator image onto a dev device (dream/sapphire) but even then a lot will not work properly!
if you want to learn about the android architecture you should start with building a kernel (there is already a thread about that here) and playing around with stuff like the (file)system and utilities...
Thanks jodue.
Yeah my long term intentions were definitely to build the Galaxy S kernel and any necessary libraries and drivers specifically necessary for the apps I decide to include in a custom ROM.
I was hoping that I'd be able to start out by tweaking a minimalistic/generic ROM (the AOSP default ROM) on my Galaxy S. However, as you've pointed out I'll have to start out with the kernel and all the device specific stuff first.
I've got quite a bit of information on building an Android/linux kernel both from the thread you mentioned and also the official AOSP page. However information on putting together a complete working ROM seems a bit sparse. Does anyone know where I can find some information on the topic?
I'm also curious to learn about the list of things jodue mentioned i.e. Android bootloaders, partition layouts and drivers (generic and Galaxy S specific). I assume detailed information about particular devices and drivers probably isn't available but if anyone even knows where I can learn detailed information about default AOSP ROMs I'd be extremely interested know.
I read couples of threads and realize that if a CM mod is wanted, MS2 must have its bootloader unlock.
Since most work is done in /system partition, why do a bootloader modify is needed?
According to the update.zip, we can modify /system partition already, so why do we need bootloader unlock?
CyanogenMod needs its own kernel.
I guess that, since cyanogen is based on gingerbread now,
it runs with a more up-to-date kernel than the milestone's.
The locked bootloader and the efuse thing prevents updating the kernel.
It's possible that someone, using Cyanogen source, makes a backport running on our kernel, but I think it's a huge work...
However, the clever guys from freemymoto.com have created a hack that is capable of launching an other kernel after the legit one starts.
If salvation comes (Cyanogen alleluia ), it will certainly come from this project.
Actually, the hack works on DroidX, and Droid2. So it is 99.9% sure that with some work, it may run on milestone 2 as well.
So, to get Cyanogen work on MM2, we need :
- A very good developer, with android (of course !), linux kernel and kinit knowledge, able to port freemymoto's hack, and Cyanogen
- Hardware drivers for the Milestone (bluetooth, lan, gsm, 3g, touchscreen...)
If we find the golden dev, I personnally think that CyanogenMod could be out for milestone2 sooner than what most people think...
momus87 said:
CyanogenMod needs its own kernel.
I guess that, since cyanogen is based on gingerbread now,
it runs with a more up-to-date kernel than the milestone's.
The locked bootloader and the efuse thing prevents updating the kernel.
It's possible that someone, using Cyanogen source, makes a backport running on our kernel, but I think it's a huge work...
However, the clever guys from freemymoto.com have created a hack that is capable of launching an other kernel after the legit one starts.
If salvation comes (Cyanogen alleluia ), it will certainly come from this project.
Actually, the hack works on DroidX, and Droid2. So it is 99.9% sure that with some work, it may run on milestone 2 as well.
So, to get Cyanogen work on MM2, we need :
- A very good developer, with android (of course !), linux kernel and kinit knowledge, able to port freemymoto's hack, and Cyanogen
- Hardware drivers for the Milestone (bluetooth, lan, gsm, 3g, touchscreen...)
If we find the golden dev, I personnally think that CyanogenMod could be out for milestone2 sooner than what most people think...
Click to expand...
Click to collapse
I LOVE YOUR REPLY!
Well, this is the first reply to me in this forum.Ya...nobody reply me before...so bad..
Milestone has also a locked bootloader, but a CM7 port running on it. That is what makes me want to do something on my MS2.
I'm a C++ programmer, so I learn everything about this these days.
Thank you, really.
And I think I'd read all the freemymoto.com site RIGHT NOW~~
Well, if you think you can be the golden dev, you just made my day...
If you try this, I (and almost everybody here) will at least help providing the hardware drivers.
But the first step is to make the hack work on MM2...
Edit : For the milestone1, the bootloader security has been compromised using a leaked unofficial rom build,
which lead to custom kernels, without needing a hack like freemymoto's.
In fact, freemymoto's hack is based on a milestone1 project, which was abandoned after the rom leak.
It circumvents both bootloader lock and efuse by starting a second kernel after the first one.
(What I couldn't figure out is what happens of the first one... Still in memory? Still using some ressources?)
I read the site yesterday, however sadly, I don't have any experience about writing drivers of cell phone.
So I just sent a e-mail to them to ask if I can provide any help and what to do.
Hope I can help. I'll try my best.
For about the second kernel...I guess I have to read source to know what happened to them...
Anyway, thank you for your reply. At least I get a way to help^^
I didn't mean that we will have to write the drivers from scratch. But we will have to find them.
Hopefully, most of them are open-source. Wifi/bluetooth per example, is handled by a wl1271 chip. Drivers are available on texas instruments website...
You should get in touch with Pizzaroll, who is also trying to make the hack work on milestone2
It's really good news that there maybe a hack bootloader, i like my mm2 but it is really a pity that no much ROM.
liuyanghejerry...
Polish team try to broke bootloader with Boinc (many computers calculate 1 thing), maybe You and Yours friends can join to project?
In China lives maaaaany peoples, this can be speed up calculations
I don't think that distributed computing is the solution...
Even if the boinc project lets us find the signing key, we will have to do the same for the efuse thing.
The freemymoto's hack is a solution to circumvent both of these protections, and doesn't need any computing.
We only need someone to modify some parts of the code to make it work on Milestone2.
Tomszyn said:
liuyanghejerry...
Polish team try to broke bootloader with Boinc (many computers calculate 1 thing), maybe You and Yours friends can join to project?
In China lives maaaaany peoples, this can be speed up calculations
Click to expand...
Click to collapse
Currently I'm studying kexec method now, thanks to PizzaRoll and momus87's help^^
Well, in fact, I like to program and burn my brain. However, the Boinc method seems not really interesting...
Well Boinc is the best solution if you want to use bruteforce.
But even with a whole army of core i7, bruteforcing a 1024bits key is unthinkable actually...
Is this eFuse thing harder to break than the one used in iPhone? If it is then Mr Jobs should adopt a similar approach.
Hi, I'm kind new in creating stuff for my phones but I want to give a try and bring CM/AOSP (I know that they are totally different things) to our phones.
I've done a research and all that I found was that it wasn't possible because we haven't the kernel source. But now that it is available in the Samsumg Open Source page could we make that possible?
Thanks a lot!!
If u really did the research, u should know someone had made this before but unable to call success....
http://forum.xda-developers.com/s7-edge/development/cyanogenmod-13-galaxy-s7-edge-t3414697
pigmich said:
If u really did the research, u should know someone had made this before but unable to call success....
http://forum.xda-developers.com/s7-edge/development/cyanogenmod-13-galaxy-s7-edge-t3414697
Click to expand...
Click to collapse
Yes, i did read that, but everything i found was this:
In the case of the S7/S7E because the SOC is either closed source (Exynos) or has a locked bootloader (Qualcomm). The former makes it very difficult to produce a Rom that approaches anything near being stable, the latter makes it literally impossible until the bootloader is unlocked, which is unlikely to happen.
Click to expand...
Click to collapse
But I can't understand why if we already got the kernel source. Can't we just modify the kernel to make a kind of "mask" that allows the ROM to use the hardware correctly?
Maybe I'm asking something really stupid, and if thats the case I'm sorry, but I really want to know why we fail in this and see if I can find a workaround
Start here: http://forum.xda-developers.com/s7-edge/development/cyanogenmod-13-galaxy-s7-edge-t3414697
Get the source, make a local_manifest.xml file, get the rest of the source, edit the source code and build a rom .
But before You try, I can already tell You that it will be extremely hard to do. I've got CM to compile (yeah, compiling is actually a HUGE step) on other devices and then eventually to boot. But it took couple of days of code fixing (which I at this point somehow understand but it's still quite a magic for me).
Couple of days ago I tried building CM 13 and 14 for S7 Edge and after a whole day of fixing code and stuff I gave up. The worst issues are "shared library, excludes, includes" thingys.
I am having trouble finding decent instructions for getting the sources for a standard build for Motorola devices, specifically for athene.
I have built for Freescale products before and it usually involves some combination of repo init and patches, but that doesn't seem to be the case for Motorola.
I know the kernel and other sources are available on Github (https://github.com/MotorolaMobilityLL), but I don't see a manifest repository there. Nor can I find a device repo.
The closest thing to instructions I found was this readme (https://github.com/MotorolaMobilityLLC/readme/blob/master/MMI-MPJ24.139-23.4.txt) (xda wont let me post links, I'm too new a user here).
I am starting to suspect that Motorola is being as lazy as possible and only fulfilling the bare minimum of open source obligations, and thus doesn't provide a device repo, or manifest repo, etc.
Is that the case? I am new to running builds for standard phone manufacturers - are ROM developers around here forced to do legwork filling in what the manufacturers refuse to publish?
Or am I just missing the rest of the instructions from somewhere?
I have the same issue, did you ever manage to successfully complete a build? Thanks.
TheGreatCabbage said:
I have the same issue, did you ever manage to successfully complete a build? Thanks.
Click to expand...
Click to collapse
Nope, my impression of the situation remains the same, though I have not re-investigated. I would like if someone more knowledgeable confirmed though.
It is a shame, as I would really like a "known good" base to work off of and put in root support and remove unnecessary softwares in a legitimate way.
You *can* build LineageOS for athene: (https://wiki.lineageos.org/devices/athene/build)
I ran LineageOS for several months, but eventually switched back to stock. Has some strange issues in regards to texting (seems to only work when making a call).
Thanks for your reply. I've just managed to build Lineage OS for my device, and it seems to work ok.
I was previously using Resurrection Remix OS (which I didn't build, just downloaded a zip) and it worked very well, so if I have any issues with Lineage then I'll try to restore my TWRP backup of RR.
I wish I could use the AOSP codebase directly, though...
Hello Guys,
Today I woke up with a new idea; I want to port LineageOS to the LG V20 version H990DS. I was tinkering with this idea for about one year, but never actually wanted to make the step. Until today. I used LineageOS and CyanogenMod since 2012.
The reason why I want to create the first port is because I have the time at the moment, so why not help the community? I do have four years of programming skills C/C++. Run Linux as daily driver etc... Do know how to use git, linux, autotools etc... The tricky part however is: I never compiled a Lineage OS rom from source and I don't think the compiling would be a problem, but the LG V20 H990DS isn't officially supported. My question is: Where do I start to program? How can I compile and build a working Lineage OS for the LG H990DS. Are there any good website I can read from?
I saw this:
https://www.youtube.com/watch?v=MGI3NSJFtKA&feature=youtu.be
https://forum.xda-developers.com/chef-central/android/how-to-build-lineageos-14-1-t3551484
http://www.lineageosrom.com/2017/01/how-to-build-lineageos-rom-for-any.html
https://www.reddit.com/r/LineageOS/comments/6iie9l/how_to_compile_lineage_os_141_for_unsupported/
https://www.reddit.com/r/LineageOS/comments/684qkp/help_noob_compile_lineageos/
So to make it easy: I want to program a working LineageOS for the LG H990DS, but don't have any understanding about where to start. I do have four years of programming skills, not so much, but know C and C++ well.
Thanks in advance,
Maurice
English isn't my native language, sorry for grammars.
someone help this man up.
Did you check the existing LineageOS thread?
https://forum.xda-developers.com/v20/development/dev-cm14-t3509953/post74550386#post74550386
If you want to help, I'd suggest asking him if there's anything you can do.
Thank you for your response. I do watch that thread, because I want lineageOS for the h990ds device. The problem however is that I don't want to jump right into the code. I want to know what I am doing with each line of code. At the moment I think I have to change some things in the kernel so that it can boot, but I don't know if that's true. And there is so many documentation about how to compile lineageOS, which I don't want to do. I want to program and compile lineageOS. Every tutorial skips the program parts and just compiles lineageOS.
So maybe a good programmer can give my some advice? Where to start and where can I find some documentation?
Best regards,
Maurice
Welcome!
First off, I recommend using Ubuntu 16.04 (I personally use 16.10 however). Be sure to follow the guide you linked from chef central carefully.
For the dual SIM variant, I don't believe any current source exists. Although with the similar hardware and if you have decent skills, you could get it going.
Take a look at the existing v20 trees:
V20-common: https://github.com/LineageOS/android_device_lge_v20-common
Msm8996-common: https://github.com/LineageOS/android_device_lge_msm8996-common
H918 (as a reference): https://github.com/LineageOS/android_device_lge_h918
Kernel: https://github.com/LineageOS/android_kernel_lge_msm8996
Vendor: https://github.com/TheMuppets/proprietary_vendor_lge
Those are the basics to check out. Now I did see someone converted the H918 tree to H990. Here's a link to that for reference: https://github.com/android-device-lge-h990/android_device_lge_h990
You will definitely need to make a custom defconfig in kernel sources. The device tree changes should be rather easy. You'll need to pull vendor files from stock and import the drivers and dts files from stock kernel source. If/when you get a working kernel and device trees there's a 99% chance you will need to Port other drivers and vendor files as stock files don't play nice in aosp. If I were you, I'd start looking through commit history on GitHub to see how the other devices we're brought up. That is how I learned everything.
Also, git will be your best friend when bringing up large projects, like kernel. Learn git, get comfortable with it. Cherry-picking and merging is what keeps us going.
Best of luck!
I suppose you could say there are dueling work-in-progress H990 trees since the other one is: https://github.com/x86cpu/android_device_lge_h990
The one you pointed to is mine. I was hoping for some collaboration with @x86cpu on there (in theory @x86cpu also has permissions to modify that repository, assuming I've set things up correctly). While the initial steps have been done, it is not finished! Some issues are left for getting LineageOS operational on H990 devices.
Of crucial note the modem fix in its current form is unacceptable to LineageOS (despite working). I've got two variants of one solution almost ready, but they're yet ready.
Thank you for your answer and I will look into it. I sure hope that I can help you some day, but first I want to understand the repository. After that I will help you both to code.
Really thank you and I will do my best to catch up with you.
As for the Ubuntu version. I personally use arch Linux (with plasma), because I like it more than Ubuntu. I don't think that's a problem and else I will compile the Ubuntu programs to arch. And I know my way around got. Use it for about 4 years now and now what merging/branching rebasing etc means and know how to use it.
@emdroidle I could help