[Info:Learnership]{Guides to development} - LG Optimus 3D

Hey Peeps
This thread is created for people like myself that has no programming experience, but want to learn to develop roms,kernels etc.
For the past few months it seems that this forum has become stagnant as far as development is concerned, and for this reason i have made this thread for the inexperienced to hopefully become experienced.
What i am trying to do is get as much info, posts, links, advice as possible in one place for people to learn to develop.
Any guides would be useful, programming, xml editing, smali editing, scripting, linux, etc.
What ever is helpful in the development of this device or any other.
Please feel free to contribute your findings and link it in this thread.
I'll start with a few programming links i use.
For c/c++, java, android and alot more: (1) http://thenewboston.org/
For a bit of linux : (1) http://free-electrons.com/
Scripting [updater scripts] : (1) https://www.modaco.com/topic/345774-clockworkmod-recovery-version-3-or-higher-scripting-tutorial/
Kernel Building : (1) http://www.tldp.org/LDP/lkmpg/2.6/html/c119.html
(2) http://www.incrediblediy.com/2013/07/writing-and-testing-linux-kernel.html
Android Build System : (1) http://elinux.org/Android_Build_System
(2) http://www.netmite.com/android/mydroid/development/pdk/docs/index.html
how to Commit Code : (1) http://code.google.com/p/simile-widgets/wiki/How_To_Commit_Code
(2) http://www.mediawiki.org/wiki/Gerrit/Tutorial
(3) https://confluence.atlassian.com/display/BITBUCKET/Bitbucket+101
How to use Git : (1) http://git-scm.com/docs/gittutorial
(2) https://help.github.com/
Android file system : (1) http://www.all-things-android.com/content/understanding-android-file-hierarchy
(2) http://techblogon.com/android-file-system-structure-architecture-layout-details/
(3) http://www.addictivetips.com/mobile/android-partitions-explained-boot-system-recovery-data-cache-misc/
Android App Development : (1) http://www.vogella.com/tutorials/Android/article.html
Xml : (1) http://www.vogella.com/tutorials/Android/article.html
(2) https://www.linux.com/learn/tutorials/735985-android-app-development-for-beginners-layout-and-ui-options-part-one
Smali Editing : (1) http://forum.xda-developers.com/showthread.php?t=2193735 Thanx to havocgb
(2) http://themikmik.com/showthread.php?12439-Smali-Guides-and-Tutorials
(3) http://securityxploded.com/android_reversing.php
(4) http://blog.apkudo.com/2012/10/16/reverse-engineering-android-disassembling-hello-world/

https://source.android.com/devices/
Sent from my LG-P920 using xda app-developers app

So guys im posting here again to encourage other to get involved with the development of this phone. Like i said i am not a developer but got a successfull build of cm11 to you guys.what i used?
Setup source enviroment,
Get device tree, vendor and kernel.
On ubuntu for compile errors, i got meld diff compare for errors.
Also i use smartgit on ubuntu and windows to resolve conflicts in code, it helps alot if you have little or no programming experience, cause it has a conflict resolver where u can compare and merge code.
On ubuntu i use normal git cmd line aswell and on windows i use git for windows with the git bash cmd line.
All these programs helped me in getting cm to boot. If you have the time,eager to learn, and want to add in take this device forward and up to date. These are good starting tools. If other devs have any adice or better tools to use feel free to contribute.
Sent from my LG-D620 using XDA Free mobile app

Related

General instruction on how to build firmware for Android devices?

Is there any source/ help/ instruction that I can check out to learn how to design/build Android OS for any supported devices? I would like to learn to see if I can build the firmware for my Eken M0001 using the latest Android version.
i think theunlockr.com has a guide of some sort. i would look there!
Code:
android-dls.com/wiki/index.php?title=Compiling_for_Android
This should get you up and running if you are somewhat familiar with the whole Linux thing. If not I would start out by learning how to compile the kernel and some standard libraries for a regular X86(_64) distro. The approach is pretty much the same, only compiling for android requires a lot more work with cross-compiling and getting a working set of standard libraries for arm.
Oh, and sorry about the link thingie. The administrators of this forum are obviously weak minded and have come up with some totally brain-dead limitations for new users. (A new user is not allowed post links , a good RP system would beat that hands down anytime)
Thanks for the info. I will check those links out.

[CALLING EVERY MEMBER] Fit Group DEV. Learning

Hello peeps,
I see there is not much activity going on between the users of Fit.
I need a list of all the people who are here and using the fit phone.
Members try to participate actively and help get past the Low Activty Barrier
Also, I wanna know who is ready to do what. These are the perspectives what I am looking for. Users can sign up for multiple posts also!
->Kernel Developement Team
-> Custom ROM Developers
-> Maintainers of Custom ROM and Helpers
-> Beta Testers
-> Mods Informer
-> Theme Creator
-> THeme Porter
-> Rom Testing
-> Custom ROM testing
-> Problem Fixes Testing
-> Doubt-clearance Member
-> DEV. Teacher!
As A initiative, I am also creating a Twitter account. Anybody who would like to create a Facebook Group for the phone's DEV and Testing team is free to do so!
Please Enroll your name below and tell us what time can you spend for what purpose!
Please Help Fit have a Bright Future! Please E-Mail us your Selected Criteria. I will add you to the mailing list. You can get all teh information on what the DEVs. are working about and stuff!
The E-mail Address of the Fit DevTeam-> [email protected]
Twitter ID-> @dev_GalaxyFit
Follow us on Twitter for all the updates on Developments
Regards,
Rohan Mallya.
I sign up for
->Custom Rom DEV.
-> Maintainers of Custom ROM and Helpers
->Mods Informer
Ok i want to be kernel developer and doubt clearance but i have to learn to develop kernel
omarhasan76 said:
Ok i want to be kernel developer and doubt clearance but i have to learn to develop kernel
Click to expand...
Click to collapse
Take your time! And, share the sources from where you are learning! Follow us on Twitter
I sign up for
->Beta tester
->ROM and Custom ROM tester
->Doubt Clearance member
Will add up responsibilities as and when I learn
spike1902 said:
I sign up for
->Beta tester
->ROM and Custom ROM tester
->Doubt Clearance member
Will add up responsibilities as and when I learn
Click to expand...
Click to collapse
Thank yoU!
Follow us on Twitter.
If you want, Just e-mail us your real name and your designation! You will be updated with amazing stuff and things
Sticky'd the the thread for you, good luck with Development.
Also for help with kernel development try my good friend Doomlord.
http://forum.xda-developers.com/member.php?u=2784807
->Beta tester
->ROM and Custom ROM tester
and whatever i learn in the process
Kernel Development
This is a general guide for building kernels and modifying them. Device-specific articles for getting the kernel source and setting up the build environment are provided in their respective sections.
Getting the kernel source
The source for your kernel must be made available by your device's manufacturer in order to comply with the GPL.
I dont know where to get it
Setting up the environment
Instructions for setting up the development environment should be included in your source code package. This should tell you the parts of the Android Open Source Project that must be in your working directory in order to allow the kernel to build. It will tell you what version as well. All of the Android Operating System source code is available at [android.git.kernel.org] and most projects are mirrored at [github.com/android]. Both are accessible via your internet browser as well as git.
Modifying the kernel
After the kernel source has been downloaded and your environment is set up, you can begin modifying the kernel. It is recommended (in most cases mandatory) that you run the standard "make xxx_defconfig" for your device before modifying the configuration.
Running
make
or
make -jX [where X is the number of operations to perform at a time]
at this point will make the stock kernel that your phone's official system has. To modify it, we can go two ways: 1) modify the file '.config' in a text editor, or 2) run
make menuconfig
for a graphical interface.
Modifying '.config' with menuconfigEdit
Typing
make menuconfig
will bring up the aforementioned graphical interface for modifying your kernel. Striking the "y" key when an option is selected (with "< >" or "[ ]" before it) will include it in the kernel. Striking the "m" key will add those options with a "< >" as a Linux kernel module (*.ko).
Adding tethering support (netfilter/iptables)Edit
Adding VPN support (TUN)
Adding Linux swap support
Adding ext3/ext4 support
Mofifying '.config' manually
The alternative to using menuconfig is editing '.config' in your preferred text editor. Options that are not to be included in the build are commented out with a "#". Options that are to be included inside the kernel image are uncommented and have the value of "y". Options with the value "m" are to be built into loadable kernel modules.
Adding tethering support (netfilter/iptables)Edit
Adding VPN support (TUN)Edit
Adding Linux swap supportEdit
Adding ext3/ext4 supportEdit
Packaging and flashing your kernelEdit
Additional stepsEdit
You may find that you want to play around with '.config', but don't want to lose your configuration. You can rename your '.config' to whatever you want and give it the suffix "_defconfig" and put it in "arch/arm/configs/" for the next time you wish to use it.
For example: if you had a kernel that had tethering and ReiserFS support, and you wanted to try enabling VPN without breaking your current setup, you could rename your '.config' to 'my_rfs_tethering_defconfig' and move it to "arch/arm/configs/". The next time you wanted to make this kernel you could run
make my_rfs_tethering_defconfig
and have your kernel configuration just as you left it.
Note that this would overwrite your kernel configuration stored in '.config'
omarhasan76 said:
Kernel Development
This is a general guide for building kernels and modifying them. Device-specific articles for getting the kernel source and setting up the build environment are provided in their respective sections.
Getting the kernel source
The source for your kernel must be made available by your device's manufacturer in order to comply with the GPL.
I dont know where to get it
Setting up the environment
Instructions for setting up the development environment should be included in your source code package. This should tell you the parts of the Android Open Source Project that must be in your working directory in order to allow the kernel to build. It will tell you what version as well. All of the Android Operating System source code is available at [android.git.kernel.org] and most projects are mirrored at [github.com/android]. Both are accessible via your internet browser as well as git.
Modifying the kernel
After the kernel source has been downloaded and your environment is set up, you can begin modifying the kernel. It is recommended (in most cases mandatory) that you run the standard "make xxx_defconfig" for your device before modifying the configuration.
Running
make
or
make -jX [where X is the number of operations to perform at a time]
at this point will make the stock kernel that your phone's official system has. To modify it, we can go two ways: 1) modify the file '.config' in a text editor, or 2) run
make menuconfig
for a graphical interface.
Modifying '.config' with menuconfigEdit
Typing
make menuconfig
will bring up the aforementioned graphical interface for modifying your kernel. Striking the "y" key when an option is selected (with "< >" or "[ ]" before it) will include it in the kernel. Striking the "m" key will add those options with a "< >" as a Linux kernel module (*.ko).
Adding tethering support (netfilter/iptables)Edit
Adding VPN support (TUN)
Adding Linux swap support
Adding ext3/ext4 support
Mofifying '.config' manually
The alternative to using menuconfig is editing '.config' in your preferred text editor. Options that are not to be included in the build are commented out with a "#". Options that are to be included inside the kernel image are uncommented and have the value of "y". Options with the value "m" are to be built into loadable kernel modules.
Adding tethering support (netfilter/iptables)Edit
Adding VPN support (TUN)Edit
Adding Linux swap supportEdit
Adding ext3/ext4 supportEdit
Packaging and flashing your kernelEdit
Additional stepsEdit
You may find that you want to play around with '.config', but don't want to lose your configuration. You can rename your '.config' to whatever you want and give it the suffix "_defconfig" and put it in "arch/arm/configs/" for the next time you wish to use it.
For example: if you had a kernel that had tethering and ReiserFS support, and you wanted to try enabling VPN without breaking your current setup, you could rename your '.config' to 'my_rfs_tethering_defconfig' and move it to "arch/arm/configs/". The next time you wanted to make this kernel you could run
make my_rfs_tethering_defconfig
and have your kernel configuration just as you left it.
Note that this would overwrite your kernel configuration stored in '.config'
Click to expand...
Click to collapse
You wrote it or Got it? :/
got it here is a source code some body download and upload it for s5670
https://opensource.samsung.com/reception.do?first=F
omarhasan76 said:
got it here is a source code some body download and upload it for s5670
https://opensource.samsung.com/reception.do?first=F
Click to expand...
Click to collapse
SUre thanks! Checking it out! I have teh SOurce code ALready!
Then upload it or we have to sign up for downloading
omarhasan76 said:
Then upload it or we have to sign up for downloading
Click to expand...
Click to collapse
Oh kay! I will upload it!
I will upload it in an hour! I am downloading the source code of Galaxy i9000! So, I will upload the Fit source code as soon as the i9000 one is over, fine?
as you told to share our researc i fond a step by step tutorial to prepare kernelhttp://forums.androidcentral.com/htc-hero-rooting-roms-hacks/8072-how-build-your-own-kernel-package-source.html
KK
Recently I decided to learn application development and building custom ROMs so i searched online for sources to learn. I found the following playlist uploaded by the user Marakana on youtube :
http://www.youtube.com/watch?v=Mf7z_mrce00&feature=bf_next&list=PLE953C0B85B50AB62&lf=results_main
There is also a book named "Learning Android" written by the same person who uploaded the videos above. I am new to android development and new to Java even,and I found these tutorials very useful ..... I am posting this because this may help someone
I sure does Help! Thank you for your contribution
krishnakanth_590 said:
Recently I decided to learn application development and building custom ROMs so i searched online for sources to learn. I found the following playlist uploaded by the user Marakana on youtube :
http://www.youtube.com/watch?v=Mf7z_mrce00&feature=bf_next&list=PLE953C0B85B50AB62&lf=results_main
There is also a book named "Learning Android" written by the same person who uploaded the videos above. I am new to android development and new to Java even,and I found these tutorials very useful ..... I am posting this because this may help someone
Click to expand...
Click to collapse
Thanks Man!
I am limited to 5 thanks per day..So, I cant thank you! Sorry!
Dude, for all your effort, I can just thank you! My Sister owns this device! It is shocking to see you in here! I thought you would be developing only for SL, S and S2 P:
---------- Post added at 04:29 PM ---------- Previous post was at 04:28 PM ----------
Is Android based on Linux?

Dont know where to start

Hi every one I dont know where to start i want to make my own rom from source,build it,modify it etc.But i dont know where to start.I know how to build rom from source(learned it from the tutorial on source.android) but i dont know what do those codes mean.i searched on google but cant find an easy tutorial.If i build rom from source how do i make it work on my phone.How do i FIX bugs on my roms,modify it Help please
Check out the chef central section under android. There are a lot of great people working on making development accessible.
For a pure AOSP ROM you are going to have a bit more work, but be rewarded in the end. There is also cyanogenmod and other custom distributions you can build from source and modify.
If you are familiar with C and Java programming you can dig into the actual development more by writing apps or changing source code. If you don't you may want to start on that road. Other wise you will be basically cutting and pasting from everyone else, which doesn't get you any credit.
Themes are also a good place to start. There are lots of good guides in the theme section and people are willing to help if you ask nicely and appropriately.
I have done a bit of this foot work and come to the conclusion, I need to learn programming then come back to source. It is overwhelming to take on an entire operating system in a foreign language, especially when that language has to be perfect to function!
Good luck in your endeavors. Feel free to hit me up for the little knowledge I have!
Sent from my PC36100 using xda premium
But! where to learn
First i want to learn the basics of Rom
are you familiar with Java, C and C++? These are going to be very useful in understanding the "codes" as that is what they are written in. You are also going to have to build AOSP specific for your device, which will require adding your device to the device tree and extracting the necessary drivers and files that are specific to your device. Cyanogenmod has many devices already added to their github and you would simply clone the folder for your device, then build AOSP source and issue make using the device specific folder.
THIS is a helpful tool, and yes it will compile pure AOSP as well.
THIS is also a very helpful tutorial, and you can modify instructions to work for Gingerbread.
If you just want to learn to build and modify the source start with Cyanogenmod build from their source first. You can also build the kernel if you choose but that is a bit more complicated. After you have both of those building without errors then start making changes that you want to see.
The CM Wiki has some good info http://wiki.cyanogenmod.com/wiki/Building_from_source
http://wiki.cyanogenmod.com/wiki/Building_Kernel_from_source

[TUTORIAL] Everything You Need to be a Kernel Dev

Welcome everyone, I was asked by a friend from my old slice of XDA to write kernel tutorials on everything I know about them. So, here we are!
First, you MUST learn C coding. It is not hard, once you begin; XDA Senior member mhrsolanki2020 has written a tutorial for it here on XDA.
So now that we know C, lets try basic step one. We need to compile it!
Go to this tutorial I have written here to learn how to do that. To compile a kernel for your device if you don't own the one v just get your own source, and then use your own defconfig. You will be golden from there.
What do we plan on teaching
Compiling of the source
Making a boot.img for your device
Use fastboot to test your kernel
Debugging the kernel
Using ADB to your advantages
Trick of the fastboot-fu
All about a ramdisk
Adding drivers
More?? You tell me
RESERVED
Reserved for tools

[Question] Kernel Compilation for Modules

First post in the Dev section but this seemed to be the place to talk about kernel compilation and module development.
I have twice now, and am working on my third kernel compilation for the purposes of custom module building for the TF700 and the TF201.
The question I have has to do with the compilation process. Every time I have gone through this with the downloadable Asus Kernel zip I run in to several issues. Either missing references in code or portions that won't compile at all. Is this normal for kernel compilations? I would have thought that it would be fully compilable out of the box ( so to speak). Is it ASUS or just android/Linux in general that works out this way?
Is there a better way to do it? Should I use some generic source with the same version numbers? The current source is just not working at all. I am using an Ubuntu distro. Have the cross compile tools etc... but it just fails. I have already resolved two missing definition references and it just keeps on failing in new places
Hopefully this question doesn't offend developers. I have moved from WinPhone to here and want to better my understanding of how this should all work but need to start with some basics before I can make a meaningful contribution.
Thanks.
P.S... I looked and didn't find a "Compiling android kernels for dummies" book
hx4700 Killer said:
I looked and didn't find a "Compiling android kernels for dummies" book
Click to expand...
Click to collapse
"Dummies" doesn't write a book on kernel dev. Too wrapped up in telling people how to download iTunes.....
Use your "Google". And when you find it, Google XDA University.
There, you will find steps for setting a build environment and kernel and cross arm.
Understand, all kernels are different, but a good place to start. Plus, you learn how to use Google. An added bonus.
Oh... and... as an extra bonus, I will move this to Q & A, as this post has no development work attached. :silly:
MD
My question wasn't HOW to cross compile. I have done it.
My question is WHY are there so many errors that need correcting when compiling the ASUS downloadable kernels and if this is typical of the source from any device or just ASUS?
hx4700 Killer said:
The question I have has to do with the compilation process. Every time I have gone through this with the downloadable Asus Kernel zip I run in to several issues. Either missing references in code or portions that won't compile at all.
Click to expand...
Click to collapse
I had to fix exactly one pair of quotes vs. angle brackets somewhere in the RIL - get the patch pack from my kernel and apply the ril include fix. Then it should compile. If not, you are doing something wrong.
Can you post any links or names of everything ill need to get started on cross compiling a kernel for my tf700t I download the source and get my config.gz and am running a ubuntu distribution but if you could post a link to a tutorial that has detailed instructions that will work for the infinity that would be greatly appreciated thankyou
alexcass4 said:
Can you post any links or names of everything ill need to get started on cross compiling a kernel for my tf700t I download the source and get my config.gz and am running a ubuntu distribution but if you could post a link to a tutorial that has detailed instructions that will work for the infinity that would be greatly appreciated thankyou
Click to expand...
Click to collapse
Step 1: Get a suitable ARM toolchain. I can't help you here with Ubuntu because I'm using Gentoo and their crossdev tool (http://www.gentoo.org/proj/en/base/embedded/handbook/?part=1).
Step 2: Cross-compiling the kernel works just as for native kernels (make menuconfig, make), but you have to pass parameters to each make, e.g. make ARCH="arm" CROSS_COMPILE="arm-gentoo-linux-gnueabi-" (or whatever your toolchain is called)
Step 3: For the TF700-specific blob stuff I have written a detailed tutorial here: http://forum.xda-developers.com/showpost.php?p=36925180&postcount=4

Categories

Resources