DEVELOPMENT THREAD
FOR DEVELOPERS ONLY
DISCUSSION THREAD FOR USERS:
http://forum.xda-developers.com/showthread.php?t=1568848
CyanogenMod is a free, community built, aftermarket firmware distribution of Android 4.0 (ICS), which is designed to increase performance and reliability over stock Android for your device.
Code:
#include <std_disclaimer.h>
/*
* Your warranty is now void.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this ROM
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.
*
* Submitting bug reports on nightly builds is the leading
* cause of male impotence.
*/
CyanogenMod is based on the Android Open Source Project with extra contributions from many people within the Android community. It can be used without any need to have any Google application installed. Linked below is a package that has come from another Android project that restore the Google parts. CyanogenMod does still include various hardware-specific code, which is also slowly being open-sourced anyway.
All the source code for CyanogenMod is available in the CyanogenMod Github repo. And if you would like to contribute to CyanogenMod, please visit out Gerrit Code Review. You can also view the Changelog for a full list of changes & features.
General:
http://github.com/CyanogenMod
Device (you need both):
http://github.com/CyanogenMod/android_device_samsung_galaxys2
http://github.com/CyanogenMod/android_device_samsung_i777
Kernel:
https://github.com/teamhacksung/android_kernel_samsung_smdk4210
Build:
http://teamhacksung.org/wiki/index.php/CyanogenMod9:SGH-I777:How_to_build
Getting Started:
http://wiki.cyanogenmod.com/wiki/Howto:_Gerrit
Example:
- cd ~/android/system
- repo start branchname CyanogenMod/android_device_samsung_i777 (or android_device_galaxys2 depending on whether your work is in common galaxys2 or i777)
-- Make your changes at device/samsung/i777 (or galaxys2)
- cd device/samsung/i777 (or galaxys2)
- git add -A
- git commit -a
- cd ~/android/system
- repo upload CyanogenMod/android_device_samsung_i777 (or android_device_samsung_galaxys2 if your changes are to galaxys2)
Many of your changes will actually be in the android_device_samsung_galaxys2 repo as well as the code is shared between the galaxys2 and i777 so you will also need to work in that repo.
Navigate to http://review.cyanogenmod.com , click your commit and add atinm for i777, atinm, codeworkx and xplodwild for galaxys2, as reviewers.
Saved for later.
Alright, this thread has been cleaned up to here. All other non-dev members can discuss this here in the designated discussion thread in the General forum.
atinm - don't know if you saw, but there's a pending gerrit submission for an updated kernel.
The current set of kernels has ondemand as default but interactive governor enabled - this combo can cause hung task freezes in LPM and recovery.
http://review.cyanogenmod.com/#change,14072
(I tried to add you as a reviewer but I'm not sure if that's the correct atinm. The system is full of "use the other atinm" users. )
Entropy512 said:
atinm - don't know if you saw, but there's a pending gerrit submission for an updated kernel.
The current set of kernels has ondemand as default but interactive governor enabled - this combo can cause hung task freezes in LPM and recovery.
http://review.cyanogenmod.com/#change,14072
(I tried to add you as a reviewer but I'm not sure if that's the correct atinm. The system is full of "use the other atinm" users. )
Click to expand...
Click to collapse
Saw this too late - I pushed the same kernel plus an added assert for galaxys2 so people using the bad ported galaxys2 builds can get to i777. I'll take out the galaxys2 assert in a couple of days after people are on i777. Building a new nightly.
Will look at the GPS you have on gerrit in a little bit - have to be out for a few hours.
Building from source
I am trying to build it locally with following error:
Code:
[email protected]:~/android/system$ brunch i777
---//some skipped output///---
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/i777/cm.mk]]: "vendor/samsung/i777/i777-vendor-blobs.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_i777'
** Do you have the right repo manifest?
My manifest:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_samsung_galaxys2" path="device/samsung/galaxys2" remote="github" />
<project name="CyanogenMod/android_device_samsung_i777" path="device/samsung/i777" remote="github" />
<project name="teamhacksung/android_kernel_samsung_smdk4210" path="kernel/samsung/smdk4210" remote="github" revision="ics" />
<project name="teamhacksung/buildscripts" path="buildscripts" remote="github" revision="ics">
<copyfile dest="build.sh" src="samsung/build.sh" />
</project>
<project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" />
</manifest>
Any help is greatly appreciated!
you didn't do extract-files
Not sure if looking for galaxys2 will cut it... Most likely a bunch of people are coming from Touchwiz-based firmwares.
I admit I am partially at fault - I didn't implement sed scripts in Hellraiser to change the model, partly to minimize the chances that something would break. (The rule was to change as little as possible to make things work in order to maximize compatibility.)
sam3000 said:
I had that too (link). As a workaround, edit device/samsung/i777/extract-files.sh and change DEVICE=galaxys2 to DEVICE=i777 and it should build. I'm not sure what the correct fix should be though..
The other stuff I mention in the linked post has since been fixed.
Click to expand...
Click to collapse
The issue is that the proprietary files that the i777 is using are from the galaxys2 and it just pulls them from there. But the .mk files that are generated need to go into the i777 directory. I've updated extract-files.sh to try to get around it, but need someone to test.
atinm said:
The issue is that the proprietary files that the i777 is using are from the galaxys2 and it just pulls them from there. But the .mk files that are generated need to go into the i777 directory. I've updated extract-files.sh to try to get around it, but need someone to test.
Click to expand...
Click to collapse
I tried to run extract-files.sh and got:
Code:
remote object '/system/lib/libGLESv2_dbg.so' does not exist
Which gave me this during compile:
Code:
make: *** No rule to make target `vendor/samsung/galaxys2-common/proprietary/libGLESv2_dbg.so', needed by `out/target/product/i777/system/lib/libGLESv2_dbg.so'. Stop.
I have the latest repo as describe in the op. Anyone else run into this issue? Ran the extract on cm7.
5942marine said:
I tried to run extract-files.sh and got:
Code:
remote object '/system/lib/libGLESv2_dbg.so' does not exist
Which gave me this during compile:
Code:
make: *** No rule to make target `vendor/samsung/galaxys2-common/proprietary/libGLESv2_dbg.so', needed by `out/target/product/i777/system/lib/libGLESv2_dbg.so'. Stop.
I have the latest repo as describe in the op. Anyone else run into this issue? Ran the extract on cm7.
Click to expand...
Click to collapse
Did you enable root for adb before running extract-files.sh? And what ROM do you have now?
I had cm7 on it when I ran the extract, I just did it on that phone bricker build as well, only ended up missing one *.so, cant remember which exact file it was, had to step away. Will get back in the am.
Sent from my SGH-I777 using XDA
Update: Just flashed atinm's nightly of CM9, ran extract_files.sh and no errors at all.
5942marine said:
I tried to run extract-files.sh and got:
Code:
remote object '/system/lib/libGLESv2_dbg.so' does not exist
Which gave me this during compile:
Code:
make: *** No rule to make target `vendor/samsung/galaxys2-common/proprietary/libGLESv2_dbg.so', needed by `out/target/product/i777/system/lib/libGLESv2_dbg.so'. Stop.
I have the latest repo as describe in the op. Anyone else run into this issue? Ran the extract on cm7.
Click to expand...
Click to collapse
5942marine said:
I had cm7 on it when I ran the extract, I just did it on that phone bricker build as well, only ended up missing one *.so, cant remember which exact file it was, had to step away. Will get back in the am.
Sent from my SGH-I777 using XDA
Update: Just flashed atinm's nightly of CM9, ran extract_files.sh and no errors at all.
Click to expand...
Click to collapse
Confirmed, /system/lib/libGLESv2_dbg.so does not exist in CM7 so of course it can't be extracted. Screencap of partial file list from my last nandroid on CM7 before upgrading attached.
All non-dev related posts have been moved over to the General CM9 thread.
I guess the giant red bolded DEV tag at the top isnt obvious enough.
Just an update... I was compiling the latest build, and got the following error:
Code:
make: *** No rule to make target `vendor/samsung/galaxys2-common/proprietary/hwcomposer/lib/libfimc.so', needed by `out/target/product/i777/obj/lib/libfimc.so'. Stop.
Now, when i ran ./extract-files, I didn't recieve any errors while it was pulling the files.
I can see that the file is in the galaxy2-common directory, under the proprietary folder.
There is not folder under proprietary /hwcomposer/lib
5942marine said:
Just an update... I was compiling the latest build, and got the following error:
Code:
make: *** No rule to make target `vendor/samsung/galaxys2-common/proprietary/hwcomposer/lib/libfimc.so', needed by `out/target/product/i777/obj/lib/libfimc.so'. Stop.
Now, when i ran ./extract-files, I didn't recieve any errors while it was pulling the files.
I can see that the file is in the galaxy2-common directory, under the proprietary folder.
There is not folder under proprietary /hwcomposer/lib
Click to expand...
Click to collapse
This is the fix for the same issue that was present in galaxys2:
http://review.cyanogenmod.com/#change,13935
Posts cleaned out again. Im only going to say this one last time...
THIS THREAD IS FOR DEVELOPMENT ONLY. IF YOU ARE NOT HELPING DEVELOP FOR CM9 THEN YOU SHOULD POST IN THE GENERAL THREAD, NOT THIS THREAD. ANY FURTHER NON-DEV RELATED POSTS WILL RECEIVE AN AUTOMATIC INFRACTION AND THEIR POST WILL BE DELETED.
sam3000 said:
This is the fix for the same issue that was present in galaxys2:
http://review.cyanogenmod.com/#change,13935
Click to expand...
Click to collapse
Thanks, got it working.
sam3000 said:
This is the fix for the same issue that was present in galaxys2:
http://review.cyanogenmod.com/#change,13935
Click to expand...
Click to collapse
http://review.cyanogenmod.com/#change,14155 fixes the same thing for i777.
5942marine said:
Thanks, got it working.
Click to expand...
Click to collapse
Any extract-files.sh fixes you make - please gerrit them, or just send them to me directly via email if you don't know gerrit (learn Gerrit if you intend to develop for CM!).
Red5 said:
All non-dev related posts have been moved over to the General CM9 thread.
I guess the giant red bolded DEV tag at the top isnt obvious enough.
Click to expand...
Click to collapse
Can you clarify - I take it discussion about build issues that are because script fixups are necessary in github sources is also off-limits ? ie where the root issue is in the repo not the person trying to compile. (Previous post removal implies this.)
If someone can't massage whatever comes out of github in order to get it to compile then it's unlikely they would be posting patches even if the build worked. However, on the other hand, I would argue it's also useful to identify, discuss and fix any build related issues for the benefit of all (separate thread perhaps?)
I am trying to follow this guide:
Code:
https://wiki.cyanogenmod.org/w/Build_for_h901#What_you.E2.80.99ll_need
in order to build cyanogenmod for my H901, but after the initial repo sync "completed" without error, i follow the guide through breakfast and the the file extraction, and brunch fails to build all targets. after this, doing repo sync again gives me this:
Code:
Fetching projects: 99% (524/529) Fetching project CyanogenMod/android_hardware_qcom_display
Fetching project CyanogenMod/android_hardware_qcom_display
Fetching project CyanogenMod/android_hardware_qcom_display
fatal: Couldn't find remote ref refs/heads/cm-13.0
error: Cannot fetch CyanogenMod/android_kernel_lge_pplus
error: Exited sync due to fetch errors
I want to say this is due to the v10 not being a "supported device" for CM13 yet, as it is not listed on the lunch menu. but i was running the test builds in the dev section just fine, and i'm sure it's a fairly simple matter to pull the right stuff from git, but i'm a newbie to this kind of development.
After successfully building from source, i want to build a custom rom based on CM13 and keep the LG stock camera app, and the LGSignboard second screen function, and gain all the Cyanogenmod goodies too. any help or guidance with that quest would be appreciated.
I really hope someone can answer this for you.. :/
I think, you are trying to sync cm-13.0 branch of cyanogenmod lge_pplus kernel repo in your local manifest. But this is not there. Its only the cm-12.1 branch there: https://github.com/CyanogenMod/android_kernel_lge_pplus. For cm-13 you will need a different kernel source path. Hopefully there are already cm-13 roms for your device and with sources on github, where from you can sync?
Okay, that makes sense.
I was following a guide on CM wiki to build CM13 for the v10, why would that branch not be present on github if there is a guide to build from it?
I'll poke around github and xda for available kernel source.
Sent from my LG-H901 using XDA-Developers mobile app