If the vendor (in this case Vodafone) don't provide sources, does it mean I'm unable to create a ROM for it?
Put it another way, is it possible to create a ROM using only a running device?
The Original Leppa said:
If the vendor (in this case Vodafone) don't provide sources, does it mean I'm unable to create a ROM for it?
Put it another way, is it possible to create a ROM using only a running device?
Click to expand...
Click to collapse
Yes, if you want to build a "true" custom ROM you will need the stock source code for your device.
If you can root, you can use adb or Terminal Emulator to do a "ROM dump", or dump just a copy of your system.img, then modify that system.img and then use adb to push the modified system.img to your device. It will be considered a modified stock ROM, it won't be a "custom" ROM but you can modify it quite heavily with things like Xposed, Gravity Box, and a few other good mods and themes.
Or you can get a copy of your stock firmware(not the same as source code), then find other devices with the exact same hardware that have a better version of Android than yours, then use your stock firmware to port the better version to work on your device.
Building a true custom ROM is "possible" without stock source code but it would require VERY extensive programming and developer knowledge to do it because you'd have to do every bit of it from scratch with no resources to work with.
Sent from my SM-S903VL using Tapatalk
So, I'm screwed, in terms of porting?
The Original Leppa said:
So, I'm screwed, in terms of porting?
Click to expand...
Click to collapse
It would help if you had stock firmware for your model then you can find another device with the same hardware architecture(chipset), if they are similar enough you can port it.
It's possible to port between devices that aren't exactly the same chipset but that also requires extensive developer knowledge.
If you aren't experienced then you're pretty much out of luck.
If you want to customize android devices then you need to get less obscure devices. Next time, research the device first to see if there is a known rooting method for it and whether there is custom development available for it before you get it. Or if you get a device that just came out, get a device that you are certain that developers will support, typically a flagship/popular device.
The cheap low-mid range devices usually don't get support from developers and the ones that do get support are not supported by real develoers, they are supported by members that took it on themselves to learn how to build android just so they can update their device but their work usually isn't exactly right due to their lack of experience.
Sent from my SM-S903VL using Tapatalk
Related
Hello, I'm new to all this Android stuff (I don't even have a phone yet, but its on it way)
I have been reading up on custom ROM creation but there are some things I don't quite understand.
Let's say I have a phone in Android 2.3. I want to create an Android 4.0 ROM to put on the phone.
Now... to compile Android 4.0 I need the drivers for my phone (which I doubt I will ever have access too since its only a cheap Android with a MediaTek CPU)
So I have a 2.3 ROM that contains all the compiled drivers and the Android 4.0 source code.
Is it possible to compile 4.0 and replace the zImage (if I'm correct) with the 2.3 zImage. From what I have read, that's where all the drivers are stored.
I guess its not that simple since I also think the zImage contains the OS. If so, is it then possible to extract the zImage and replace the invalid driver files in 4.0 with the correct drivers from 2.3?
Also, I think my phone will arrive with an annoying UI, is it possible to just get any 2.3 ROM (that doesn't have an annoying UI and shares the same CPU as my phone) and replace the zImage in that with my phones 2.3 zImage?
Sorry, if my questions are stupid but this is all new to me. I've tryed to read up on this but nothing is straight to the point.
Thanks
Anyone there?
try out some roms first. see what you like and dont like. it'll probably give you a better idea for how you would make your own rom.
I don't think you could just port an entire zimage to ICs and say it will work (it might not even compile i think). It won't work. You could probably take some drivers' code (screen, speaker, etc), modify them a bit so it compiles, and test to so if it works. You more than likely have to modify the ICS code also so it works. And the zimage is just the kernel no? And the kernel really only has to do with low level system processes, drivers, etc. I think UI's and such are more fitted in frameworks and such.
Personally if it was so easy to port ICS by simply replacing the zimage or file with another, ICS would have been ported to many devices, fully working, by now.
Kailkti said:
I don't think you could just port an entire zimage to ICs and say it will work (it might not even compile i think). It won't work. You could probably take some drivers' code (screen, speaker, etc), modify them a bit so it compiles, and test to so if it works. You more than likely have to modify the ICS code also so it works. And the zimage is just the kernel no? And the kernel really only has to do with low level system processes, drivers, etc. I think UI's and such are more fitted in frameworks and such.
Personally if it was so easy to port ICS by simply replacing the zimage or file with another, ICS would have been ported to many devices, fully working, by now.
Click to expand...
Click to collapse
Yeh, but my problem is I don't have the drivers for the phone. I just have the stock ROM that come with it.
Is not that simple. I am 99% sure that you can't do that.
The phone I'm getting has a horrible theme on it. Its running Android 2.3
I have the ROM for a very similar phone (also using Android 2.3), uses the exact same CPU so it should be compiled using the correct platform.
Is it possible to use that phones ROM but replace it with my phones Kernel and .prop (so it has all my phones drivers and settings etc...)?
the hard work required in making a custom rom
I think you can take from the stock rom and compared with existing custom rom
but some sources are not shared freely as an example Tegra
CMIIW
I will mess about with the ROM when I get my phone. Hopefully I wont brick it...
I too am fairly new to android. I spent a couple weeks reading and watching TONS of youtube videos on how to ROOT and Unlock my bootloader. My best advice from one n00b to another would be to do the same. In particular...research how to do it on YOUR phone. Also, Roms are device specific. I recommend you finding the forum here on XDA for your phone and read up on whatever ROMS are available here. This might not be the ONLY place to find ROMS, but this place simply rocks! Once you get your device rooted and if necessary, your bootloader unlocked...you can easily try out any ROM without much fear. Just make a good backup...make sure you also have a factory recovery image too...just in case. For backups...if you install and use Clockwork Mod (CWM) you can use the nandroid backup it offers. I bought Titanium backup from the market and used it to do a full backup before I started...it backs up to dropbox even, which was a nice feature for me. Extra safety so incase I hosed my external SD card which had my backups...I could easily retrieve a backup ANY place that had internet access. Lastly...get ready to have some FUN! Flashing ROMs is VERY addictive!! :-D
Ok, Thanks. I will see what I can do then.
https://github.com/JackpotClavin/Android-Blob-Utility
The purpose of this program is to help AOSP-based ROM developers quickly and easily find out which proprietary blobs need to be copied into the ROM's build, or built using source. How the program works is you do a /system dump into a folder on a Linux computer. Then you make the program using the 'make' command; then you can run it.
First off, the program will ask you what the sdk version of the /system dump you pulled happens to be. For example, if your /system dump is Android 4.3, and intend port a 4.3-based ROM, then enter 18 and press enter.
When it prompts you for location of the /system dump you pulled, if the location of the build.prop of the /system dump is under:
Code:
/home/user/backup/dump/system/build.prop
then just use:
Code:
/home/user/backup/dump/system
The program will now ask you for your device's manufacturer's name, and the device's name. For my Verizon LG G2, I entered "lge" and "vs980" respectively.
The utility then will ask you how many files you wish to run through the program. In the case of my LG G2, the KitKat build requires two main proprietary camera-related libraries to run (/system/bin/mm-qcamera-daemon and
/system/lib/hw/camera.msm8974.so).
So I typed in 2 and pressed enter (because I'm running two proprietary files through the program)
Then simply typed in:
Code:
/home/user/backup/dump/system/bin/mm-qcamera-daemon
and pressed enter and it printed out *every* file needed to get /system/bin/mm-qcamera-daemon running (the file might be proprietary, or it can be built from source).
Then it asked for the final proprietary file, so I simply typed in:
Code:
/home/user/backup/dump/system/lib/hw/camera.msm8974.so
and pressed enter and it printed out *every* file needed to get /system/lib/hw/camera.msm8974.so running (the file might be proprietary, or it can be built from source).
An example usage of this program can be found here: https://raw.githubusercontent.com/JackpotClavin/Android-Blob-Utility/master/Example_Usage.txt
That's 106 proprietary blobs done in a flash!
The beauty of this program is that it's recursive, so if proprietary file 'A' needs proprietary file 'B' to run, but proprietary file 'B' needs proprietary file 'C' to run, which in turn needs 'D' to run, then simply entering proprietary file A to run will print out all A, B, C, and D nicely formatted so that you can simply copy the output and place it in a file under vendor/manufacturer/codename/codename-vendor-blobs.mk file in your AOSP build source tree's root.
Another great thing about this program is that it doesn't just catch the libraries needed to satisfy the linker, but rather, it will also print out those libraries that are called within the actual code of the library itself, like:
Code:
dlopen("libfoo.so", RTLD_NOW);
libfoo.so is not marked as a shared library, so the linker won't complain that libfoo.so is missing, and there might be no sign that libfoo.so missing and needed, but when it's time for the daemon or library to run, it won't show any sign that something is wrong, until you see that it doesn't work. This program will catch and display that libfoo.so is needed.
So basically:
1. Extract /system dump image
2. Tell program the SDK version of your /system dump
3. Tell program the location of your /system dump
4. Tell the program your device's manufacturer's name
5. Tell the program your device's codename
6. Tell program how many files you wish to run through the utility
7. Tell program the location of the file(s) you wish to run through the program.
8. Copy the output of the utility to a text file under vendor/manufacturer/codename/codename-vendor-blobs.mk
reserve
Hi,
I'm a noob and don't worry about my silly question.
I'm trying to build my first cm-rom and tested your tool. Thanks a lot for your work, it worked for me.
I'm a little bit curios about your point 5. Where can I find all the files I need for my own source-tree/device?
It would be nice if you can give me a hint.
Thanks a lot and greetings from germany
Greetings from the US
Do you mean the device folder the ROM? You can look at similar devices to your device and see what they did and make the changes to build Android.
This is the device folder for the Nexus 5 -> https://android.googlesource.com/device/lge/hammerhead
This tool is under-recognized. I think it's a really great way to find which blobs are dependencies!
Codename13 said:
This tool is under-recognized. I think it's a really great way to find which blobs are dependencies!
Click to expand...
Click to collapse
Thanks! Are you developing a ROM? Let me know if it helps!
Sent from my LG-VS980 using XDA Free mobile app
Could this be updated to Lolipop?
2GigayteSD said:
Could this be updated to Lolipop?
Click to expand...
Click to collapse
What do you mean? I added support for SDK version 20 if that's what you're asking.
Sent from my LG-VS980 using XDA Free mobile app
Does that mean I can port AOSP to any device just by getting all the necessary blobs? I'm not sure but I'm trying to port Lollipop to my device but I don't really have a clue how to do it/what's needed to do it. Will this be useful for me? Thanks.
cikoleko said:
Does that mean I can port AOSP to any device just by getting all the necessary blobs? I'm not sure but I'm trying to port Lollipop to my device but I don't really have a clue how to do it/what's needed to do it. Will this be useful for me? Thanks.
Click to expand...
Click to collapse
It helps with making ROMs for devices that don't have support (either the model is brand new or the device never gained AOSP ROM support for whatever reason)
Basically, in the early stages of porting ROMs, certain things won't work (graphics, camera, radio) and this is mostly due to not having the correct proprietary files needed for the OS to interact with the hardware. The proprietary files have dependencies (they rely on other libraries, which in turn may rely on other libraries, and so on and so forth until all proprietary libraries are satisfied).
In the case of my LG G2, there were a total of 92 proprietary files that needed to be pushed to the device in order to get just camera working. Instead of pushing one library at a time and getting a logcat or strace dump of what the daemons are calling or depend on, I wrote this program to recursively search for all proprietary libraries needed to satisfy a proprietary library (or in the case of the camera for my G2, there were two proprietary libraries needed that required those said 90 other proprietary blobs).
So rather than pushing libraries, (then gathering logs and stracing) and hoping that the one you just pushed is the one that will get your camera, radio, etc to work, you run your known proprietary daemons or libraries through this program and it will print out the necessary libraries to get it working, in a fraction of a second
Can you go through the actual "porting" process because from what I understand you have done it? If I'm correct to port a ROM you need to have working ROM from other device? If yes, does that device have to be same manufacturer? Lets say I do have working AOSPA kitkat for my device so I need to get AOSPA lollipop and exchange the certain files and then I'll able to run it? Once again if it's like that then I use your tool and get necessary blobs? I don't have a clue about this stuff, I only build ROMs but now time has come that my device is unsupported so can you give me some tips, thanks.
This is interesting. Going to have to try this out tomorrow.
cikoleko said:
Can you go through the actual "porting" process because from what I understand you have done it? If I'm correct to port a ROM you need to have working ROM from other device? If yes, does that device have to be same manufacturer? Lets say I do have working AOSPA kitkat for my device so I need to get AOSPA lollipop and exchange the certain files and then I'll able to run it? Once again if it's like that then I use your tool and get necessary blobs? I don't have a clue about this stuff, I only build ROMs but now time has come that my device is unsupported so can you give me some tips, thanks.
Click to expand...
Click to collapse
If you don't have a clue then dont do it, please! Work your way up. First step in this hypothetical is to wait for aospa 5.0
Thanks a lot for this tool
just one thing.. i cant get the blobs for my wireless (wl12xx)
Rest all done
andynoob said:
Thanks a lot for this tool
just one thing.. i cant get the blobs for my wireless (wl12xx)
Rest all done
Click to expand...
Click to collapse
Is it possible that each wl12xx library only relies on AOSP libraries (has no dependencies?)
See if they can be built from source!
Sent from my LG-VS980 using XDA Free mobile app
JackpotClavin said:
Is it possible that each wl12xx library only relies on AOSP libraries (has no dependencies?)
See if they can be built from source!
Sent from my LG-VS980 using XDA Free mobile app
Click to expand...
Click to collapse
Manufacturer hasnt provided the source code(Kernel) . Anyways thanks a lot for this tool :good: :good:
how to use it?
by reading the detailed instructions?
Sent from my LG-VS980 using XDA Free mobile app
JackpotClavin said:
by reading the detailed instructions?
Sent from my LG-VS980 using XDA Free mobile app
Click to expand...
Click to collapse
should we adb pull /system first?
*edit
I did it! but where is the directory out?
J,
You are a life saver ! Subscribed. Will add link of thread to my signature. Will dance happily for some hours! :good:
Will seek therapy. :silly:
m
I've come to ask if anyone could give me some more insight on using PC application to emulate the Arm 64-Bit Arch in a way that would allow it to boot a full android firmware package? Namely a Samsung Device, it would entail the pieces of an ODIN firmware package or a normal system dump from the device.
Now I've seen this done. But that usually involves building AOSP from source or using a factory nexus image. I understand I could achieve my goal if I wanted to use a stock AOSP rom, but it should still be achievable using one of Samsung's roms right? Especially since a lot of their devices include init files for goldfish.
But I'd really like to ask for some pointers from some people knowledgeable in the commands of the emulators.
Hi folks.
I'm new here.
It's my first post so please forgive me if there's something wrong.
Basically I want to know is, what type of knowledge do i need (programming language and other things) to work on root of android like build.prop and making custom roms and working on the custom recovery etc.
What do I need to learn to understand those things and work on them.
Thanks.
Kaksrocks said:
Hi folks.
I'm new here.
It's my first post so please forgive me if there's something wrong.
Basically I want to know is, what type of knowledge do i need (programming language and other things) to work on root of android like build.prop and making custom roms and working on the custom recovery etc.
What do I need to learn to understand those things and work on them.
Thanks.
Click to expand...
Click to collapse
Your question is not specific and I not sure exactly what information you requesting. For instance,
1 "root of android" ? Are you trying to root you're phone?
2. "build.prop"? Adding or modifying that can be done with an android app provided your device is already rooted. Ising ADB and fastboot may also be a possible.
3. " making custom roms" ? Does that mean installing or actually building a custom rom? Actually building a custom rom that is best left for advanced level developers. If, you mean installing a custun rom then generally speaking that is usually done in custom recovery by flashing a .zip file. Its very specific for each phone and carrier.
4. "working on custom recovery"? Depends on which custom recovery you have installed and what options are available. A YouTube search can provide some general information.
I am assuming you are interested in rooting you phone and unfair with all is necessary in order to do so. I suggest, searching for your specific model and carrier hear on XDA. For instence, I have a note 4, I search, "XDA Sprint Note 4".
Mr. JAVI said:
Your question is not specific and I not sure exactly what information you requesting. For instance,
1 "root of android" ? Are you trying to root you're phone?
2. "build.prop"? Adding or modifying that can be done with an android app provided your device is already rooted. Ising ADB and fastboot may also be a possible.
3. " making custom roms" ? Does that mean installing or actually building a custom rom? Actually building a custom rom that is best left for advanced level developers. If, you mean installing a custun rom then generally speaking that is usually done in custom recovery by flashing a .zip file. Its very specific for each phone and carrier.
4. "working on custom recovery"? Depends on which custom recovery you have installed and what options are available. A YouTube search can provide some general information.
I am assuming you are interested in rooting you phone and unfair with all is necessary in order to do so. I suggest, searching for your specific model and carrier hear on XDA. For instence, I have a note 4, I search, "XDA Sprint Note 4".
Click to expand...
Click to collapse
Well. First of all thanks for the reply.
I do have the knowledge on how to root the device and i have my device rooted.
I know how can i modify the build.prop file.
But i want to know how the tweaks are actually made to put them in build.prop file to get it into work. How that tweak is made.
How to know what actually should i edit and etc.
And for custom roms. I do actually want to know about how to actually make a custom rom. Even though if its a high level thing. I still want to know. So that i can start learning and get in that field.
I want to know how custom recovery is made. For ex how twrp was made. And i want to learn its functionality.
Thanks again for the reply.
Kaksrocks said:
Well. First of all thanks for the reply.
I do have the knowledge on how to root the device and i have my device rooted.
I know how can i modify the build.prop file.
But i want to know how the tweaks are actually made to put them in build.prop file to get it into work. How that tweak is made.
How to know what actually should i edit and etc.
And for custom roms. I do actually want to know about how to actually make a custom rom. Even though if its a high level thing. I still want to know. So that i can start learning and get in that field.
I want to know how custom recovery is made. For ex how twrp was made. And i want to learn its functionality.
Thanks again for the reply.
Click to expand...
Click to collapse
I
You welcome and I also Thank you for responding.
In regards to modification of build.props, I advise beginning with custom recovery and making a full back- up (all partitions). I have soft bricked my phone more that once by modifying build.pros and simply did a full wipe and restored my backup and up and running. Kernel Aduitor is an app that provides a Build prop Editor but there are stand alone app that are also available.
If your custom recovery is TWRP then Tipatch is an app that is worth looking into. Its available here on XDA or can be downloaded via Google Play Store.
Odex Roms vs Deodex Roms and what that means. I suggest Deodex if your plan on modifying and/or porting.
Also good to know the differences between kerels permissive vs enforcing.
Apps= ApkTool X, Apk Editor v1.3,(this is a lower version that offers a rebuild function while the updated version available from Google Play dose not) Md5 , and ZArchiver.
As far as how to make custom roms? Thats above my skill level. However, If you download a custom rom make a copy and rename it, then use a root file manager to extract it or ZArciver app and look threw the files of the rom. May help prove helpful in learning basic structure.
Keep in mind I am not a developer. Modified, porting, flashing, treaking I do often. For instance, Im tunning and od Note 4 on marshmallow 6.0.1 and have official Google Play Dark Theme.
If you have any questions
https://forum.xda-developers.com/android/themes/official-google-play-store-dark-theme-t3977061
Mr. JAVI said:
I
You welcome and I also Thank you for responding.
In regards to modification of build.props, I advise beginning with custom recovery and making a full back- up (all partitions). I have soft bricked my phone more that once by modifying build.pros and simply did a full wipe and restored my backup and up and running. Kernel Aduitor is an app that provides a Build prop Editor but there are stand alone app that are also available.
If your custom recovery is TWRP then Tipatch is an app that is worth looking into. Its available here on XDA or can be downloaded via Google Play Store.
Odex Roms vs Deodex Roms and what that means. I suggest Deodex if your plan on modifying and/or porting.
Also good to know the differences between kerels permissive vs enforcing.
Apps= ApkTool X, Apk Editor v1.3,(this is a lower version that offers a rebuild function while the updated version available from Google Play dose not) Md5 , and ZArchiver.
As far as how to make custom roms? Thats above my skill level. However, If you download a custom rom make a copy and rename it, then use a root file manager to extract it or ZArciver app and look threw the files of the rom. May help prove helpful in learning basic structure.
Keep in mind I am not a developer. Modified, porting, flashing, treaking I do often. For instance, Im tunning and od Note 4 on marshmallow 6.0.1 and have official Google Play Dark Theme.
If you have any questions
Click to expand...
Click to collapse
Great. Thanks for the information you provided.
You were pretty helpful.
So again thanks.
I have an old Samsung phone running on Marshmallow. I want to build android and flash it on the old phone. Many take Google Pixel to show how to do it and say it’s not possible to do it on non-Google device. Is there a way to get around it?
KrishnaD3V said:
I have an old Samsung phone running on Marshmallow. I want to build android and flash it on the old phone. Many take Google Pixel to show how to do it and say it’s not possible to do it on non-Google device. Is there a way to get around it?
Click to expand...
Click to collapse
Sure. Here's some reading material on how to build a custom Android operating system. https://www.androidauthority.com/build-custom-android-rom-720453/
If it all seems too much, you could instead install a custom Android operating system prebuilt by others. One such example is LineageOS which has its own website and installation instructions.
You will have to first determine the exact model and sub-variant of your Samsung phone.
Then determine whether it is network carrier unlocked.
Then determine whether the bootloader is allowed to be unlocked (allow oem unlocking).
LineageOS Downloads
download.lineageos.org
Thanks for the reply
Do you know how to obtain proprietary binaries for a device?
KrishnaD3V said:
Thanks for the reply
Do you know how to obtain proprietary binaries for a device?
Click to expand...
Click to collapse
Depends on the the exact device model? (Go to settings =>About phone) (or in the dialler, type *#0*# then tap on 'version'). Then search the XDA forum for that device, then spend some time scrolling through the posts to find the info you're searching for. https://forum.xda-developers.com/c/samsung.11975/
*#0*# doesn’t give any option for version. So I thought to see in settings. What ‘version’ should I look for?
Go to settings =>About phone
Look for a code which which looks similar to SM-GTI9100
KrishnaD3V said:
Thanks for the reply
Do you know how to obtain proprietary binaries for a device?
Click to expand...
Click to collapse
Either extract them from phone's Stock ROM file, or pull them out of phone.
zpunout said:
Go to settings =>About phone
Look for a code which which looks similar to SM-GTI9100
Click to expand...
Click to collapse
It’s SM-A800I running android 6.0.1 . And it’s not on the list that you sent. What can I do?
jwoegerbauer said:
Either extract them from phone's Stock ROM file, or pull them out of phone.
Click to expand...
Click to collapse
I do have the stock rom file but I can’t find guide on how to do so. I found a video where person extracts it from lineage os. Is the process going to be the same? And by the way does it matter which version of stock rom I have because the phone came with android 5 and I updated it to 6 with official update.
KrishnaD3V said:
It’s SM-A800I running android 6.0.1 . And it’s not on the list that you sent. What can I do?
Click to expand...
Click to collapse
Yeah, there's not much development on that device, I read somewhere that Samsung supposedly never released the source code. It is hard to search for, but I did find this link: https://forum.xda-developers.com/t/...al-cyanogenmod-13-for-galaxy-a800f-i.3344081/
I did find out that the nickname of your SM-A800I model is "a8hplte" which might help you in search engines.
Looks like a dead end to me though.
KrishnaD3V said:
I do have the stock rom file but I can’t find guide on how to do so. I found a video where person extracts it from lineage os. Is the process going to be the same? And by the way does it matter which version of stock rom I have because the phone came with android 5 and I updated it to 6 with official update.
Click to expand...
Click to collapse
The so-called binary blobs are kinds of hardware drivers, you can't simply extract them of a Custom ROM, you have to extract them from a phone's original Stock ROM, as I told you this already earlier.
These binary blobs typically are found under /vendor/lib(64), some also under /system, /etc and /bin.
Most of the blobs are executable files or libraries, run as independent services on phone's boot.
jwoegerbauer said:
The so-called binary blobs are kinds of hardware drivers, you can't simply extract them of a Custom ROM, you have to extract them from a phone's original Stock ROM, as I told you this already earlier.
These binary blobs typically are found under /vendor/lib(64), some also under /system, /etc and /bin.
Most of the blobs are executable files or libraries, run as independent services on phone's boot.
Click to expand...
Click to collapse
Thanks for the info
zpunout said:
Yeah, there's not much development on that device, I read somewhere that Samsung supposedly never released the source code. It is hard to search for, but I did find this link: https://forum.xda-developers.com/t/...al-cyanogenmod-13-for-galaxy-a800f-i.3344081/
I did find out that the nickname of your SM-A800I model is "a8hplte" which might help you in search engines.
Looks like a dead end to me though.
Click to expand...
Click to collapse
Not so beginner friendly I guess . I try my luck extracting the blobs as described by
jwoegerbauer.