Download latest marmite: this post
Download marmite for old versions e.g. Jellybean: version matrix
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Marmite once made me more sick than I'd ever been before or since.
But I still love it. #truefact
This kernel is based on the stock jb kernel. I have kept, added or tweaked the features I approve of:
- CFQ I/O scheduler (best performing)
- Ondemand, tweaked values
- BLN (no blinking), BLD and Fast-Charge
- more free RAM
- Bluetooth fixed and PM_FAST (keeps fast wifi even with screen off)
- Voodoo sound and colours with my settings for a stable whitepoint at all brightnesses.
- Zcache: compressed cache stored in ram, improves performance by retrieving cached pages from ram rather than flash
- MTP (explanation below the links)
- custom OC available
Voltage and OC quoted from a chip designer with 14 years industry experience: here.
What is ORD?: here.
Facebook by leap_ahead: here
What you need to know about Custom OverClocking [OC]: here.
Interesting discussion of gamma and RGB setting (voodoo): here.
My kernel doesn't wipe your cache or dalvic, so you can flash and reboot in less than a minute. Read this.
What is MTP?
Firstly, huge props to krfoy for making this work with the any-kernel script. Great work!
Microsoft's Media Transfer Protocol. It allows for dramatically faster transfers too the phone, so it is really good when you are copying over films or mp3 folders. What's really good is that you can continue to use your apps while these transfers happen. Faster? More functional? You bet! The limitations are that it is relatively unsupported on non-Windows platforms. However, you can investigate these possibilities: Ubuntu: here. --- --- Mac: here.
How to Select MTP/PTP
Go to Settings>Storage>(Hit capacitive menu button)>USB Computer Connection to select.
If your ROM doesn't have the switch there then check this tip from pigsan! or use the command line.
* * *
Big thanks: ...to the community! So many people supported my research that it's impossible to thank them all individually. Particular thanks to tchaari and Harbb. Credit goes to: _thalamus for getting me started with git, correcting my misconceptions about merging; KalimochoAz for CM; ezekeel for the incredible variety of mods; mathkid95 for ondemand tweaks; steve.garon for help with scripting; morfic for his advice and permission to use his colour settings; and supercurio for voodoo. Big thanks to krarvind for MTP, legend! Congrats to krfoy for enabling MTP via the any-kernel script. Nice work! Thanks to caliban2 for his consistent and unbiased feedback. Thanks to brainmaster, when I originally joined the forums for being so helpful. Hopefully I treat newcomers just as kindly.
Old versions: http://goo.gl/B0p8Z
TOOLCHAIN: Linaro a8 optimised by @Christopher83 here
SOURCE: http://github.com/bedalus/marmite
Download ICS version: v1.5b (For ICS 4.0.4)
NOTE: Opening AnTuTu breaks Deep Idle! If you have to use this app, disable DI until you can reboot.
Flashable Patch for BiggerMem: http://d-h.st/NSx
This kernel is based on the work of the cyanogenmod team:
Cyanogenmod base features:
- Merged to 3.0.39 from mainline.
- Voodoo sound v10
- "Biggermem" 404MB (morfic's idea if I remember right)
- BLN
- SLUB memory allocator*
- Deep Idle:- Kalim included code that limits the maximum frequency to 800MHz when DI is active. Great innovation Kalim! I have modified this code to fix the screen off frequency to 400MHz for efficiency.
Click to expand...
Click to collapse
I have enabled the things I like:
- CFQ scheduler. It's a tiny notch down from deadline in performance, but very consistent. Kalim disabled it in the nightlies where I got my base configuration, so I've brought it back.
- Deadline I/O scheduler adjusted for flash for lowest I/O latencies (thanks thalamus)
- BLX
- BLD
- Voodoo colour
- Gamma settings by morfic, thank him for giving permission
>>> Try these settings in Voodoo: raise all gamma to 20, then set RGB to 189-185-214
- SmartassV2 governor*
- Deep Idle locks to 400MHz regardless of your governor settings. This is an adaptation of kalim's code. Why? Because I proved that 400MHz is the most power saving state for Deep Idle. Excerpt from research: here.
- Removed pointless governors
- Removed noop scheduler
- Removed OC and custom voltage
- PM_FAST (fast wifi with screen off: power saving for downloading files, but slightly higher power use when idle compared to PM_MAX)
- 1.2 GHz step
- v0.6 onward have MTP working for ROMs that support it. Krarvind is the one who made this work (donate to him here), with the help of another dev, so kudos to them.
Version History
v1.5b: http://d-h.st/BhK
-Morfic's colours fixed!
-Merged to 3.0.39
-DI fixed at 400 MHz, the most power saving state, using thalamus' code, which is stable!
-ICS ONLY!!
v1.4d http://d-h.st/66r (ICS ONLY)
-stable
-probably last version I'll do for ICS
-DI fixed at 800MHz
-reorganised fixed DI code a little
-If you have no video on MIUI, check out this tip!
v1.4b http://d-h.st/l7X
-Made some code reorganisation based on thalamus suggestion
-Created a patch!
v1.4 http://d-h.st/MoU
-Made DI fix at 800 MHz using the performance governor which saves CPU cycles
v1.4_test http://d-h.st/UOt
-Possibly unstable, please try to collect last_kmsg
-Includes new 'performance DI': When Deep Idle state is called the governor switches to performance to save CPU cycles
-DI fixed at 800MHz for stability
-thalamus' DI spinlock patch
-Mathematically sensible smartassV2 tunable settings to save CPU cycles (working well)
v1.3c: http://d-h.st/HJY
-Stable
-Minor bugfix release (bugs in freq stepping that were my own faulty code merges)
-_thalmus' DI patch
-If you have no issues with 1.3b skip this, and wait for v1.4
v1.3b http://d-h.st/n55
-Frequency stepping bugfix
-Stable (I really mean it this time ) ...so I deleted the other download links, apart from the early _thalamus based one.
-Shrank the download to a normal size: I'd forgotten to remove the redundant zImage from the any-kernel script. (I don't use that since I flash a boot image).
v1.3
-thalamus' mutex to spinlock patch has been integrated. I've tested this, as I'm sure thalamus has, and DI of course still works fine, but because this is the first time anyone has touched the DI code in a few months, I think it's safer to call this a TEST release.
-I fixed the minimum fq getting stuck 200MHz issue, which was an issue actually caused by myself: when I was altering the available OC I failed to adjust all the levels correctly.
-Having trouble with 200MHz? >Read this<
All previous releases have been pulled. Use the current stable please! Remember: enjoy marmite!
Big thanks: ...to the community! So many people supported my research that it's impossible to thank them all individually. And big thanks to the developers who have selflessly helped a total noob get his kernel off the ground. Credit goes to: KalimochoAz for representing cyanogenmod in this forum and his tweaks; _thalamus for his patience and getting me started with git and modules, correcting my misconceptions about merging; ezekeel for the mods; mathkid95 for ondemand tweaks; steve.garon for help with scripting; morfic for his advice and permission to use his colour settings; and supercurio for voodoo. Big thanks to krarvind for MTP, legend!
SOURCE: http://github.com/bedalus
Note: If you want to repost this guide, feel free to download it here (text file, includes all XDA formatting.) Please give credit.
Why would you want to build a kernel yourself?
Click to expand...
Click to collapse
Have you read this: http://forum.xda-developers.com/showpost.php?p=21006133&postcount=1144
In that spirit, I'm going to attempt to write a plain-English tutorial on what to do to build this kernel. In fact, change one or two URLs, and you could build practically any kernel!
Note: I'm assuming you're on a PC here. I'm also assuming this isn't your first trip to linux-land, and you've at least used the terminal a few times before now. I'm also going to assume that even if you are a noob, you're not mentally sub-normal.
Note2: If this is your first time building a kernel, you may want to print this out, and go slowly, and if you get stuck, post about it in the thread! It will help me improve the guide.
What makes this different to other tutorials?
Click to expand...
Click to collapse
I'm a noob at building, but a professional at teaching. It's literally my job! In my noobishness, I made good records of pretty much every step, and I've got lots of time for explaining what each step actually does.
THE STEPS
Got a computer?
Click to expand...
Click to collapse
You'll need one to compile stuff. "For Gingerbread (2.3.x) and newer versions, including the master branch, a 64-bit environment is required." (source)
OK. You're probably thinking of compiling a kernel for ICS or higher right? Is your computer only 32 bit? Pull the processor off the motherboard and count the pins. Just kidding. It won't matter if it is AMD or Intel, but it needs to be a 64 bit processor. I can compile a kernel with just 2GB of RAM and my processor is approaching its 9 year. Even with this lousy set-up, compiling a whole kernel from scratch takes only five minutes.
Install Ubuntu 10.04 64-bit. (Click on this link to download the install CD.)
If you've got a spare hard drive, use the whole thing. If you're good at partitioning, you might consider putting the linux swap partition on a separate disk. You'll want it to be at least 8GB. Putting it on a separate disk will speed things up.
If you don't have a spare disk, you're going to have to resize a partition of an existing OS, to make some new space for Ubuntu. Lets say a minimum of 12GB for the OS plus 8GB for the swap. The more space you can give to the OS, the easier your life will be if you're serious about building stuff.
At the end of the installation it will ask to install a boot-loader. This should be on sda (not sda1!) but you may need to adjust your BIOS to point at the right hard-drive if you later find it doesn't boot into Ubuntu when you restart. Don't worry about Windows, Ubuntu provides a boot menu, so you have the option of booting to Windows instead.
Once Ubuntu is installed, reboot then open a terminal and sort out your credentials:
Code:
sudo passwd root
Type in the password you set during the install, then decide on a password for the root user, and enter it once, then again for confirmation. It can be the same as your user password if you like.
Do some updates (this could take a while):
Code:
sudo apt-get update && sudo apt-get dist-upgrade
When it's finally finished, you'll have to reboot, then repeat until there's no updates left.
You're ready to set up a build environment!
Click to expand...
Click to collapse
First, you need a whole bunch of packages. You could copy and paste this into your terminal:
Code:
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" && sudo apt-get update && sudo apt-get install sun-java6-jdk
That's java sorted.
Next up is the dependencies for compiling stuff:
Code:
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32ncurses5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc libsdl-dev libesd0-dev libwxgtk2.6-dev libncurses5-dev lib32z1-dev gcc-multilib git-core && sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
Make sure ADB is initialised:
Code:
gedit /etc/udev/rules.d/51-android.rules
and copy the below into a blank text file, then edit both instances of <username> to your Ubuntu username (lower-case!) and no chevrons: ="<bedalus>" is wrong. You want ="bedalus"
Code:
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"
Now save the file!
Get hold of a Cross-Compiler
Click to expand...
Click to collapse
Follow this link to Mentor Graphics Sourcery CodeBench LITE and do a free signup to get the download link. You can get hold of other ones, like Linaro or Google's own, but I'm using this as an example, because it's the one I use, and Ezekeel published some R&D here that showed there was no measurable benefit to one toolchain over another.
When you've downloaded it, you need to copy it to /opt:
Code:
cd /home/<username>/Downloads
cp arm-some-date-some-version-some-arch.tar.bz2 /opt
Note- Obviously that's not the actual name of the file! But you can see what it's really called when you download it.
Now go to /opt and unpack it:
Code:
cd /opt
tar xjf arm-some-date-some-version-some-arch.tar.bz2
So I've got all the tools. Now what?
Click to expand...
Click to collapse
So now you need to get some source code. You can use 'git clone' if you don't plan on publishing your kernel. But if you've made some modifications and want to share your end result, you need to obey the GPL terms for the linux kernel, which is Open Source, meaning that you are required to make your source available publicly.
Go to github: https://github.com/
...and sign up. It's just a free registration provided you are non-commercial. Github has some useful getting started tutorials, which I suggest you follow:
https://help.github.com/articles/set-up-git
(just follow that first page for now. I will walk you through git in a bit...)
Next, fork a repo:
Go to whichever kernel you like: https://github.com/bedalus/bedalusKERNEL
I'm using mine as an example. Look for the big 'Fork' button.
You've now got your own copy on github, and you can do whatever you like with it, without affecting the original.
However, it's no use if it exists only in the cloud. You need to get a local copy. You'll also want something called a 'remote tracking branch', which will enable you to keep up-to-date with the changes going on in the original repository that you have forked-off from.
Critical Step:
Click to expand...
Click to collapse
Shout 'fork-off!' at the top of your voice.
Uh... okay. Now, to get a local copy, and set up your remote-tracking branches, execute:
Code:
cd /home/<username>/
mkdir mykernel
...you can name your new directory whatever you want. It doesn't have to be 'mykernel', then:
Code:
git clone https://github.com/<your github username>/bedalusKERNEL.git
In the above, put your git username, and substitute bedalusKERNEL.git for whatever your fork is called. You can actually copy and paste the URL from the top of your new github repo's page if you want.
It's going to download about 800MB if I remember correctly. This will take a while, so go have some marmite on toast.
When that's done, you're ready for the remote-tracking branch:
Code:
cd bedalusKERNEL (or whatever your fork is called)
git remote add upstream https://github.com/bedalus/bedalusKERNEL.git
git fetch upstream
The 'git remote add upstream' creates a new branch called upstream, and any changes that the original developer uploads to github can be fetched to your machine with the 'git fetch upstream' command. Notice how this time, the download time is much shorter? That's because of 'delta downloads' which only downloads the differences between what you have, and what they have. (There's some technical detail here.)
Git Tip No. 1: What branches do I have?
Click to expand...
Click to collapse
You can now enter:
Code:
git branch
...to see all your branches. At this point there should be 'origin' and 'upstream'.
Git Tip No. 2: How do I change branches?
Click to expand...
Click to collapse
Changing branches (you might as well do this now just to have a little go):
Code:
git checkout upstream
That will move you onto the upstream branch, as long as you haven't made any 'uncommited' changes in origin. (More on that later.) Change back to origin with:
Code:
git checkout origin
Git Tip No. 3: How do I rename a branch?
Click to expand...
Click to collapse
You might want to rename your branches to help personalise them, just to make remembering which is which a little bit easier. To change origin to 'my_version' do this:
Code:
git branch -m origin my_version
You can change upstream to 'their_version' or something else if you want to. It won't stop anything from working.
More Git Tips later. Let's sort out a build script. If you tinker with any code, you'll inevitably break stuff, and need to fix it, and then need to try building again... So, having a build script is going to save you a lot of time, because there are several steps that can be automated.
Here's how the start of my script looks:
Code:
#!/bin/sh
cd /home/dave/mykernel
git branch
read -p "Correct branch? [Y/N]: " -n 1
if [[ ! $REPLY =~ ^[Yy]$ ]]
then
echo -e "\n"
exit 1
fi
This is just a little precaution that I put in to give myself the chance to abort the build before it starts if I'm on the wrong branch. If I don't hit y then the script aborts, and I can checkout the right branch, then restart the script.
Code:
echo -e "\nSTARTING...\n"
The \n prints a new line, then on that new line the message 'STARTING...' and then begins another new line. If you put \n\n you can print a blank line. The echo command is a good way of putting notices in a script so you know what stage it is at.
Code:
export PATH=$PATH:/opt/toolchain/bin/
export ARCH=arm
export SUBARCH=arm
export CROSS_COMPILE=arm-none-eabi-
If you put these lines in your script, it sets 'environment variables' that tells the make program where to find the compiler, and what processor it's compiling for (ARM).
If you now save your script in the /mykernel directory you created earlier, git can keep track of it as well as the files integral to the kernel. Save it as whatever you like, e.g. "myscript.sh"
...It's important to have the .sh extension so the system knows it is a script.
To make your script executable, run:
Code:
chmod a+x myscript.sh
Before you execute the script, you need a .config file in the mykernel directory. If you've cloned my repo, you can get a working one by executing:
Code:
cp arch/arm/configs/crespo_release_defconfig ./.config
...this command will only work properly if you are in the mykernel directory when you execute it.
You can mess with this config file if you like! But it's very easy to break the kernel. However, you can always just copy the crespo_release_defconfig again.
Now, to execute the build script run:
Code:
./myscript
If you execute your script, your compiler will now build the kernel. It will take time, but even on my ten-years-old PC it takes less than ten minutes from scratch.
The compiler will spit out a lot of messages. Most of the time it's telling you that it has compiled an object (i.e. a .o file, which will all be linked up later to form the kernel) and sometimes you'll see warnings, which is the compiler telling you it thinks something might be wrong. Don't worry, most of the time the compiler is just being over-cautious.
If the compiler hits a real problem with the code, it will print an error, and tell you what file, and what line, and how far along that line it managed to get to before it didn't know what to do. I'll get back to this later. For now, let's assume everything compiled.
You'll see a message about the zImage being created. That's the kernel. You can't use it as it is, you need to put it into a boot.img so you can flash it.
I find it useful to add this command in my build-script:
Code:
ls -l /home/dave/mykernel/arch/arm/boot/zImage
ls -l means list with long format. It'll print out the entire contents of a directory with size, time, permissions, etc. if you execute it in a directory, or point it to a directory. However, in the command above, I've pointed it specifically at the zImage file, so it only prints out the details for that. This is so I can check the time. If the time is from yesterday, I can see quickly that there has been an error in the build, and the zImage is still the same one I built yesterday, or an hour ago... etc. depending on the time-stamp printed out.
If you get a 'No such file' error, it's because there is no old zImage, because you haven't ever successfully built one yet.
If you sat and watched the entire thing build, then the timestamp should show the current time, minus a few seconds.
How do I make this zImage into a CWM flashable .zip file?
Click to expand...
Click to collapse
Yay! You've built a kernel. Now you need to make everybody else flash it to their phones too
To do this you need to put it into a boot.img, and then into a .zip file.
Making the boot.img
Click to expand...
Click to collapse
Download this: http://d-h.st/wVZ (make-boot necessary files)
It's a small download. It's some very simple tools that can split an existing boot image into a ramdisk and zImage, and can also stitch them back up.
Move mkboot.zip into your mykernel folder, right click on it, and select 'Extract Here'. You can now delete mkboot.zip. There is a tool called unbootimg, that can take apart existing boot.img files, I've made things simple by including my own ramdisk, which is compatible with AOSP and CM ROMs. That file is called cyan2disk_new.cpio.gz
We now need to add some new stuff to the script to stitch our zImage and ramdisk together.
If you've not already added the ls -l command I mentioned above, also add this now. Then:
Code:
cp /home/dave/mykernel/arch/arm/boot/zImage /home/dave/mykernel/mkboot/
cd /home/dave/mykernel/mkboot
./mkbootimg --kernel zImage --ramdisk cyan2disk_new.cpio.gz --cmdline 'no_console_suspend=1 console=bull's --base 0x30000000 --pagesize 4096 -o boot.img
Remember, your username is not dave! Unless it is. Make the appropriate changes to the path.
How do I make the CWM flashable .zip file?
Click to expand...
Click to collapse
We're nearly there! This bit is relatively painless. At this point you could save and run the script to check that mkboot is working. If it has worked you can use the same ls -l trick from before, but this time target the boot.img file you just created. If the time-stamp is fresh, it means your boot.img is correct.
TIP: If you haven't switched branches, or run 'make clean', all your .o files are unchanged. The make program keeps track of changes, and only recompiles .o files when the corresponding .c file has been altered. If nothing has changed, your build script will execute very quickly!
To make a flashable .zip file, the easiest thing to do is modify an existing .zip file. You can download my kernel for simplicity, since it already has the necessary script for flashing the entire boot partition. (Most kernels here use koush's any-kernel script, which updates only the zImage and keeps the boot partition's existing ramdisk, so if you try to use another kernel .zip as a template, make sure you correct their updater-script. Using my ramdisk and kernel script will also ensure you keep MTP!)
Once you've downloaded my kernel you should extract it in your home folder, then rename the directory to something like 'myzip'
Now add these lines to your build-script:
Code:
cp /home/dave/mykernel/mkboot/boot.img /home/dave/myzip/boot.img
cp /home/dave/mykernel/drivers/scsi/scsi_wait_scan.ko /home/dave/myzip/system/modules/
"What's that second line? With the .ko file?" I hear you say. Depending on what modules you build, you'll need to copy all of them to the folder specified above. Fortunately, when the kernel finishes building, it tells you what modules have also been built. If you don't want modules in your kernel, you can remove the second line above. However, you must edit your .config file: Open it in gedit, use CTRL+F to open the find dialogue, then type "=m" Now, change every one you find into a "=y" ...so now instead of building modules, the kernel will now incorporate all that code into the zImage instead.
Finally, add this line to your build-script:
Code:
7z a -r -tzip /home/dave/mykernel.zip /home/dave/myzip/*
Run the script again. if everything has gone smoothly, then you now have a flashable .zip in your home directory!
Congratulations!
* * * * * * * * *
More git tips!
Click to expand...
Click to collapse
I've compiled a list of commands you may find handy when getting to know git.
Add a remote branch and track it
git remote add ezekeel git://github.com/Ezekeel/GLaDOS-nexus-s-ics.git
git fetch ezekeel
git checkout --track -b bln ezekeel/bln
Merge in the changes
git merge bln
Resolve conflicts
git mergetool
List local branches
git branch
List remote branches
git branch -r
Switch branch
git checkout branch_name
Rename a branch
git branch -m old_branch_name new_branch_name
View log with short sha1 hash
git log -10 --pretty=format:"%h - %ar: %s"
Restore to a particular point
(IMPORTANT! Don't do this if you've already pushed your commits to github!)
git reset --hard <sha1 hash>
Restore to your last commit
git reset --hard HEAD
Restore to one commit before your last commit:
git reset --hard HEAD^
Restore to two commits before your last commit:
git reset --hard HEAD^^ (etc.)
As long as you haven't pushed to github,
squash all your recent commits into one:
git rebase -i <sha1> ...then change push to squash (or fixup) for all except the first one
git rebase -i --abort (to abort!)
Add .file (i.e. hidden file)
git add .file (simple!)
Add all new and modified files
git add .
Deleting files
(i.e. after doing rm <files>)
git add -u (git will note which files have been deleted)
Bring files from a directory in another branch
git checkout cyanogenmod drivers/cpufreq/
Tells you what changes you've made so far
git status
Commit your changes
git commit (type in your notes about what you did, then CTRL+X then Y to save)
Sync your commits to your github repo
git push <repo_name> <branch_name>
Delete a remote branch
(WARNING: This will delete the entire branch from github
Note: You cannot do this to the default github branch, but you can change the default branch in the admin tab on the website)
git push <repo_name> :<branch to be deleted>
General tips! File management, searching... etc.
Click to expand...
Click to collapse
Find a file (useful for troubleshooting in some situations)
find /home/dave/ -name 'buildlean.sh'
(searches the home folder and subdirectories for 'buildlean.sh')
Find within any *.c file, the text "s5pv210_driver" (good for finding bits of code)
find ./ -type f -name *.c | xargs grep s5pv210_driver
Find within any file, the text "s5pv210_driver" (good for finding bits of code)
find ./ -type f | xargs grep s5pv210_driver
bedalus said:
Thalamus recently changed the way he compiles his kernel. This was his previous stable release, based on Samsung source code.
The cyann.mobi adds bln, touchwake. Features that thalamus has said are unnecessary.
Click to expand...
Click to collapse
bedalus Hello, I can add this kernel to the list I made on the kernel and rom?
Yes, but be sure to give credit to the right people.
I've decided to attempt to build my own version of thalamus' kernel with some mods.
If I'm not too retarded, hopefully i can achieve this in the next few days.
As a result of learning to manage git and c, I'll have less time for forum posts.
bedalus said:
Yes, but be sure to give credit to the right people.
I've decided to attempt to build my own version of thalamus' kernel with some mods.
If I'm not too retarded, hopefully i can achieve this in the next few days.
As a result of learning to manage git and c, I'll have less time for forum posts.
Click to expand...
Click to collapse
Looking forward to this
Sent from my Nexus S 4G using xda premium
bedalus said:
Yes, but be sure to give credit to the right people.
I've decided to attempt to build my own version of thalamus' kernel with some mods.
If I'm not too retarded, hopefully i can achieve this in the next few days.
As a result of learning to manage git and c, I'll have less time for forum posts.
Click to expand...
Click to collapse
This is good news, Dave. I've been hearing a lot of good things about the new stable release of thalamus in the thread for his kernel that I've been moderating. However, a lot of people including me will be missing BLD and BLN so it's nice to see how it would perform with these mods. With those two plus Voodoo sound that's already cooked in the last release, this may be a kernel to be reckoned with. Cheers!
Sent from my Nexus S
bedalus said:
Thalamus recently changed the way he compiles his kernel. This was his previous stable release, based on Samsung source code.
The cyann.mobi adds bln, touchwake. Features that thalamus has said are unnecessary.
Click to expand...
Click to collapse
waiting for bedalus thalamus base plus addons
an interesting benchmark would be bedalus vs thalamus
Off-Topic: I've been discussing with thalamus about the need for a dalvik wipe before flashing a kernel, and he had some pretty convincing arguments against it. You can read his statement here.
Just wanted to get your opinion on this, if you have time. Thanks, Dave.
Sent from my Nexus S
jjhrrsn said:
Looking forward to this
Sent from my Nexus S 4G using xda premium
Click to expand...
Click to collapse
+1. Me too! Would be nice to have voodoo color included.
ironia. said:
waiting for bedalus thalamus base plus addons
an interesting benchmark would be bedalus vs thalamus
Click to expand...
Click to collapse
Thalamus wins,
REMATCH!
Thalamus wins again.
Good news, BLN added. I now know what I'm doing with the code merges, so more features to come soon.
Later on I may start trying to make some original mods, but for now we'll focus on existing ones.
Thanks to thalamus for his help with some extremely noobish questions,
...thalamus' latest but with added BLN and marmite.
To Do
Get organised
Push back to github so changes can be observed
Get some sleep
bedalus said:
Thalamus wins,
REMATCH!
Thalamus wins again.
Good news, BLN added. I now know what I'm doing with the code merges, so more features to come soon.
Later on I may start trying to make some original mods, but for now we'll focus on existing ones.
Thanks to thalamus for his help with some extremely noobish questions,
Here: http://d-h.st/Df6
...thalamus' latest but with added BLN and marmite.
To Do
Get organised
Push back to github so changes can be observed
Get some sleep
Click to expand...
Click to collapse
Lol at marmite.
Sent from my Nexus S®
apatal said:
Off-Topic: I've been discussing with thalamus about the need for a dalvik wipe before flashing a kernel, and he had some pretty convincing arguments against it. You can read his statement here.
Just wanted to get your opinion on this, if you have time. Thanks, Dave.
Sent from my Nexus S
Click to expand...
Click to collapse
Yeah, i agree with thalamus. I only wipe when switching ROMs.
I modified the script so it doesn't bother wiping cache or dalvic-cache
This makes flashing much more painless.
If anyone has trouble, reboot into recovery and wipe cache.
apatal provides some handy scripts for wiping: http://forum.xda-developers.com/showthread.php?p=19746141
To be completely honest, I wouldn't have been so helpful had I known you intended to release this, specially without saying anything to me about it.
I fully accept that the GPL doesn't require permission but to ask is both the polite and respectful thing to do.
The majority of others have always when they have wanted to release my work with superficial alterations...all it takes is 'I plan on doing this, what do you think?'
I have never had any objection, but to be asked first is just common courtesy, specially when you are asking me for help! You had plenty of chance to mention it whilst I was assisting you with your queries via email.
But hey...
_thalamus said:
To be completely honest, I wouldn't have been so helpful had I known you intended to release this, specially without saying anything to me about it.
I fully accept that the GPL doesn't require permission but to ask is both the polite and respectful thing to do.
The majority of others have always when they have wanted to release my work with superficial alterations...all it takes is 'I plan on doing this, what do you think?'
I have never had any objection, but to be asked first is just common courtesy, specially when you are asking me for help! You had plenty of chance to mention it whilst I was assisting you with your queries via email.
But hey...
Click to expand...
Click to collapse
From what i see here... Give him the big daddy credits as you used his sources...
_thalamus said:
To be completely honest, I wouldn't have been so helpful had I known you intended to release this, specially without saying anything to me about it.
I fully accept that the GPL doesn't require permission but to ask is both the polite and respectful thing to do.
The majority of others have always when they have wanted to release my work with superficial alterations...all it takes is 'I plan on doing this, what do you think?'
I have never had any objection, but to be asked first is just common courtesy, specially when you are asking me for help! You had plenty of chance to mention it whilst I was assisting you with your queries via email.
But hey...
Click to expand...
Click to collapse
Sorry, links pulled.
bedalus said:
Sorry, links pulled.
Click to expand...
Click to collapse
Too bad i was diggin the marmite just now lol
Sent from my Nexus S®
I feel quite bad now. I don't know what possessed me to release without getting the okay first. Eager to show off i think.
I'll get this thread locked as a lesson to myself!
bedalus said:
I feel quite bad now. I don't know what possessed me to release without getting the okay first. Eager to show off i think.
Click to expand...
Click to collapse
We're not perfect we have our own mistakes in life
Sent from my Nexus S®
Actually thalamus is fine for me to release this! Yay. Thanks thalamus.
Links will reappear when the OP is properly organised and credited.
This information is purely for devs wanting to add HALO to their CM 10.1 based ROM so they don't have to deal with the same merge conflicts from ParanoidAndroid that I've taken care of. There's nothing here you can flash, etc.
This isn't specific to the Optimus 4X HD, but I'm just posting it here because it's the only place I know.
Workflow might be something like:
Code:
$ repo sync
$ cd frameworks/base
$ git tag cm-head
$ git checkout f90658c55fbf7b21a80b5f75b1760839484278fd # Merge "framework: Update German translation" into cm-10.1
$ git apply ../../halo-for-cm-framework-base-d76f23efbc101e14d3423b8dd0645d64f7425555-for-f90658c55fbf7b21a80b5f75b1760839484278fd.patch # HALO: new drawables for hdpi and mdpi
$ git commit -m 'Add HALO'
$ git tag halo
$ git checkout cm-head
$ git merge -m 'Merge HALO' halo # There might be trivial merge conflicts here
$ git tag -d cm-head
$ git tag -d halo
There's also changes to the Settings app, but those are trivial.
arararagi said:
This information is purely for devs wanting to add HALO to their CM 10.1 based ROM so they don't have to deal with the same merge conflicts from ParanoidAndroid that I've taken care of. There's nothing here you can flash, etc.
This isn't specific to the Optimus 4X HD, but I'm just posting it here because it's the only place I know.
Workflow might be something like:
Code:
$ repo sync
$ cd frameworks/base
$ git tag cm-head
$ git checkout f90658c55fbf7b21a80b5f75b1760839484278fd # Merge "framework: Update German translation" into cm-10.1
$ git apply ../../halo-for-cm-framework-base-d76f23efbc101e14d3423b8dd0645d64f7425555-for-f90658c55fbf7b21a80b5f75b1760839484278fd.patch # HALO: new drawables for hdpi and mdpi
$ git commit -m 'Add HALO'
$ git tag halo
$ git checkout cm-head
$ git merge -m 'Merge HALO' halo # There might be trivial merge conflicts here
$ git tag -d cm-head
$ git tag -d halo
There's also changes to the Settings app, but those are trivial.
Click to expand...
Click to collapse
Great I have also tried to figure out the magic...good work :thumbsup:
best regards SnXo
How hard would it be to implement this into existing CM10 nightlies?
we're waiting for a port or even better a flashable zip!
good work guys!
juanacevedo said:
How hard would it be to implement this into existing CM10 nightlies?
Click to expand...
Click to collapse
you can't just implement it into a compiled rom. this is source code only
in MokeeOS its fully functional implemented
thaaaank you, working on a little miui project, this could make it more fun
leris2 said:
we're waiting for a port or even better a flashable zip!
good work guys!
Click to expand...
Click to collapse
There's already one: http://forum.xda-developers.com/showthread.php?t=2253129
you easily cherry-pick both merges by choosing the parent carefully and build
arararagi said:
This information is purely for devs wanting to add HALO to their CM 10.1 based ROM so they don't have to deal with the same merge conflicts from ParanoidAndroid that I've taken care of. There's nothing here you can flash, etc.
This isn't specific to the Optimus 4X HD, but I'm just posting it here because it's the only place I know.
Workflow might be something like:
Code:
$ repo sync
$ cd frameworks/base
$ git tag cm-head
$ git checkout f90658c55fbf7b21a80b5f75b1760839484278fd # Merge "framework: Update German translation" into cm-10.1
$ git apply ../../halo-for-cm-framework-base-d76f23efbc101e14d3423b8dd0645d64f7425555-for-f90658c55fbf7b21a80b5f75b1760839484278fd.patch # HALO: new drawables for hdpi and mdpi
$ git commit -m 'Add HALO'
$ git tag halo
$ git checkout cm-head
$ git merge -m 'Merge HALO' halo # There might be trivial merge conflicts here
$ git tag -d cm-head
$ git tag -d halo
There's also changes to the Settings app, but those are trivial.
Click to expand...
Click to collapse
Hey! Im just building my CM10.1 from source, but I have not a big idea of patching. Will this give me a working HALO?
Also I would need the HDPI drawables I guess :/ https://github.com/tonyp/android_frameworks_base/commit/d76f23efbc101e14d3423b8dd0645d64f7425555
I dont want to test it blindly, as I don't know how to revert patches.
I'm not using an Optimus 4. Im on Sony Xperia Ray and there is no HALO ROM till now :/
Thanks for your help!
This patch includes that commit. To revert, git reset --hard
arararagi said:
This patch includes that commit. To revert, git reset --hard
Click to expand...
Click to collapse
Thank you!
Sadly the patch did not work for me :/
Code:
target Java: apache-xml (/media/tim/Cyanogenmod/CM10.1/android/system/out/target/common/obj/JAVA_LIBRARIES/apache-xml_intermediates/classes)
frameworks/base/packages/SystemUI/res/layout/halo_bubble.xml:13: error: Error: No resource found that matches the given name (at 'src' with value '@drawable/halo_bg').
frameworks/base/packages/SystemUI/res/layout/halo_number.xml:8: error: Error: No resource found that matches the given name (at 'background' with value '@drawable/halo_number').
frameworks/base/packages/SystemUI/res/layout/halo_speech.xml:17: error: Error: No resource found that matches the given name (at 'background' with value '@drawable/bubble_black_r').
frameworks/base/packages/SystemUI/res/layout/halo_speech.xml:31: error: Error: No resource found that matches the given name (at 'background' with value '@drawable/bubble_black_l').
frameworks/base/packages/SystemUI/res/layout/status_bar_expanded_header.xml:77: error: Error: No resource found that matches the given name (at 'src' with value '@drawable/ic_notify_halo_normal').
make: *** [/media/tim/Cyanogenmod/CM10.1/android/system/out/target/common/obj/APPS/SystemUI_intermediates/src/R.stamp] Fehler 1
make: *** Warte auf noch nicht beendete Prozesse...
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Looks like all drawables are missing :/
And was is actually about updates for HALO?
Sadly paranoid androids Gerrit is not working. How can I track their changes? And how can I cherry pick like from the review.cyanogenmod.com?
Thanks for your help
The drawables are definitely in the patch. Did you get any messages when you applied the patch?
arararagi said:
This information is purely for devs wanting to add HALO to their CM 10.1 based ROM so they don't have to deal with the same merge conflicts from ParanoidAndroid that I've taken care of. There's nothing here you can flash, etc.
This isn't specific to the Optimus 4X HD, but I'm just posting it here because it's the only place I know.
Workflow might be something like:
Code:
$ repo sync
$ cd frameworks/base
$ git tag cm-head
$ git checkout f90658c55fbf7b21a80b5f75b1760839484278fd # Merge "framework: Update German translation" into cm-10.1
$ git apply ../../halo-for-cm-framework-base-d76f23efbc101e14d3423b8dd0645d64f7425555-for-f90658c55fbf7b21a80b5f75b1760839484278fd.patch # HALO: new drawables for hdpi and mdpi
$ git commit -m 'Add HALO'
$ git tag halo
$ git checkout cm-head
$ git merge -m 'Merge HALO' halo # There might be trivial merge conflicts here
$ git tag -d cm-head
$ git tag -d halo
There's also changes to the Settings app, but those are trivial.
Click to expand...
Click to collapse
I have a question
If I want to embed it on another rom as BAKED, is the same procedure? Or there are some differences?
franzyroy said:
I have a question
If I want to embed it on another rom as BAKED, is the same procedure? Or there are some differences?
Click to expand...
Click to collapse
You can cherry pick the commits from paranoid androids github. Just during the merge choose the right parent.
Yes this methods should work on all ROMs .
Sent from my Nexus 7 using Tapatalk 4 Beta
Red Devil said:
You can cherry pick the commits from paranoid androids github. Just during the merge choose the right parent.
Yes this methods should work on all ROMs .
Sent from my Nexus 7 using Tapatalk 4 Beta
Click to expand...
Click to collapse
OK Thanks!
arararagi said:
There's also changes to the Settings app, but those are trivial.
Click to expand...
Click to collapse
You say the changes are trivial... but maybe this will be interesting to know them! Because in the Settings app, it's to set your settings, style those of Halo. You don't think?
Red Devil said:
You can cherry pick the commits from paranoid androids github. Just during the merge choose the right parent.
Yes this methods should work on all ROMs .
Sent from my Nexus 7 using Tapatalk 4 Beta
Click to expand...
Click to collapse
Where is the cherry pick please?
there are 2 commits.. one of them in frameworks/base and one in settings..
search for them
they are labelled as " HALO(1/2) and HALO(2/2)
Red Devil said:
there are 2 commits.. one of them in frameworks/base and one in settings..
search for them
they are labelled as " HALO(1/2) and HALO(2/2)
Click to expand...
Click to collapse
I already saw before but I have no experience how to add these commits ... can you explain me how add them?
For all the things you can do in Android
somewhere someone has made a great definitive guide
that will help to both guide you
and provide a basic understanding of the steps involved
assuring you of success in your android tweaking endeavour.
This is not one of those guides.
I'm going to do my best to articulate my
dysfunctional
and admitted retardation
of an understanding of git.
I'll provide some links to guides I have found
so you can check them out and hopefully get a better grasp than I.
When you do, post your tips and tricks here..
I will add links to any posts with tips tricks or guides so you get your proper credit.
(if your into that sorta thing)
This guide is in no particular order and
is subject to random mistakes and inaccuracies.
I will be putting all git commands in red
If it's in red you can assume you just type that and hit enter.
What is Git?
Git is a tool used to manage projects housed on github and/or locally on your machine. For a greater understanding and comprehensive guide try gitready.com
Cloning
The simplest of things to do with git. Same steps to clone any repository be it your own or one from another github.
git clone <URL of your repository on github> -b <branch> (name of repo)
Example:
Code:
[COLOR="Red"]git clone [email protected]:jamieg71/kernel.git -b master msm8960
[/COLOR]
This tells it what to clone, denotes the branch with -b in this case branch
name is 'master' and finally (name of repo) tells git what you wish for your
cloned repository to be named in this case 'msm8960'.
Making commits & Pushing
Let's say you want to make a couple changes to an app and then push those changes back to github,
we'll use ROMControl for an example.
Navigate to root of ROMControl directory.
First do
repo start ska43 .
Here use the name of the branch you are on, for SofaKingAndroid 4.3 it's "ska43",
also include the dot [space dot] "." at the end of the command.
If instead of working within the rom source in /packages/apps/ you
instead had cloned ROMControl to it's own seperate folder, this is not necessary.
Some helpful commands-
gitk a helpful GUI for git
git status
This will give you an update of what branch you are on and what if any changes have been made.
git log
Will give you a commit history with change ID's commit messages authors time stamps etc,
it can be very handy when looking for specific commits to cherry-pick or revert. This should
show the complete history of a given project with all contributions along the way. To exit this
quickly hit the "q" key.
git reflog
This will give you a short history of your local cloned repository listing each seperate head
Click to expand...
Click to collapse
Once you've made your changes, (and built to be sure everything works as planned....)
git status Just for a reference of what you've done, it will also show any files with a "~" in case your like me and occasionally screw up
To stage changes before committing you have multiple options-
git add .
This will add ALL changed files, sometimes it's handy but if you have done several unrelated
things it can be nice to have them in separate commits with their own commit messages and ID's
git add -a
Same as above
git add (directory/name of file) Example: git add src/com/aokp/romcontrol/AOKPActivity.java
The easiest way to do this, for me, is to just c/p the names of modified files
from the list after running git status
Click to expand...
Click to collapse
Now to commit-
git commit -m 'your message here' Put a brief description of what your commit involves
To Push-
git push <URL of your repository on github>
Example:
Code:
[COLOR="Red"]git push [email protected]:SofaKingAndroid/packages_apps_ROMControl.git[/COLOR]
Fetching Upstream Changes
What if you had forked a project and been working on it for awhile, and you notice there where changes to the original source. Now you need to pull in upstream changes. To do this let's clone our fork to it's own folder on our machine-
We will assume you work in ~/android/ and know how to mkdir upstrm4krnl && cd upstrm4krnl
git clone <URL of your repository on github> -b <branch> (name of repo)
Example:
Code:
[COLOR="Red"]git clone [email protected]:jamieg71/kernel.git -b master msm8960[/COLOR]
This tells it what to clone, denotes the branch with -b in this case branch
name is 'master' and finally (name of repo) tells git what you wish for your
cloned repository to be named in this case 'msm8960'.
To add a remote repository to fetch upstream changes, (where you forked from)
git remote add upstream <URL of remote repository>
Example:
Code:
[COLOR="Red"]git remote add upstream [email protected]:CyanogenMod/android_kernel_htc_msm8960.git[/COLOR]
[COLOR="Red"]git fetch upstream [/COLOR]
This will add the log and pre stage all the changes on the remote repository.
After doing this Be aware of what your intentions are. If there have only been
minor changes with low likelyhood of major conflicts go ahead with merge.
Otherwise it may be best to cherry-pick specific changes.
To add these changes to your working files you have some options, I'm positive these are not the extent of those options but perhaps someone with better know-how will chime in....
[quote]
[COLOR="Red"]git merge upstream/master[/COLOR]
This merges all commits from both the upstream repository and any commits
you made to your forked repo.
[COLOR="Red"]git pull upstream/master[/COLOR]
This will pull in changes only from the remote repository[/quote]
For a better explanation see [url="http://eagain.net/articles/git-for-computer-scientists/#history"]Git for Computer Scientists[/url]
Now do-
[COLOR="Red"]git checkout master[/COLOR]
This should return you to your working branch
of course do a [COLOR="Red"]git status[/COLOR]
Finally do-
[COLOR="Red"]git add .[/COLOR]
[COLOR="Red"]git commit -m 'commit message'[/COLOR]
[COLOR="Red"]git push[/COLOR]
From cloned repo a simple git push should suffice. If not go ahead
and do git push <URL of your forked repo>
Example: [code][COLOR="Red"]git push [email protected]:jamieg71/kernel.git[/COLOR]
Cherry-picking
What is cherry-picking? Simple answer- grabbing commits from a different repo and adding to your own.
Here's some links-
Cherry-Pick-Manual from Kernel.org it don't 'git' more comprehensive than that.
Gitready Guide Greate guide for beginners to experts
I never really got it until I found this on Pastebin. Unknown author or I'd give em creds in all my threads.
And another here it has a different take at the begining
A multitude of guides can be found on Google, I have found the majority take for granted there is a roofer trying to follow them and don't necessarily explain some of the simple things. Which is always what screws me up..
Here's what works for me. I'm going to c/p a session from terminal and will highlight the actual git commands in red and add notes in green (0)
Code:
[email protected]:~/android/sofa/frameworks$ [COLOR="Red"]git clone [email protected]:SofaKingAndroid/frameworks_base.git -b ska43 base[/COLOR]
Cloning into 'base'...
remote: Counting objects: 796444, done.
remote: Compressing objects: 100% (192783/192783), done.
remote: Total 796444 (delta 525643), reused 795809 (delta 525149)
Receiving objects: 100% (796444/796444), 1.06 GiB | 6.67 MiB/s, done.
Resolving deltas: 100% (525643/525643), done.
Checking out files: 100% (21192/21192), done.
[email protected]:~/android/sofa/frameworks$ cd base
[email protected]:~/android/sofa/frameworks/base$ [COLOR="Red"]git status[/COLOR]
# On branch ska43
nothing to commit, working directory clean
[email protected]:~/android/sofa/frameworks/base$ [COLOR="Red"]git remote add ok [email protected]:AOKP/frameworks_base.git[/COLOR] [COLOR="SeaGreen"](1)[/COLOR]
[email protected]:~/android/sofa/frameworks/base$ [COLOR="Red"]git fetch ok[/COLOR]
remote: Counting objects: 40, done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 23 (delta 14), reused 12 (delta 3)
Unpacking objects: 100% (23/23), done.
From github.com:AOKP/frameworks_base
* [new branch] jb -> ok/jb
* [new branch] jb-broke -> ok/jb-broke
* [new branch] jb-mr1 -> ok/jb-mr1
* [new branch] jb-mr2 -> ok/jb-mr2
[email protected]:~/android/sofa/frameworks/base$ [COLOR="Red"]git cherry-pick 4829174d6f6fa33cd51f2bde9df2e100420ef3bf[/COLOR] [COLOR="SeaGreen"](2)[/COLOR]
[ska43 f8380a3] SystemUI: 4G/LTE icon toggle
Author: Roman Birg <[email protected]>
2 files changed, 17 insertions(+), 2 deletions(-)
[email protected]:~/android/sofa/frameworks/base$ [COLOR="Red"]git status[/COLOR]
# On branch ska43
# Your branch is ahead of 'origin/ska43' by 1 commit.
# (use "git push" to publish your local commits)
#
nothing to commit, working directory clean
[email protected]:~/android/sofa/frameworks/base$ [COLOR="Red"]git remote add upstream [email protected]:SofaKingAndroid/frameworks_base.git[/COLOR] [COLOR="SeaGreen"](3)[/COLOR]
[email protected]:~/android/sofa/frameworks/base$ [COLOR="Red"]git push[/COLOR]
Counting objects: 31, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (13/13), done.
Writing objects: 100% (16/16), 1.61 KiB, done.
Total 16 (delta 10), reused 0 (delta 0)
To [email protected]:SofaKingAndroid/frameworks_base.git
05ade0e..f8380a3 ska43 -> ska43
Notes
1) git remote add (initials) <URL of repository to grab commits>
The initials are what you make em, I used "ok"
2) git cherry-pick <Change ID or SHA of commit you want>
To find the change ID refer to commit history for
the project you are working on after fetch
you may be able to do git log and find the
change ID you want.
3) git remote add upstream <URL of your github repository>
Pretty sure I could have done git checkout ska43 and
it would have returned me to my working files, but I
wasn't sure so I did it this way.
This is an example of a very simple cherry-pick with no conflicting code. Most times when cherry-picking there will be many conflicts. You can use gitk (a GUI for git) to help resolve conflicts and get ready to merge.
More to come.
If you see a mistake or have anything to add
please by all means
respond in this thread.
More to come-
reserved
Great Guide .!
Thanks for this one! Bookmarked!
haha, love the title, thanks for the laugh and useful info!
Nice work Jamie!
-Mike
Great work there Jamie!
Good Job! Lots of work went into this along with a sense of humor.
forking in another way
git remote add fork <url of fork>
git fetch fork
git checkout -b fork_branch fork/<branch>
example :-
I want to fork https://github.com/omnirom/android_frameworks_av android-4.4 branch into https://github.com/Legacy-Xperia/android_frameworks_av xyz branch
make a directory as you wish in your PC/COMP
git init
git pull https://github.com/Legacy-Xperia/android_frameworks_av.git
git remote add fork https://github.com/omnirom/android_frameworks_av
git fetch fork
git checkout -b xyz fork/android-4.4
done then push it
PS:- You can directly fork using browser but i love working via terminal
You can also add gitg in OP, it's a great software for working with git.
Sent from my EMVIRUS Sensation XL ! using XDA Premium 4 mobile app
excellent guide jamie
great job as always :beer:
percy_g2 said:
forking in another way
git remote add fork <url of fork>
git fetch fork
git checkout -b fork_branch fork/<branch>
example :-
I want to fork https://github.com/omnirom/android_frameworks_av android-4.4 branch into https://github.com/Legacy-Xperia/android_frameworks_av xyz branch
make a directory as you wish in your PC/COMP
git init
git pull https://github.com/Legacy-Xperia/android_frameworks_av.git
git remote add fork https://github.com/omnirom/android_frameworks_av
git fetch fork
git checkout -b xyz fork/android-4.4
done then push it
PS:- You can directly fork using browser but i love working via terminal
Click to expand...
Click to collapse
Nice, thanks for the alternate means.
Nico_60 said:
You can also add gitg in OP, it's a great software for working with git.
Click to expand...
Click to collapse
I've been inactive for some time now dang life gets in the way of me hobby. Next time I'm in the PC I'll add this as well as Percy_g2 method. Thanks for the input.
youdug said:
excellent guide jamie
great job as always :beer:
Click to expand...
Click to collapse
Hey hey, I see you doing some great stuff over in the G2 forum. Great stuff buddy!
Sent from my EVO using Tapatalk
http://www.youtube.com/watch?v=ZDR433b0HJY
Interesting talk about how git works(rebase,merge,pull,push,status etc) and more info
Note : this thread is intended only for dev disscusion , working as i m getting things mixed in my beanstalk thread So, decided to create this thread thanks @DomusX10 and @[NUT] for idea
this is work to make Kitkat working on xperia 2011 devices
Source : github.com/cyanogemod
https://github.com/rebelos/msm7x30-3.4.x-nAa
Test Build 1 link :- http://www.mediafire.com/download/5zkr6d5dxzl7zdr/cm-11-20131110-UNOFFICIAL-anzu.zip
Test Build #2
Link : http://www.mediafire.com/download/ww4p6srrs0d58kd/cm-11-20131118-UNOFFICIAL-anzu.zip
Add this line in build prop before flashing..
Code:
#ADB
ro.debuggable=1
persist.sys.usb.config=adb
thank you!
current status : stuck at bootanim [on build #1] on build #2 needed to be verified
credits : Mikeioannia , legacy xperia , saki3d ,cyanogenmod , fxp ,szezso , munjeni
how to build guide
Code:
[B]How To Make Your Own Cm_11 builds for Anzu , urushi and smultron[/B]
1. mkdir cm
2. repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
3. mkdir -p ~/cm/.repo/local_manifests
4. curl https://raw.github.com/rebelos/local_manifests/cm-11.0/semc.xml > ~/cm/.repo/local_manifests/semc.xml
5. repo sync -j1
6. curl https://raw.github.com/rebelos/local_manifests/cm-11.0/updates.sh > ~/cm/updates.sh
7. chmod a+x updates.sh
8. ./updates.sh
9. cd ~/cm/vendor/cm
10. ./get-prebuilts
11. cd ~/cm
12. . build/envsetup.sh
13. breakfast <device>
14. brunch <device>
guys build it .. try it.. debug it ..
[Dev][Krt16m][4.4] unofficial_cyanogenmod-11
I am running now the 4.4 on my n4 it don't have new kernel but it have some new resources that the devs will take and they optimization the performance.. My n4 flying I hope to see my arc s flying to..
Sent from my Nexus 4 using XDA Premium 4 mobile app
nokiagye said:
I am running now the 4.4 on my n4 it don't have new kernel but it have some new resources that the devs will take and they optimization the performance.. My n4 flying I hope to see my arc s flying to..
Sent from my Nexus 4 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
this evening I read about which sony device reiceve kitkat, and I read that xperia V and T will receive 4.3 officially.
Hope of 4.4 on Arc S never die. Obviously with a cooked ROM from xda...:good:
[Dev][Krt16m][4.4] unofficial_cyanogenmod-11
any experienced user here who knows how to do logcat cause i needed few testers for 4.4
[Dev][Krt16m][4.4] unofficial_cyanogenmod-11
officiallysonyrebel said:
any experienced user here who knows how to do logcat cause i needed few testers for 4.4
Click to expand...
Click to collapse
OK i can test and maybe ask @besttt & @vishal_android freak
which link to download?
cheers
officiallysonyrebel said:
any experienced user here who knows how to do logcat cause i needed few testers for 4.4
Click to expand...
Click to collapse
stuck with me at kernel logo using provided kernel
Cheers
[Dev][Krt16m][4.4] unofficial_cyanogenmod-11
elguneid said:
Me too confused about that ...
Sent from my LT18i using xda app-developers app
Click to expand...
Click to collapse
fixed....
Code:
[B]How To Make Your Own Cm_11 builds for Anzu , urushi and smultron[/B]
1. mkdir cm
2. repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
3. mkdir -p ~/cm/.repo/local_manifests
4. curl https://raw.github.com/rebelos/local_manifests/cm-11.0/semc.xml > ~/cm/.repo/local_manifests/semc.xml
5. repo sync -j1
6. curl https://raw.github.com/rebelos/local_manifests/cm-11.0/updates.sh > ~/cm/updates.sh
7. chmod a+x updates.sh
8. ./updates.sh
9. cd ~/cm/vendor/cm
10. ./get-prebuilts
11. cd ~/cm
12. . build/envsetup.sh
13. breakfast <device>
14. brunch <device>
guys build it .. try it.. debug it ..
[Dev][Krt16m][4.4] unofficial_cyanogenmod-11
officiallysonyrebel said:
fixed....
Code:
[B]How To Make Your Own Cm_11 builds for Anzu , urushi and smultron[/B]
1. mkdir cm
2. repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
3. mkdir -p ~/cm/.repo/local_manifests
4. curl https://raw.github.com/rebelos/local_manifests/cm-11.0/semc.xml > ~/cm/.repo/local_manifests/semc.xml
5. repo sync -j1
6. curl https://raw.github.com/rebelos/local_manifests/cm-11.0/updates.sh > ~/cm/updates.sh
7. chmod a+x updates.sh
8. ./updates.sh
9. cd ~/cm/vendor/cm
10. ./get-prebuilts
11. cd ~/cm
12. . build/envsetup.sh
13. breakfast <device>
14. brunch <device>
guys build it .. try it.. debug it ..
Click to expand...
Click to collapse
I have an ARC, no coding experience though...
Before I try this:
No need to get blobs for 4.4?
officiallysonyrebel said:
i saw u on Z forum u have created XZ dual recovery ...
everything is updated on my github..nothing needed but the problem i m not able to surpass boot screen with no adb shell access according to mikeioanniai busybox is broken ... currently trying to fix up things ... plz if u can try it for fixing these thigns then that will be great
best regards
Officiallysonyrebel
Click to expand...
Click to collapse
XZDualRecovery, yes, that's me
PM me your hangouts email, I'll attempt a build ASAP and we will be able to do some live debugging while you code
officiallysonyrebel said:
fixed....
Code:
[B]How To Make Your Own Cm_11 builds for Anzu , urushi and smultron[/B]
[STRIKE]1. mkdir cm[/STRIKE]
[STRIKE]2. repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0[/STRIKE]
[STRIKE]3. mkdir -p ~/cm/.repo/local_manifests[/STRIKE]
[STRIKE]4. curl https://raw.github.com/rebelos/local_manifests/cm-11.0/semc.xml > ~/cm/.repo/local_manifests/semc.xml[/STRIKE]
[STRIKE]5. repo sync -j1[COLOR="Red"][B]0[/B][/COLOR][/STRIKE]
[STRIKE]6. curl https://raw.github.com/rebelos/local_manifests/cm-11.0/updates.sh > ~/cm/updates.sh[/STRIKE]
[STRIKE]7. chmod a+x updates.sh[/STRIKE]
[STRIKE]12. . build/envsetup.sh[/STRIKE] [COLOR="Green"][B]needed to do here!!![/B][/COLOR]
[STRIKE]8. ./updates.sh[/STRIKE]
[COLOR="Green"][B]Open and comment cherries 53164, 51130, 51224, 52888 and 53495: ALREADY MERGED![/B][/COLOR]
[STRIKE]9. cd ~/cm/vendor/cm[/STRIKE]
[STRIKE]10. ./get-prebuilts[/STRIKE]
[STRIKE]11. cd ~/cm[/STRIKE]
[STRIKE]13. breakfast anzu[/STRIKE]
14. brunch anzu [COLOR="Red"][B]RUNNING[/B][/COLOR]
guys build it .. try it.. debug it ..
Click to expand...
Click to collapse
Doing this now, will strike off everything done sofar to show progress
-- EDIT --
Man, CM is so freaking big, even with my 2 (yes, really) 20Mbit connections it's taking for ever
@officiallysonyrebel
Code:
# breakfast anzu
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:238: *** _nic.PRODUCTS.[[device/semc/anzu/cm.mk]]: "hardware/ti/wlan/mac80211/wl127x-wlan-products.mk" does not exist. Stop.
Device anzu not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_semc_anzu
Default revision: cm-11.0
Checking branch info
Default revision cm-11.0 not found in android_device_semc_anzu. Bailing.
Branches found:
cm-9.0.0
gb-release-7.2
gingerbread
gingerbread-release
ics
ics-release
jellybean
jellybean-stable
cm-7.1.0
Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
build/core/product_config.mk:238: *** _nic.PRODUCTS.[[device/semc/anzu/cm.mk]]: "hardware/ti/wlan/mac80211/wl127x-wlan-products.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_anzu'
** Do you have the right repo manifest?
Any idea how to get this fixed? For some reason, repo breakfast is not picking up your repository as a valid one... I can't find why
The path device/semc/anzu is there... breakfast somehow thinks it's not
---------- Post added at 01:31 AM ---------- Previous post was at 01:30 AM ----------
arc_n_krizt said:
How big data source for cm???
Sent from my Xperia Arc S using xda app-developers app
Click to expand...
Click to collapse
22Gb sofar... no idea if it will grow even more...
[NUT] said:
@officiallysonyrebel
Code:
# breakfast anzu
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:238: *** _nic.PRODUCTS.[[device/semc/anzu/cm.mk]]: "hardware/ti/wlan/mac80211/wl127x-wlan-products.mk" does not exist. Stop.
Device anzu not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_semc_anzu
Default revision: cm-11.0
Checking branch info
Default revision cm-11.0 not found in android_device_semc_anzu. Bailing.
Branches found:
cm-9.0.0
gb-release-7.2
gingerbread
gingerbread-release
ics
ics-release
jellybean
jellybean-stable
cm-7.1.0
Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
build/core/product_config.mk:238: *** _nic.PRODUCTS.[[device/semc/anzu/cm.mk]]: "hardware/ti/wlan/mac80211/wl127x-wlan-products.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_anzu'
** Do you have the right repo manifest?
Any idea how to get this fixed? For some reason, repo breakfast is not picking up your repository as a valid one... I can't find why
The path device/semc/anzu is there... breakfast somehow thinks it's not
---------- Post added at 01:31 AM ---------- Previous post was at 01:30 AM ----------
22Gb sofar... no idea if it will grow even more...
Click to expand...
Click to collapse
Hi,
see if these works:
First, check if in cm\device folder there is "semc\anzu\..."
if not, local manifest should be changed
if there is anzu folder in cm\device\ then try one of these:
breakfast cm_anzu
breakfast cm_anzu-eng
or alternatively just type lunch and select anzu from the list
[NUT] said:
@officiallysonyrebel
Code:
# breakfast anzu
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:238: *** _nic.PRODUCTS.[[device/semc/anzu/cm.mk]]: "hardware/ti/wlan/mac80211/wl127x-wlan-products.mk" does not exist. Stop.
Device anzu not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_semc_anzu
Default revision: cm-11.0
Checking branch info
Default revision cm-11.0 not found in android_device_semc_anzu. Bailing.
Branches found:
cm-9.0.0
gb-release-7.2
gingerbread
gingerbread-release
ics
ics-release
jellybean
jellybean-stable
cm-7.1.0
Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
build/core/product_config.mk:238: *** _nic.PRODUCTS.[[device/semc/anzu/cm.mk]]: "hardware/ti/wlan/mac80211/wl127x-wlan-products.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_anzu'
** Do you have the right repo manifest?
Any idea how to get this fixed? For some reason, repo breakfast is not picking up your repository as a valid one... I can't find why
The path device/semc/anzu is there... breakfast somehow thinks it's not
---------- Post added at 01:31 AM ---------- Previous post was at 01:30 AM ----------
22Gb sofar... no idea if it will grow even more...
Click to expand...
Click to collapse
its easy ..
cd ~/cm/hardware/ti/wlan
git fetch http://review.cyanogenmod.org/CyanogenMod/android_hardware_ti_wlan refs/changes/24/51224/7 && git cherry-pick FETCH_HEAD
only if it show some wired thing then
git commit --allow-empty
source is aroung 30 gb's
yup we can use hangouts [email protected] -- if anybody has problem regarding kk then can contact me at hangouts .. thnx
after it u might get librpc error [maybe] the n go in hardware / gps / delete lib rpc .. i m updating sources to upstream changes..
best regards
officiallysonyrebel
officiallysonyrebel said:
its easy ..
cd ~/cm/hardware/ti/wlan
git fetch http://review.cyanogenmod.org/CyanogenMod/android_hardware_ti_wlan refs/changes/24/51224/7 && git cherry-pick FETCH_HEAD
only if it show some wired thing then
git commit --allow-empty
source is aroung 30 gb's
yup we can use hangouts [email protected] -- if anybody has problem regarding kk then can contact me at hangouts .. thnx
after it u might get librpc error [maybe] the n go in hardware / gps / delete lib rpc .. i m updating sources to upstream changes..
best regards
officiallysonyrebel
Click to expand...
Click to collapse
gosssss.... it more 5 days to finish in my country!!! does anyone have the cd form .... it's like a repository in linux right??
arc_n_krizt said:
gosssss.... it more 5 days to finish in my country!!! does anyone have the cd form .... it's like a repository in linux right??
Click to expand...
Click to collapse
whats u r bandwidth..?
officiallysonyrebel said:
its easy ..
cd ~/cm/hardware/ti/wlan
git fetch http://review.cyanogenmod.org/CyanogenMod/android_hardware_ti_wlan refs/changes/24/51224/7 && git cherry-pick FETCH_HEAD
only if it show some wired thing then
git commit --allow-empty
source is aroung 30 gb's
yup we can use hangouts [email protected] -- if anybody has problem regarding kk then can contact me at hangouts .. thnx
after it u might get librpc error [maybe] the n go in hardware / gps / delete lib rpc .. i m updating sources to upstream changes..
best regards
officiallysonyrebel
Click to expand...
Click to collapse
The git fetch line fixed it indeed :good: I did need to remove the hardware/qcom/gps/librpc folder though, so that was a smart move
officiallysonyrebel said:
whats u r bandwidth..?
Click to expand...
Click to collapse
i cant share in this forum... whether there is a link than github??
Great!
Now it is much easier to discuss progress with kit kat on xperia 2011 lines! :good::good:
Boy, that split was a hassle
Anyway... ROM compile still running... I'm afraid to stop it, but I forgot to add export USE_CCACHE=1 and to have brunch run with a -j3 switch (which will enable it to use multicore systems)...
It's been running since 7:30 AM (GMT+1) ...
-- EDIT --
If you use the -j switch, take the amount of cores and add 1 to determine the number of threads it can handle. For every 4 cores you can add 1 extra thread. So a dual-core CPU can handle 3, a quad-core can handle 5 but an octo-core can handle 10.
Don't mix up HYPERTHREADING (HT) with actual number of cores, if you have a Pentium series CPU with HT, half the number of cores you might see in your /proc/cpuinfo, HT is doubling your core count but while compiling, it will hinder the processing power of your CPU more then it helps
That clearly does not work on lunch,brunch and breakfast ... too bad!
:victory: FINALY it was done ... or so I thought...
Code:
In file included from external/chromium_org/content/common/android/hash_set.cc:5:0:
/storage/home/nut/development/xperia/cyanogen/beanstalk/out/target/product/anzu/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:10:26: error: extra tokens at end of #ifndef directive [-Werror]
/storage/home/nut/development/xperia/cyanogen/beanstalk/out/target/product/anzu/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:11:26: error: missing whitespace after the macro name [-Werror]
target thumb C++: content_content_common_gyp <= external/chromium_org/content/common/android/surface_texture_peer.cc
In file included from external/chromium_org/content/common/android/hash_set.cc:5:0:
/storage/home/nut/development/xperia/cyanogen/beanstalk/out/target/product/anzu/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:24:20: error: expected initializer before '<' token
/storage/home/nut/development/xperia/cyanogen/beanstalk/out/target/product/anzu/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:26:17: error: expected initializer before '<' token
/storage/home/nut/development/xperia/cyanogen/beanstalk/out/target/product/anzu/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:29:22: error: expected '{' before '<' token
/storage/home/nut/development/xperia/cyanogen/beanstalk/out/target/product/anzu/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:29:22: error: expected unqualified-id before '<' token
external/chromium_org/content/common/android/hash_set.cc:30:1: error: expected '}' at end of input
cc1plus: all warnings being treated as errors
make: *** [/storage/home/nut/development/xperia/cyanogen/beanstalk/out/target/product/anzu/obj/STATIC_LIBRARIES/content_content_common_gyp_intermediates/content/common/android/hash_set.o] Error 1
make: *** Waiting for unfinished jobs....
Lets see if I can fix that...
-- EDIT --
I thought it might have been a typo somewhere ... but I'm lost already
Need help