Contents
- Requirements
- About this guide
- Install "Oracle JDK"
- Install other needed packages
- Install "make 3.81"
- Install "Android SDK & Eclipse"
- Install Android Studio
- Set up "repo"
- Note: "Neo Wisdom"
- Set up source directories
- Set up repositories
- Update source code
- Update Cherry Picks
- Build CyanogenMod 11
- Done!
- Possible build errors on openSuSE
and Credits
Select Build Notes
Camera Project
My Java Android
Market Place
YES... This is a mess. Don't know that I ever will get it straightened
out. As you will see, we have searched and searched the Net, trying to find answers. Had a hard time finding the right words
for our searches. Got everything -but- what we needed. Sometimes we found things that we didn't even know we needed!! However,
for some reason, simply following directions is NOT good enough. And... THAT... is ALL I will say about that matter!!
I have poured out my efforts, good -and- bad, mainly so that 'I' will have references -but- published them for anyone else
that 'just might' benefit from them.
[GUIDE] Building CyanogenMod 11.0 from Source with
openSuSE 12.3
And we have moved up to openSuSE 13.2
And probably won't go any higher on either!! TR - June 28th, 2015
This was Borrowed/Stolen from: riggnix on the
The XDA-Dev forum
(November 8th, 2012).
Our plans are to convert it over to openSuSE 12.3 and
CM11.0 building. This was started for CM10.2
(August 13th, 2013) -but- things changed in midstream and
we changed also. After all, CM11.0
KitKat is the latest. We were trying to keep his stuff intack and our changes
separate. We were also trying to include both, CM10 and CM11.
That got to be to much for our "Senior Moments". This will be changed to conform just to what we
are doing, or trying to do. IF any of his stuff is left, it is by accident.
Sorry riggnix, but we are giving you the "original credit".
His, riggnix, was for CM9 and openSuSE 12.1.
This whole thing has changed (October 12th, 2014). I purchased
a new PC - an
HP 500-277c i7-4770 Quad-Core 3.4GHz .
We have faster compiles, 1 hr vs 8 hrs, and we have Android Studio.
another: SDK for Android
Another person who deserves credit for contributions to this is Neo. He is/was the
current Head Honco over on the ReZound
CyanogenMod site at:
XDA-Developers Forum.
-But- that has changed as of April 3rd, 2014. We have a new Head Honcho, REV3NT3CH. He has claimed that he has a lot of
patience and likes to help. IF that is so this page will get lots better. (June 6th, 2014 -- I am now the Head Honcho
)
We receved our Smartphone, an
HTC
ReZound,
in Januray of 2012. Here it is October 2013 and we feel that we haven't done a whole lot with it. Been researching a lot
-and- half of that time was a waiting period. Waiting for HTC
and Verizon to get together and release
Android ICS . Yeah, that is not really an excuse... but then none of the others we have are either.
At any rate, we have decided to pursue this path more diligently. As stated at the top... it -and we- ain't done yet.
Need to make sure these people get credit where credit is due. They are all part of this in one way or another, whether they
know it -or- not. They are all over on the XDA Developers Forum
riggnix ; Flyhalf205 ; Neo ; _litz
; wildstang83 ; Chad0989 ; shrike1978 ; REV3NT3CH
Introduction
If you have tried to build Android on
systems other than Ubuntu (or Ubuntu based systems) you may have noticed,
that pretty much, there are not any guides for other systems.
Well, we are finally trying to set up our openSuSE to build
CM11.0 successfully, and would like to share the process with everyone.
This is a copy of riggnix's CM9 copy on The XDA-Dev forum.
He talked about doing a version for CM10 but we never found one. So we are trying to do it -and- re-writing his copy. IF we get it working, we will notify him.
However, we are going to install as much
as we can from openSuSE. Well, right off that was a lie. We are getting the "Official Java". Worked in this industry for
years and still don't know what I'm doing!!
SE, SDK, JDK, Oracle version, Open version, 6U, 7U ... ???? arrrgg!!. which to use??!!
December 3rd, 2013 - Ok, with persuasion, finally decided on 6u45.
- openSuSE 12.3, 13.1, 13.2 64bit (may work on other versions too)
- a good internet connection
(We have COX cable)
- as much RAM as possible (at least 2GB to finish a build, but that will take very, very long.)
(We have 4GB 12GB.)
- Gona need some disc space too - Android source code alone consumes around 9GB of hard drive space,
and to carry out a 'single' device build at least 30GB will be required.
If building for more devices, this can easily exceed 100GB. At this time I have 269GB free
of 426GB.
Refer: Building from Source
- patience (well, that 's gona be hard)
- common sense (think we have
it )
Note: I did all this in a virtual machine, but I highly recommend installing Linux on your
hardware. Building Android takes a long time even on high end hardware.
OK. We are; We did; We have a "Hardware Oriented"
openSuSE 12.3. We BootUp into it everyday. It is also 64-Bit and was
part of the course of our troubles for so long.
Refer:
openSuSE 12.3 VMwareFix
Hardware Specs of my machine:
Sys Environment
October 30th, 2014 / 12:50pm Well, things are changing. Got a new Computer
and set it up with openSuSE 13.1 13.2.
Now to see IF we can get the Android Build Environment
setup on it. - - - We did.
May 17th, 2016 / 7:45am Things are changing again... Got another new 'Puter.
Also set it up with openSuSE 13.2. We are now trying to get the
Android Build Environment setup on it. Due to the fact that almost everything I have is
"Out-of-Date" it will probably be a real challenge.
-AND- I have just learned that my stuff is 'so old' that I may NOT be able to setup an Android Build Environment
on my new 'Puter. I may just have to continue using the previous new one.
- Lines beginning with '$' are supposed to be entered in shell (without the $ sign).
- File names are bold. maybe... IF we remember.
- This guide assumes that you set up the sources at ~/Android/cm11.0-rezound/.
Feel free to change that.
The directory structure can not be changed. At least NOT as of Jan 8th, 2014.
Reason?? Script files have the dirs hard coded!!
This will work with CM10.2 .. maybe... -AND- it will
work with CM11.0
- vigor = device name (e.g. HTC ReZound. See CyanogenMod Homepage for other devices.)
Now then, we have "copied" the text from
the afore mentioned WebPage -but- from here on out there will probably be "Lots" of changes. Different
versions of CyanogenMod and different versions of SuSE.
Plus -- "Ve have our vays..."
Annnndddd now we are changing to openSuSE 13.1 13.2.
Well now, time has passed the Author and it really has
also passed us. -But- we are going to try to get the "Latest" -or- the "Latest time frame" that
will co-ordinate with what we have available -and- for our version of openSuSE 12.3.
Now IF that doesn't make sense to you... well it is really hard for us too. On top of that, there is a problem with all
the "Liciensing". Can't do this, but you can do that, and then if... so we are presented with some 'almost' like
Software. -But- then we are told by some -"Don't use it!!" In fact this Author states that further down. Well,
we had installed the open-JDK stuff during our setup. Ok so we will remove it and get what he says to get -but- we will be
getting "Later" versions. The file, this one, will be edited/changed accordingly. Lots!!
Sorry this first part is a 'little' confusing -but- that happens when you get stuff
from someone else and try to change it... yeah I know... excuses, excuses. But that's my story and I'm stickin with it.
- This will be our first big change.Unfortunately, NO it won't. Until we can
learn more ... we will use Java 6u45.
- We still need to install: jdk-6u45-linux-x64-rpm.bin.
Jump over to Java Install
- Use Yast2 and search for openJDK and check uninstall for ALL openJDK packages.
(We did.)
- DON'T click accept yet, go to next chapter.
- Well, shuckins. Do it however will work for you.
- The JDK Path is: /usr/lib64/jvm/java-1.6.0-sun-1.6.0
August 25th, 2014
Java 6 & 7 Same Time
in a command prompt or batch file
set JAVA_HOME=<path to java version bin>
<command to execute>
November 7th, 2014 /8:24pm This is an UpDate... We got a new PC and must
install this again. Going to install via an RPM. jdk-7u71-linux-x64.rpm
It is supposed to be the latest.
September 5th, 2014 /11:24am Well, it's in, Java 7 -but- we haven't tried
or tested it yet. So how do we make sure everything is alright???
ln -s /usr/lib64/jvm/java-1.7.0-sun-1.7.0/jre/lib/amd64/libnpjp2.so libnpjp2.so
libnpjp2.so -> /usr/lib64/jvm/java-1.7.0-sun-1.7.0/jre/lib/amd64/libnpjp2.so
javaplugin.so -> /etc/alternatives/javaplugin
Later We dumped ALL of our Java and Re-Installed via an RPM. jdk-7u67-linux-x64.rpm.
Now we need to try a 'build and see if it still works.
September 15th, 2014 /5:03am My final(at this time) version is:
ctaylor@dusty-tr2:/windows/D/Downloads/Linux/temp
> ls -l /usr/java/
total 4
lrwxrwxrwx 1 root root 16 Sep 5 14:46 default -> /usr/java/latest
drwxr-xr-x 8 root root 4096 Sep 5 14:46 jdk1.7.0_71
lrwxrwxrwx 1 root root 21 Sep 5 14:46 latest -> /usr/java/jdk1.7.0_71
ctaylor@dusty-tr2:/windows/D/Downloads/Linux/temp
> java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
October 30th, 2014 Now we need to install Java 7 upon this
openSuSE 13.1... and we did.
The Install
November 14th, 2014 / 6:07am Almost time to walk the dog. But the reason
for this entry is... we need to change where our "Java" is located. openSuSE
keeps wanting to install all these "openJDK" packages everytime I want to install something else. Guess Java
is used a lot more than I thought. Sooooo... we are going to install it the SuSE way
and get all the "default" paths set to our "Oracle" version. Guidelines for this can be found
at SDB:Installing Java
- Search and install following packages with YaST (Also look in "Provides".)
- git
- gnupg - (No have, but have (gpg2 - GnuPG 2)
GnuPG 2 is the successor of "GnuPG" or GPG. It provides: GPGSM, gpg-agent, and a keybox library.)
- flex
- bison
- gperf
- SDL-devel - (Have libSDL-devel)
- esound-devel - (Have libesd-devel)
- wxGTK-devel - (Nope! However, research shows
wxWiWidgets-2_9 has the code. So we installed them.
plplot-wxwidgets
plplot-wxwidgets-devel
python-wxWidgets-2_9
python-wxWidgets-2_9-devel
wxWidgets-2_9-devel)
- zip
- curl
- ccache
- ncurses-devel
- ncurses-devel 32bit
- zlib-devel
- zlib-devel 32bit
- gcc-c++
- glibc-devel 32bit
- libstdc++47-32bit and/or libstdc++33-32bit
- libzzip-0-13-32bit
- mesa libs - (Have a bunch of Mesa-lib thingys.)
- schedtool -
This is also needed and is obtained from the 'Packman Repository'.
In theory, using the SCHED_BATCH policy of the Linux scheduler should help with huge cpu-bound builds, such as making aosp.
SCHED_BATCH was designed for non-interactive, CPU-bound applications. It uses longer timeslices (to better exploit the
cache), but can be interrupted anytime by other processes in other classes to guarantee interaction of the system.
This is a 'root' process -and- requires 'root'. Also need /usr/sbin added to the $PATH.
Getting the corect 32-bit libs 'may' be your biggest headache. They all seem to be different!! I also
included the development 32-bit libs.
64-bit Debian or Ubuntu : apt-get install libc6-i386
or libc6:i386
64-bit Fedora : yum install glibc.i686 zlib.i686
64-bit SUSE : zypper install glibc-32bit zlib-32bit
Refer:
Missing libc
This is the default search path of GCC. Refer:
Where does GCC look?
a BLOG: GCC/Clang
From digging on the net I derived the following two ways to get my defaults that I am now going to place in the Eclipse 'C/C++' Paths.
w32api.h has been deprecated, sooooo... I included what I think are 32 bit dirs. If they aren't then there is something drastically
wrong with their directory naming. I'm not really sure what the dirs with the ../../../../ in them are.
Unfortunately, in order to set them ... I HAD to create a little C and C++ file inorder to see the "General C/C++" selection in the
"Prperties" menu you get by right cliking on the "Project" name.
Nov 26th, 2014/5:03am Didn't include where I found info on this!! Anywho:
If Autodiscovery is enabled, after a build finishes, any discovered paths and symbols will be displayed in the
Discovered Paths section.
To add include paths and symbols:
- To set properties for your project, right-click your CDT
project and select Properties. Alternatively, to set properties
for a specific source file in your project, right-click a source file
within your make project and select Properties.
- Expand C/C++ General and select Paths and Symbols.
Autodiscovery is set in:
Window -> Preferences -> C/C++ -> New C/C++ Project Wizard -> Makefile Project
..
Don't use it!!
Refer:
Eclipse C/C++ Paths
$ cpp -v
/usr/lib64/gcc/x86_64-suse-linux/4.7/include
/usr/local/include
/usr/lib64/gcc/x86_64-suse-linux/4.7/include-fixed
/usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/include
/usr/include
/usr/lib64/gcc/x86_64-suse-linux/4.7/32
echo "//" | gcc -xc++ -E -v -
/usr/include/c++/4.7
/usr/include/c++/4.7/x86_64-suse-linux
/usr/include/c++/4.7/backward
/usr/lib64/gcc/x86_64-suse-linux/4.7/include
/usr/local/include
/usr/lib64/gcc/x86_64-suse-linux/4.7/include-fixed
/usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/include
/usr/include
/usr/lib64/gcc/x86_64-suse-linux/4.7/32
Note: Other versions won't work... not true anymore.
Well, we have 3.82 installed, when we installed the Sytem, and we don't
really see why it won't work -cause- we have all new Software anyway. Hopefully, we won't have to eat our words.
Later: We don't!! Can use the 3.82 make.
- Download source from http://ftp.gnu.org/gnu/make/make-3.81.tar.gz.
Well, you don't need to IF you have installed the "make" included with openSuSE 12.3.
- This is for openSuSE 12.3 and make 3.81 is NOT needed. Use the make 3.82 that is included.
Well, guess what?? In addition to the higher make, we are up to GCC 4.7.2!!
- Well, guess what sports fans??? In openSuSE 13.2 we have
make version GNU Make 4.0 -and- gcc 4.8.3!!
Refer: Open Source Project
javap -verbose EclipseClass.class
Eclipse Installation
My Install Version
Install Eclipse Plugin
SDK for Android - Wiki
August 24th, 2014 / 4:55am
'I' not only list the successes in my installs, -but- also the failures and/or problems. This is in hopes that it might help
anyone else who happens to read my Web Pages. -And- as reminders to me!! As you can see, I more or less started trying to install
-and- use Eclipse for my ROM building last November(2013). I have been successful
in building ROMs -but- not thru Eclipse. I have just in the past
couple of weeks decided that 'I' am gona make it work. So that is what this particular section is all about.
Thank you
Ok, we had some success. Found that we had to turn OFF some check on the 'C' language stuff
in Eclipse because of ... ta, ta, da, daaa... bugs in Eclipse indexing. And now we have a new machine and installing all this
stuff again. The 'New' Install will be up here at the top. The horror stories from the past follow... only IF you
care to read them. IF not you can jump to the next step from here.
Believe it or not... this is 'somewhat' cleaned up!! Nov 19th, 2014
May 17th, 2016/7:04am
Well, here we go again. Got another 'Puter this past Febuary 24th, 2016.
So in order to get 'back' into this I am going to try to set it up on this newest one. -But- all of my stuff is so out of date, it may be
even more of a challenge than it was the first time. -AND- even though Dakotah,
my dog, is now a couple months over a year old, he still demands a lot of my attention.
(I got this newest PC on 'his' 1st Birthday!!)
Now then, another thing to note is... I don't think I am gona bother with 'Eclipse' or 'Android Studio' on this newest machine.
You can't build the OS in them anyway... or so I have been told.
So, at this time we will just set things up so we can do a build. I am interested in how fast 'this' machine will do a 'Full' build
from scratch.
Now pay attention here Taylor... The 'fix' for 'cannot be resolved' was ONLY for the Kernel projects.
NOT the Android OS Platform one!!!
Three dirs created in home dir:
Android -- for the Phone Code,
AndroidSDK -- for Eclipse and SDK,
AndroidNDK -- for the NDK native code.
- Get the AndroidADT and extract it into the AndroidSDK dir.
- It has Juno and we are going
to update it to Luna. We just 'dumped' Juno and
then clicked on the
Luna Archive
to Extract
it into AndroidSDK/adt dir. Luna Eclipse is now installed.
- SDK on the other hand can be updated through the SDK Manager. We moved up
to version 23.0.2.
~/AndroidSDK/adt/sdk/tools/android
Possible problem on my new setup. It is using version 23.0.5.
-
Some setups:
cd ~/Android/cm11.0-rezound/
cp development/ide/eclipse/.classpath .
chmod u+w .classpath
cd ~/AndroidSDK/adt/eclipse/
Edit eclipse.ini
-Xms40m
-Xmx256m
-XX:MaxPermSize=256m
Change to:
-Xms512m
-Xmx2048m
-XX:MaxPermSize=256m
Now then, my Xmx value was at 768, so I increased it to 1024. These are 'heap' values. Small and maX.
Refer:
Installing Eclipse and
Install Eclipse 4.4
IF you get the following error... you probably forgot to copy over the .classpath file.
Description
Archive for required library: 'libcore/luni/src/test/resources/tests/api/java/net/InvalidJar.jar' in project 'AndroidCM11' cannot be read or is not a valid ZIP file
The project cannot be built until build path errors are resolved
Classpath Info
-
Make a Symlink to Distinguish ADT Eclipse Bundle from Ordinary Eclipse:
ln -s /home/ctaylor/AndroidSDK/adt/eclipse/eclipse /home/ctaylor/adtec
Insert Android Developer Tools into User PATH
edit /etc/profile.local
and put in:
export PATH=/home/ctaylor/AndroidSDK/adt/eclipse:$PATH
Launching ADT Eclipse Bundle
./adtce
Create a Desktop Launcher
Right click in the Desktop Folder. Move the mouse over Create New. Move the mouse down to
Link to Application and Left click on it. In General change Link to Application to Eclipse.
Left click on the Application Tab. Left click on the Browse button. Find your Eclipse in the
folders presented and click on it. Click on OK to exit.
Right click on the Ugly icon just created. Left click on Properties. Left click on the Ugly icon
under the General Tab. Left click on the Other icons radio button. Click on Browse.. IF you are
lucky it will still be in the Eclipse dir. IF not, move to it and click on icon.xpm. You will
return to the General Tab. Click on OK and the Ugly icon on your Desktop will change to a pretty
Eclipse icon.
https://developer.android.com/sdk/installing/index.html?pkg=adt
-
Now click on your new Desktop icon to execute Eclipse It will want to create a 'workspace' folder. That is the default
name for it. However, we are gona change it to 'CM11workspace'. That is what we are doing at this time. The Eclipse that started
this time around is: Eclipse Luna. I state that cause I have had
3 different ones installed on here ... trying to get one to work. I was "learning" -and- I was expecting to much.
Se la vi... that's what happens.
Alllllrighty now... we are at the Welcome Screen. IF you continued on ... get out and come back in.
Refer: CodeBin
Eclipse 4.4 Luna repositories:
In case you're using Eclipse for Android development, the ADT repo hasn't changed:
The above are from the referenced file which is instructing on how to do an upgrade. Works for the initial install too!!
Be patient... some of the operations are slow. Clicking on one of the boxes does NOT necessarily
produce quick results. I have clicked on Developer Tools and waited over ten minutes for something to happen... with absolutely NO
indication that anything was happening... just have to wait!!
Two recomended "cures" ---
1.) From what I can tell, this is because it checks a whole bunch of slow servers looking for updates every time you
try and install something.
You can disable this behaviour in the "Install New Software" dialog by unchecking the
"Contact all update sites" option.
2.) The issue is that Eclipse appears to be trying to contact mirrors that don't have a proper copy of all the files it's
expecting. My solution was to invoke eclipse with the following flag. Add it after "eclipse", or in eclipse.ini
-Declipse.p2.mirrors=false
** Neither did anything for me. I do believe that the day of the week -and- the time of day have a lot to do with it.
What ho and foresooth!! It appears that you "Must Use" the add button and fill in the dialog and then it
will accept the checks in the boxes. Prior to that ... it just sat there!!
After the above step -and- a restart, you will be presented with a Welcome Screen
that contains a lot more. You can do what you want with this screen -but- I am going to do some more setup(s). One is
telling Eclipse where to find the NDK. -But-
first we must install it.
- Need the NDK. Download it.
Now then, pay attention here('I' didn't!! Read further down.),
from version NDK r9 they have split the download file. For the latest, r10, it is:
android-ndk64-r10-linux-x86_64.tar.bz2 and
android-ndk-r10-cxx-stl-libs-with-debug-info.zip
<-- Legacy version, probably NOT needed.
Extract the NDK downloaded package using tools available on your computer, into the AndroidNDK dir. Normally the extraction tools will
create a dir with the name android-ndk-. You can rename it IF you so desire. I did. Renamed is 'ndk'.
Then in Eclipse, go to:
Window -> Preferences -> Android -> NDK -> And set NDK path
to point to your 'ndk' dir. The FULL path.
These are SUPPOSED to be BACKWARDS COMPATIBLE... at least to my version 4.7 GCC.
Now then, they made a claim about splitting the files -but- the first one was extracted into an
android-ndk-r10 dir -and- that is where the second one wanted to go. Problem was/is that some of the dirs and files in the second
one were the same as the first one. So "some" of the first one was over written. Not sure how to find out what is correct
until we just try it. Ooooops... Didn't read it properly. The second download contains legacy NDK toolchains for that platform,
which is only required if you are not using the current, recommended toolchain for your NDK builds. Think I am going to ReDo it and
just have the 'First' one. IF I have troubles again, then I will Re-Install the second one. Gota play the guessing games...
The CDT can either be installed as part of the Eclipse C/C++ IDE packaged zip file or
installed into an existing Eclipse using the
"Help -> Install New Software..." dialog and entering the p2 repository URLs listed below. We are doing the later.
CDT 8.5.02 for Eclipse Luna
CDT Downloads.
This one was also a surprize. It claimed that CDT was already installed and it changed
itself to an UpDate. I did not install the "Optional Features" at this time.
Noowwww... we need to create our Android Project.
File > New > Project > Select a wizard > Java > Java Project
click on Next, and pick a Project Name. Ours will be AndroidCM11. Now the next item was tuff to figure out. Do NOT use the
default loction... UN-check it. Enter the path to your code. Mine is/was:
/home/ctaylor/Android/cm11.0-rezound.
Click 'Finish'. Now go gitchur caffe... it is gona be a while reading all that code.
May 18th, 2015 Note: It has been learned over these attempts that the Android OS you are trying to setup in here should already be compiled. It looks
for some 'libraries' that are built during the compile. They are all in 'sub dirs' of the 'out dir' that gets created.
-
It finished -and- we had some errors. Some 'not resoved' errors which are a problem in
Eclipse's indexing. It is fixed below in
our "Eclipse Kernel" section. Which is NOT true. It only fixes things for the
Kernel. The 'not resolved' needs another library -and- I have NOT figured out which one... yet. It is blamed as a
'Java Problem'.
May 18th, 2015/3:57am Back at it. I was trying to switch over to Android Studio
-but- not doing well there either. So I came back to here. In both, the Studio and Eclipse I had better results when I first
stubled through the setup on both!! Seems like the more I try to "fix them" the worse they get. In my first
Android Studio setup, I had used the 'Import an Eclipse' project and I could see a similar setup like my Eclipse. Now in my
latest efforts, the Studio attempts are all a bust. So I have come back here to setup an Eclipse Project again to import
into my Android Studio. Many UpDates and changes have been made to both, soooooo... don't know whether it is gona make any
difference or not.
-
Note: Also, at our SuSE System Install time,
we installed the Android Tools , 'adb'
and 'fastboot'.
Why? Well, then we won't have to be in any particular dir when executing them. Yes,
we know that feature could be set up with the ones that come with the SDK -but- ... well, just but. They are both the same
version:
-
adb Commands can be found at:
SDK Commands
and fastboot commands at:
fastboot Commands
More on 'adb' here: adb Doc
and at: Androidsage
The Kernel in Eclipse
I have successfully hacked and built android from Eclipse CDT!
(Well, I haven't... but I used this guy's
info to setup my Eclipse to help trouble shoot the kernel. It works)
I have used
this site
as a reference to Eclipse configuration for android kernel, which refers to an old revision of a generic kernel configuration
tutorial that can be found
here .
Remember that the first build has to be done from the shell, in order to create the .config and some other stuff.
Next, you will get "Type xyz could not be resolved" errors, but this is due to a
bug in Eclipse Indexer
that still isn't fixed in the latest build. The workaround to this is to switch code-analysis off in:
Window -> Preferences -> C/C++ -> Code analysis
but I recommend to disable only the Mal-functioning features, which in my case were
"Symbol is not resolved" and
"Type cannot be resolved".
Hope this helps, have fun hacking the kernel !
And we have StackOverflow
to the rescue again!!! Those NOT Resolved things are what I have been fighting in my Eclipse Android Platform setup.
Luna Help
Using Eclipse for develop Android app mixed Java and C/C++ code
WindowBuilder Pro Editor
WB Release 1.7
Learn Java in 30 Min
WindowBuilder Pro SWT Development
EclipseCpp How To
android ADT
Eclipsepedia
Claim was made that "some projects" are NOT in the make -but- included in the .classpath file. So, the cure is to 'make' them individually.
-But- that did NOT work in our case.
Import AOSP
September 4th, 2014 / 10:18am
Well, now... we finally found an answer to ALL our problems in trying to use Eclipse
in our ROM developement. Searching for Android and Cyanogen did not help. Finally used AOSP in my searches... and got answers!!
Actually, you cannot build AOSP using Eclipse. The only thing you can do is to develop parts of AOSP using Eclipse.
To use Eclipse for the development you need to, at first, download and build AOSP from the command line, following the instructions
here .
Only after a successful build you can start to use Eclipse for development
(the build system, during the build, generates some files,
which may be missing without the build). After that, following the instructions on the link,
Using_Eclipse , you provided, you can install Eclipse as
a development system for AOSP.
However, in 'my humble opinion', you have to do "a lot more research" in order to accomplish anything. 'I' could not get any decent
operations with Eclipse UNTIL I found and installed Eclipse Luna.
Refer:
StackOverFlow
and
Using Eclipse to browse and edit Android platform source code
November 1st, 2013/4:46am Ok, so we will add it
now. First we create an AndroidSDK dir in our home dir. Then you need to download the SDK Tools, IF you have
Eclipse installed already, -or- download the ADT Bundle, which contains Eclipse.
Both can be found at: Android Developer
May 27th, 2014/7:33am Last evening tried to update this... had problems. Fix found
at: StackOverflow and also at
StackOverflow
Well we also had to add in the NDK. Get NDK
The NDK is a toolset that allows you to implement parts of your app using native-code languages such as C and C++.
Android NDK Toolset
This is also where we had our most trouble on our Luna setup. AS ALWAYS, we followed the directions,
-or- so we thought, -but- we did NOT get the proper installation. Either that or it doesn't work the way they say it does. Right now,
Sep 12th, 2014/11:17am, we can NOT get the "General C/C++" to appear as a selection in our "Project Properties"
menu. Consequently, we can not set the paths and, consequently, we can not get an "Error Free" load.
We brought down our selection to:
/windows/D/Downloads/CellPhones/HTC-Rezound/SourceCode/Linux/64-bit/
We chose to install the ADT version: adt-bundle-linux-x86_64-20130522.zip Notice that it is a 'zip' file.
To install it we just used Dolphin, went to the dir, selected the file, Left clicked on it, then clicked on Extract,
selected our AndroidSDK dir in our home dir and then clicked on OK.
This created an adt-bundle-linux-x86_64-20130522
dir under AndroidSDK in our home dir.
Whew.... Anywho, however you want to do it... that is the way we did it.
The 'claim' is you can put it anywhere you want. And that claim seems to be for
ALL of them. As you will learn, or already have, we dumped this one for another later on anyway.
openSuSE Eclipse
Setup Eclipse Environment
SDK Setup Libs
Kepler Help
- Code: Select all
sudo zypper in fetchmsttfonts libstdc++33-32bit libGLU1-32bit libICE6-32bit libSM6-32bit libXrender1-32bit libfreetype6-32bit libglib-2_0-0-32bit libgmodule-2_0-0-32bit libgobject-2_0-0-32bit libgstaudio-1_0-0-32bit libgstinterfaces-0_10-0-32bit libgthread-2_0-0-32bit libmng1-32bit libpng12-0 fontconfig-32bit cups-libs-32bit
WPS Community
Added August 8th, 2014 TRComputing
Well now, here it is years later and we are installing Android Studio . Well it is only
years later for our phone. Android Studio is newer. In fact, at this time it is still listed as Beta.
Now then, according to what we have read so far, it is similar to Eclipse. You just bring
down the Tar or Zip file and extract it to where you want it. No installation process. (For Linux) -But-
there-in lies a problem. It, Android Studio , also includes a copy of the
SDK -- which we already have
installed!! Hmmmmmm... Android Studio installs it's own version of the
SDK in it's own app folder. Now then, there was a write up on this and the
gentleman talked about pointing to the "already installed" SDK
because the version of the Android Studio he was installing was 0.1!!
Well, we are getting 0.8 Beta. So, we'll just leave it as is and see what happens.
We have an AndroidSDK dir that we were/are using for the
previous SDK. We will create a new one called... hmmmmm... let's see ...
how's about ... AndyStudio ... just for fun.
android-studio-bundle-135.1245622-linux.tgz
August 15th, 2014/7:56am Well, now it is only days later and we have finally tried
to use the Studio. We want to use it to develope the Android Platform for our ReZound.
Upon first grins, we were presented with a menu of choices. First one being to "Open a New Project" which we did not want
to do. the next was to "Import a Project" which sounded reasonable... so we tried it. Nope! It wanted an "AndroidManifest.xml"
file and it could not find one. I searched and there were/are a gazillion of them in our project. So which one??
Well, then, we decided to "Just Open" a project. Now understand, this was the FIRST time using
this studio ... SO, we really didn't have a "former" project to open. -BUT- we had an "Eclipse .project" file
in our "~/Android/cm11.0-rezound" dir. Which was/is our current Eclipse project. Well, guess what??? It accepted and loaded it!!
In fact it is still loading it as I am typing all this in. It, like Eclipse, here at first start is taking a lonnggg time to load it.
Hopefully that is cause it is making some file associations so's I can get some correlation between them. Now gona take
a break while it finishes.
Android Studio
Installing The Android SDK In Eclipse
My Eclipse/Android Studio Docs
June 16th, 2016 I had trouble getting this running on my newest machine. However, I found a 'fix'
on Stackoverflow :
- Open the folder
bin
under the directory where you installed your Android Studio.
- Find the file
idea.properties
and open it with Notepad++, UltraEdit, or other edit tools.
- Add
disable.android.first.run=true
as the final line and save the file. IF the line is already there
-but- is set to false, then change it to true.
- Restart Android Studio.
June 17th, 2016 And we have another change for this Studio:
Inotify Watches Limit
1. Add the following line to either /etc/sysctl.conf file or a new file under /etc/sysctl.d/ directory:
fs.inotify.max_user_watches = 524288
2. Then run this command to apply the change:
sudo sysctl -p --system
And don't forget to restart your IDE.
Note: "repo" is a tool by Google, created to make access to git and gerrit very,
very easy. This step only needs to be done once...
unless you are redoing your system. -OR- there
is an UpDate to repo, of which I was informed on February 9, 2014.
- $ mkdir ~/bin - (already have this dir)
The following command sequence will get the 'repo' command and place it in your home dir bin dir.
- $ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
- $ chmod a+x ~/bin/repo
- Open ~/.bashrc in a file editor (e.g. kwrite)
- Add the following line:
- PATH=~/bin:$PATH - (well, our home bin is already in our PATH)
- Save and close.
- Close your shell and re-open it.
Refer: Repo command reference
If you have a Git project you want to import, but Eclipse can't see it because it has not the .project file in its directory,
here's the steps: (Think you need a Git Init first.)
- File > New > Java Project: put in the name the name of the project's dir, so as Antimony said, the project will be
automatically configured.
- You will see your project in the Project list, but it's not bound to Git yet.
- If it's a maven project, you can convert it to maven project now: right click on the project and select
Configure > Convert to Maven project.
- Delete the project (DO NOT SELECT "Delete project from disk")
- Now you can import the project as a Git project from File > Import > Git Project
From:
StackOverflow
Added December 15th, 2013/9:55am TRComputing
We conversed with Neo via a PM(Private Message)
over on the XDA-Developers Forum.
A synopis of this exchange is here: Neo Directions. We had the following
steps in place before our conversation with Neo. He is knowledgable and experienced in this so we are following his path. Ours was
essentially the same. It turns out that our biggest problem was to many suggestions by others and some changes made by the CM Team.
Plus we got an outdated cherrypick. Talking to, and following Neo's directions got us up first time! Later: Got help from _litz in doing
the 'hybrid' version. Through working with him, _litz, we finally got ourselves straight on the "Directory Paths".
Should not have been this difficult -but- it happens. Believe that the 'Lord' has guided us through Neo and _litz
to get the new phone system working.
April 3rd, 2014 REV3NT3CH(Rev) has taken over the moderator job. Neo moved on to my
next phone, IF I get another, the HTC One(M8).
However, I am still enjoying my ReZound
immensely -and- REV3NT3CH has claimed the patience to help/teach. -And- since he is a proponent of "Command Line" operations
I may learn a little more and faster. It won't all be hidden in scripts. Just a thought.
Alllllrighty now...
The previous 7 steps should be relatively straight forward... -and- they should be fit for 'ANY' Android Build .
We had concern over the 'C' differences but they turned out to NOT be a problem. In fact, we are going to build this again... using 'our dirs'
just to prove that it can be done IF you have all the right stuff to begin with! Annnndddd... as of
January 7,8,9, 2014
we found that we need to use the 'same' directory structure used by the dev's!!
Now then PLEASE NOTICE that from here
down is for building an Android CyanogenMod for the:
HTC
ReZound.
Now then, as stated this is primarily for an HTC ReZound,
-but- it was originally for a Samsung Galaxy SIII I9300. So it should be modifiable by anyone for any other phone. Well, that is only
partially true. A lot of the following stuff is ReZound
specific. Use caution IF you are trying to do this on another phone.
From _litz: January 10th, 2014
it's a matter of "what does what" ...
all repo init does, is pull down manifest.xml and start seeding the information in the .repo directory.
repo sync is what actually goes to each and every project listed in either manifest.xml or
local_manifest.xml, and pulls the actual code down, project by project by project. The reason you use
"-j 8" or "-j 16" is to allow it to pull multiple projects in parallel, thus speeding up the process.
Remember:
manifest.xml = all of the CM projects, android OS projects, etc.
local_manifest.xml = all of the device specific stuff that makes a Rezound a Rezound
(and makes android actually work on a Rezound)
December 16th, 2013 Now then, Neo
created a single level directory. We, however, had created a two level structure following the example mentioned
above from riggnix out on the
The XDA-Dev forum.
Don't see why this can't continue to be followed...
with some of our own little idiosyncrasies.
January 8th, 2014/8:14pm Lots of frustration has shown that this is not
necessarily a "Free Format" directory structure. It is looking for the following structure. Anything else
will fail. (January 8th, 2014)
- $ mkdir ~/Android
- $ mkdir ~/Android/cm11.0-rezound <-- 'Build -or- Source Tree root'
May 26th, 2014/1:04am Yeah, I work all hours. Anywho, more on the cache. It was being used -but- not the
one that I thought. Finally opened my eyes and looked at the 'make.sh' file:
make.sh file
#/bin/bash
# setup android
cd ~/Android/cm11.0-rezound
TOP="~/Android/cm11.0-rezound"; export TOP
source build/envsetup.sh
# setup ccache
export USE_CCACHE=1
export CCACHE_DIR="$HOME/.ccache_cm11.0-rezound"
ccache --max-size=8G # Increase the cache to 8gb (sufficient for most builds)
# clobber if we supply clobber as arg1
if [ "$1" == 'clobber' ]
then
make clobber
fi
# make, logging all to either build.err or build.log
{ time brunch vigor 2>build.err ; } 2>&1 | tee build.log
# note - build log is in "build.log", syserrs encountered are in "build.err"
# any actual compilation errors will be in the build.log, not the build.err
Please notice just where the '
ccache' files are... so I removed the '
ccache' dir that I had previously created.
The reason I couldn't see it being used is cause... it wasn't. Like I said previously... this is not a free format. They have
set things up with '
specific dirs'. Not that that is bad, mind you, just that you need to be aware... so's you don't make
the same mistakes that I did... learning and RE-learning.
November 1st, 2013/8:24am Well now, here is something to be done with no
explanation as to why, what, or wherefore. We are trying to NOT do everything by rote. Would be nice to understand what
and why something is to be done. We presume, at this point, that these dirs do not have anything to do with the SDK
setup since that was in the step before. These dirs must have something to do with the 'System' that is going to be
placed on your phone. Ah yes, that is it. This will be an 'Android' dir right in your home dir. We remember seeing
that file structure on our phone... or think that is where we saw it. Anywho, we created it... them.
As it turns out, these dirs get the Android source code that is extracted by 'repo'
in step 10.
December 11th, 2013/6:43pm Ok. Things have changed in the manner of obtaining
the source code...(again 7 Jan 14) And we need to be a little more explicit in what's happening. The "Fetch"
in the following really means, copy the code at site addressed and paste it into a file named
"initrepo_hybrid.sh" in your
system dir. This will be your 'top level', also referred
to as your base and it is referred to as your "Build -or- Source Tree root".
(think I got'em all )
- $ cd ~/Android/cm11.0-rezound <-- 'Build -or- Source Tree root'
- Fetch cm11.0 initrepo_hybrid.sh https://raw.github.com/vigor/android...repo_hybrid.sh
into this dir.
The following "assumes" that you understand bash scripts. IF not check
here. -And-
You can trace what really happens with repo --trace init ...
Now then, "repo init" is supposed to create a .repo dir -but- I do believe that we are creating
one, on our own, because of the local_manifest manipulations.
> date
Sun May 4 08:36:00 MST 2014
> df -H /home
Filesystem Size Used Avail Use% Mounted on
/dev/sda7 458G 136G 322G 30% /home
#/bin/bash
#
# IF .repo doesn't exist, create it. Then push it on the stack and cd into it.
[ -d .repo ] || mkdir .repo
pushd .repo
# same logic as above.
[ -d local_manifests ] || mkdir local_manifests
pushd local_manifests
# we are now in ~/Android/cm11.0-rezound/.repo/local_manifests.
# Remove local_manifest.xml file IF it is there.
rm -f local_manifest.xml
# Bring over the latest ReZound manifest file.
wget https://raw.github.com/vigor/android/cm-11.0/local_manifests/local_manifest_hybrid.xml
># wget https://raw.github.com/vigor/android/cm-11.0/local_manifests/local_manifest_hybrid.xml
# --2014-04-20 08:15:36-- https://raw.github.com/vigor/android/cm-11.0/local_manifests/local_manifest_hybrid.xml
# Resolving raw.github.com (raw.github.com)... 199.27.77.133
# Connecting to raw.github.com (raw.github.com)|199.27.77.133|:443... connected.
# HTTP request sent, awaiting response... 200 OK
# Length: 996 [text/plain]
# Saving to: `local_manifest_hybrid.xml'
#
# 100%[==========================================================>] 996 --.-K/s in 0s
#
# 2014-04-20 08:15:37 (29.1 MB/s) - `local_manifest_hybrid.xml' saved [996/996]
# ReName it.
mv local_manifest_hybrid.xml local_manifest.xml
# pop back to .repo dir
popd
# pop back to cm11.0-rezound dir... which still 'looks' empty.
# -But is not. It contains .git and .repo hidden dirs.
popd
# To initialize your local repository using the CyanogenMod tree
# -u: specify a URL from which to retrieve a manifest repository.
# -b: specify a revision, i.e., a particular manifest-branch.
#
repo init -u https://github.com/CyanogenMod/android.git -b cm-11.0
# > repo init -u https://github.com/CyanogenMod/android.git -b cm-11.0
# Get https://gerrit.googlesource.com/git-repo
# remote: Counting objects: 114, done
# remote: Finding sources: 100% (114/114)
# remote: Total 2800 (delta 1570), reused 2800 (delta 1570)
# Receiving objects: 100% (2800/2800), 2.22 MiB | 1.37 MiB/s, done.
# Resolving deltas: 100% (1571/1571), done.
# From https://gerrit.googlesource.com/git-repo
# * [new branch] maint -> origin/maint
# * [new branch] master -> origin/master
# * [new branch] stable -> origin/stable
# * [new tag] v1.0 -> v1.0
# == == ==
# === Branches and New Tags which I am not gona include ===
# == == ==
# * [new tag] cm-7.1.0 -> cm-7.1.0
#
# Your identity is: Chuck Taylor <tr@compu.com>
# If you want to change this, please re-run 'repo init' with --config-name
#
# repo has been initialized in /home/ctaylor/Android/cm11.0-rezound
# ctaylor@dusty-tr2:~/Android/cm11.0-rezound
# >
Alllllrighty now... We have a break in the script. Mainly cause I want to describe something that just happened.
After the above, the cm11.0-rezound dir still 'looked' empty. But information concerning the CyanogenMod repositories was
placed in the two hidden dirs. At this time we are not going to show what it was. Just suffice to know that something
was done. The real action takes place in the next steps.
# Now we change into .repo and find:
# > lsd
# local_manifests/ manifests/ manifests.git/ manifest.xml@ repo/
# Notice that manifest.xml is just a 'link' to another file. Just so happens it is manifests/default.xml
# Push .repo and cd into it.
pushd .repo
sed -i "s/sync-c=\"true\"//g" manifest.xml
# The above command removed the /sync-c parameter in default.xml
# and copied it into manifest.xml
# Now pop back into cm11.0-rezound
popd
# Now we repo sync and clone git repositories to .repo/projects for each project in manifest.xml
# and local_manifest.xml, create working directories with .git having symlinks to the corresponding
# bare repository, check out the branch specified in the manifest, and update .repo/project.list. A lot to do
# and it takes some time.
repo sync -j8
# Push the vendor/cm dir and cd into it.
pushd vendor/cm
# get the prebuilts
# contains prebuilt toolchains for cross-compiling on linux and darwin (MacOS X)
# and a few tools for Windows. Cross-compiling allows you to build Android for
# an architecture (such as ARM-based CPU) from another architecture (such as x86_64).
./get-prebuilts
# > ./get-prebuilts
# % Total % Received % Xferd Average Speed Time Time Time Current
# Dload Upload Total Spent Left Speed
# 100 178 100 178 0 0 1881 0 --:--:-- --:--:-- --:--:-- 6592
# 100 474k 100 474k 0 0 1082k 0 --:--:-- --:--:-- --:--:-- 1082k
# Archive: ./proprietary/Term.apk
# inflating: ./proprietary/lib/armeabi/libjackpal-androidterm4.so
# inflating: ./proprietary/lib/mips/libjackpal-androidterm4.so
# inflating: ./proprietary/lib/x86/libjackpal-androidterm4.so
# pop back to cm11.0-rezound
popd
Refer: Doc: the cm source -
CyanogenMod -
Repo command reference -
How it Works
- Ok now, after you have fetched and created the file... and made it executable... execute it:
$ time ./initrepo_hybrid.sh
- Now then, as you probably have suspected, we did NOT execute initrepo_hybrid.sh this time thru. We did things manually.
Wanted to see it work and wanted to be able to see just what is going on.
According to Neo(Head Honcho at the ReZound
site.),
and _litz(a Senior Member)
execute the above command and it will do all the proper sync work for you.
We do not init repo from vigor's android.git directly anymore as the android.git for cm changes often.
Now then, it will take an hour -or- two, depending on Internet speed, to create the following structure under your 'Build -or- Source Tree root':
ctaylor@dusty-tr2:~/Android/cm11.0-rezound <-- 'Build -or- Source Tree root'
> lsd
abi/ build/ device/ initrepo_hybrid.sh* ndk/ sdk/
android/ cts/ docs/ kernel/ packages/ system/
art/ dalvik/ external/ libcore/ pdk/ tools/
bionic/ developers/ frameworks/ libnativehelper/ prebuilt/ vendor/
bootable/ development/ hardware/ Makefile prebuilts/ vigor/
Last execution times:
real 68m13.360s
user 20m58.646s
sys 8m5.273s
ctaylor@dusty-tr2:~/Android/cm11.0-rezound
April 15th, 2015/4:11pm The initrepo_hybrid.sh simply tells the
system to initiate a repo init cm based on their android.git and then create a local manifest to sync all of
our device tree specifics from our team git, then perform the repo sync for you. This was in an effort to keep
current with any changes CM was to make to their android.git that would cause sync or build problems for us
(in that projects that they've added were not getting pulled to our repo sync due to old android.git info).
Notice the word 'UpDate'. If you just performed the previous step... skip this one!!
Run this when you want to wipe out ALL changes and re-sync your source tree.
Here we had to switch to 'root' in order to accomplish the 'UpDate'.
Do believe that is cause we had to be 'root'
in order to do the 'build'!!
(Sometimes we hate computers.)
- $ cd ~/Android/cm11.0-rezound <-- 'Build -or- Source Tree root'
- IF you haven't already, copy fixrepo.sh from vigor/Build Scripts/ to this 'root' dir and
make it executable.
- $ time ./fixrepo.sh
- This will take a while... maybe.
At this point, IF you get:
fatal: manifest 'default.xml' not available
fatal: manifest default.xml not found
I am told you just run "fixrepo.sh" again. We'll see the next time it happens.
January 14th, 2014/1:31am Well, just running it again was NOT a good fix.
It required a change in fixrepo.sh and then we could execute with success.
April 20th, 2014/1:13pm Well, as you can see, from here down things got screwier and screwier.
But we will make it.
Please notice... at this time, 7 Jan 14, this section is for CM11 only!!
Annnnddd... there have been some changes. As noted above, the 'initrepo' scenario has changed and it looks like
the 'cherry picking' scenario has changed. Operations now are such that we copy the 'scripts' that we wish to
execute to our 'root' Build dir, which in this case is '~/Android/cm11.0-rezound', and execute them. These 'scripts'
are in a dir called '~/Android/cm11.0-rezound/vigor/Build Scripts'. Don't like the 'space' in the dir name -but- I guess these folks came from
a Windows environment.
$ cd ~/Android/cm11.0-rezound <-- 'Build -or- Source Tree root'
Ok, once these scripts are copied, make them 'executable'.
chmod +x scriptname.
Then execute the 'cherrypick.sh' script. (Note from the README:)
cherrypick.sh -- run this to apply all your local customizations and changes
add arg "auto" to apply all changes automatically (instead of hitting a key after each one)
add arg "check" to check for merged commits only
return value of 1 = errors detected
return value of 2 = merged commits detected
example : ./cherrypick.sh auto
And I must say... these "cherrypicks" are to be performed AFTER initrepo or fixrepo.
January 8th, 2014 / 8:57am Last night we tried it by just entering:
$ ./cherrypick.sh
-And- it was a failure... and once again in our distressed emotion, we forgot to record just what the failure was.
This time we are going to time it -and- record it... and do it automagically. Hitting the key after each one was a drag.
Oh, and one other thing... just for good measure we are going to make sure the environmet is set.
- $ cd ~/Android/cm11.0-rezound <-- 'Build -or- Source Tree root'
- $ . build/envsetup.sh
- $ time ./cherrypick.sh auto | tee CherryPick-1-8-14.txt
Cherry Picking Explained
Here we had to switch to 'root' in order to accomplish the build. Primarily cause of 'schedtool'.
OK. NO we didn't!! Just had to get our 'paths' straight!!!
Had to add '/usr/sbin' to our $PATH.
- $ cd ~/Android/cm11.0-rezound
- $ . build/envsetup.sh
- $ time ./make.sh
Now here is where the Patience is needed. This has taken as long as 7.72hrs to finish
on a Pentium D Two Core, 3.2Ghz with 4GB of RAM. -But- have also done it in as little as 1.63hrs. That was a
fixrepo ReBuild, so most of it was compiled already.
Refer:
Difference between breakfast, brunch and lunch
January 1st, 2015 / 8:08pm The "make" for this Android is a rather
complicated entity. It consists of many scripts, some of them in Python. One, 'common.py', controls some of the "Options".
And it has one of the 'Options' that will make your log file more verbose. -But- it didn't for me!!!
January 5th, 2015 / 9:27am Well, I didn't make it... Unless I fix it today. What?
The Camcorder problem. Wanted to fix it by my three year mark. Only got 14½hrs left.
Just got told to remove "sepolicy" in the CM12 code.
/device/htc/msm8660-common/BoardConfigCommon.mk
January 13th, 2015 / 4:25am Having difficulties with the newest "Stable" version.
It was recomended by my Team Members(Beau and Shaun) and upon grabbing it... it was missing a few things. Mainly the HTC dirs with the ReZound info.
One of them was/is in vendor. You change into the vendor dir and use:
git clone https://github.com/vigor/vendor_htc_vigor -b cm-11.0_hybrid htc/vigor
This will create a: vendor/htc/vigor/proprietary directory.
Allllrighty... had to copy over the:
kernel/htc/vigor-3.0 dir
for some reason not all of it was obtained in the "repo sync".
Needed vendor/cm/propritary/. Copied the one from Oct CM11.
Needed hardware/qcom/media-legacy Copied the one from Oct CM11.
Needed hardware/qcom/display-legacy Copied the one from Oct CM11.
November 21st, 2014 / 8:08am
Had trouble with a "clean, fresh" copy of CyanogenMod on the new machine. It appears
that they have added stuff that is not cool. I tar'd the last version on the 'old'
machine and un-tar'd it on this new PC. Was a bitch at first. The 16GB file would NOT
copy to my 64GB USB flash. That was cause it was formatted as FAT32 -and- FAT32 will
only allow "files" of 4GB max. Had to re-format the USB as NTFS. Fortunately Linux
will read NTFS by default now. At least our openSuSE is that way.
Now to test this copy and see IF it works -OR- if I just wasted a lot of time.
Before compressing it, I did a "make clobber" so it would be smaller. Now we need to do a
build and see IF it still works. I deleted the project, the .project file -and- the CM11workspace.
I left the VigorKernel project, which may or may not be a mistake.
Since I had done a "make clobber" before compressing, we don't need
to do another. The "repo sync" will NOT be performed cause I want the 'old' code. -And- since
there was NO resync, we won't need the "cherrypics". Should be able to just start a make.
We have a BIG Error!! Sometimes Computers make me so angry!! Now over
on the 'old' PC I compressed the "Whole" cm11.0-rezound directory. -But- I didn't get all of it. There is
a 'src' dir inside cm11.0-rezound/external/wpa_supplicant_8/hostapd/ that was 'empty'!! It is supposed to
contain some drivers. Gona copy that portion from the 'old' PC and see IF anything else is missing. NOPE!!
What the problem is... the "missing dir" is a link -and- links don't get compressed unless you
do something special --- which I did not do!! So I need to re-create that link.
ARRGGHHH!! Gona redo it. There is a way keep the links. The '-h' option when
you are 'UN-taring'.
March 4th, 2014 Now then, we just had some difficulties creating a build
of the latest. It failed with a missing library.
, , cherry pick the two commits, .
- make clobber -or- wipe to start clean. Please notice it is make and NOT make.sh
- 2:38 - 2:46am repo sync -or- initrepo_hybrid.sh IF you wiped
repo sync -f
-f is forced sync
just ensures all files are pulled
-j1 ensures all the roms repo's are up to date and deletes unnecessary reppo files
- cherry pick the two commits (These are to fix the camera) (Still Valid as of 4 May 14.)
Actually, the first is to fix the camera.
The second is to get the Spinning Wheel inside a Spinning Wheel boot animation... that I like. Really not sure IF it is
still required for the Camera fix -or- not.
- 7:43am cd into frameworks/av and then do this:
git fetch https://github.com/vigor/android_frameworks_av cm-11.0 && git cherry-pick 1dd29957a2292c0398923ffff8e2aca47c5931ac
From https://github.com/vigor/android_frameworks_av
* branch cm-11.0 -> FETCH_HEAD
[detached HEAD f491f16] Repeal CyanogenMod's Divorce with Legacy Devices <_< SMH
Author: David <DavidEddlemon@Hotmail.com>
9 files changed, 187 insertions(+), 3 deletions(-)
- 7:59am cd into vendor/cm and then do this:
git revert --no-edit b71b47d72b129915327f41653b06edaea5008534 || retval=1
[detached HEAD 2c846bd] Revert "Bootanimation by Dima Skvarskyi"
12 files changed, 0 insertions(+), 0 deletions(-)
rewrite prebuilt/common/bootanimation/1080.zip (67%)
rewrite prebuilt/common/bootanimation/1200.zip (64%)
delete mode 100644 prebuilt/common/bootanimation/1600.zip
rewrite prebuilt/common/bootanimation/240.zip (94%)
rewrite prebuilt/common/bootanimation/320.zip (91%)
rewrite prebuilt/common/bootanimation/360.zip (90%)
rewrite prebuilt/common/bootanimation/480.zip (85%)
rewrite prebuilt/common/bootanimation/540.zip (83%)
rewrite prebuilt/common/bootanimation/600.zip (81%)
rewrite prebuilt/common/bootanimation/720.zip (78%)
rewrite prebuilt/common/bootanimation/768.zip (76%)
rewrite prebuilt/common/bootanimation/800.zip (75%)
-
@kkozma brought it to my attention earlier today that there has been a code option in place since 2012
that is flag activated which can be activated to tell the system not to cache textures if they're expected
to use a lot of VRAM (rmcc). There is also a flag option to make the system use RGB565
instead of ARGB8888 as RGB565 uses considerably less memory.
This flag being used together with the texture caching should allow a smooth bootanimation on not so powerful devices
(such as the ReZound)
and hopefully save us memory on boot.
That being said, I have committed the two flags and am building now without reverting to the older (much cooler imo)
bootanimation mostly in an effort to drop our forced cherry-picking from 2 to 1 commit and free up memory
(which anyone can appreciate). I can't guarantee (and do not expect) it to resolve our Camcorder Playback issue
but it's definitely a step in the right direction.
It's somewhat surprising that nobody picked up on this option since back then but, then again, the problem only surfaced at the introduction to the new boot animation in cm-11.0.
I'll post it up when it completes built in about 45 min or so (provided it completes without incident).
-Neo
- rebuild (This one uses make.sh!!)
- Do nothing more than those 4 steps.
make: *** [/home/ctaylor/Android/cm11.0-rezound/out/target/product/vigor/obj/SHARED_LIBRARIES/libwebviewchromium_intermediates/LINKED/libwebviewchromium.so] Error 1
Investigation showed the 'LINKED' dir empty.
libwebviewchromium.so was/is missing.
Was it missed in the
repo sync -or- is it
created in the compile??
Well I got through a build but I had to skip over the
libwebviewchromium.so library that was making my build crash.
This is the new
Chromium WebView for
KitKat, so there's not a lot of info out there yet.
Others are having similar problems with it though.
From:
Android Central
We searched the Web and found that we possibly needed more memory. We can
not add anymore physical RAM cause our machine is maxed. So, we need a bigger swap. But how?? Well, we found the following:
You decided to create a separate swap partition upon installation. You can't resize it online - even an offline resize is going
to take a considerable amount of time and bear the potential risk of damaging your subsequent filesystem on /dev/sdc2.
The easiest option to work around this is to either create a new swap partition on a different disk you don't currently use
(or can afford to offline for re-partitioning) or simply use a swap file within an existing filesystem (which comes with some
minor performance penalty due to the
filesystem overhead).
The general procedure to add a swap partition/file:
- create either a new partition of type 82h or a new 8 GB file using
dd if=/dev/zero of=/swapfile bs=1M count=8192
- initialize it using
mkswap /swapfile
or mkswap /dev/sdXX
- use
swapon /swapfile
or swapon /dev/sdXX
respectively to enable your new swap space on-the-fly
- add an entry to /etc/fstab to make sure your new swap space gets activated upon reboot
Your current swap partition remains in use, you may want to get rid of it for the sake of complexity reduction. Just use
swapoff /dev/sdc1
to disable its usage for the moment and remove the reference in /etc/fstab
Refer:
syneticon-dj on
serverfault
In a terminal, type- "swapon" (without the quotation marks) this would indicate if swap is being used, and which partition is
used for swap; and if my answer helped you, please mark it as solved :) -
Aaditya Bagga Aug 14 '13 at 18:35
in linux, you can use
cat /proc/meminfo
to see total swap, and free swap (all linux)
cat /proc/swaps
to see which swap devices are being used (all linux)
swapon -s
to see swap devices and sizes (where swapon is installed)
vmstat
for current virtual memory statistics
You can have more than one swap file. They are assigned priorities. Make sure you have the fastest as the highest.
Refer:
Unix & Linux
Later: Now then, since all we did AFTER the above swapfile creation was RE-start
the 'make', we MUST assume that the lib was created during the compile ... and then tossed. Cause AFTER a SUCCESSFUL compile the lower
two dirs libwebviewchromium_intermediates/LINKED/ and libwebviewchromium.so were NOT there!! However, we were able to install
the code produced on our phone ... and it worked!
March 21, 2014 / 12:03pm We tried again and again were not successful. Had to go to
Neo for help. what he expained thusly and ane what we did:
- Latest build did not work... this was after a FULL wipe and restor. Trying to apply the latest cherrypicks:
ctaylor@dusty-tr2:~/Android/cm11.0-rezound/frameworks/av
> git fetch https://github.com/vigor/android_frameworks_av cm-11.0 && git cherry-pick d14051be7a7f6c8c66a6446a9471c95f2e0f6bbe
error: could not apply d14051b... Repeal CyanogenMod's Divorce with Legacy Devices <_< SMH
ctaylor@dusty-tr2:~/Android/cm11.0-rezound/vendor/cm
> git revert --no-edit b71b47d72b129915327f41653b06edaea5008534 || retval=1
# Not currently on any branch.
- His, Neo's, reply:
What's most likely happened, is that cm made changes to frameworks/av that cause incompatibility with my cherry pick to work with it.
Basically, when you modify source, the pick will continue to work so long as the lines being changed continue to remain the same every time you attempt to change it. However, when a change is made to source that changes any of those lines you are modifying with the cherry-pick, you will get an error.. At that point, what you will need to do is a "git status" to see which specific files are having issues, then do a git reset to unstage the attempted changes. Pull the files that have the build conflict and make the changes manually based on the changes I made to the files in the cherry-pick. After you've done that, save them somewhere else, attempt to add the cherry pick, drop the modified files over the current files, then commit the changes.
If you have difficulties or can't figure it out that's no problem, as I will be doing it soon.
I replied and asked him to let me know when he had a fix.
- Neo's reply:
Fixed it. Use this instead now: https://github.com/vigor/android_fra...e2aca47c5931ac
This kind of thing will continually happen from time to time unfortunately due to CM divorcing legacy devices.
- Still had problem with cherries...
You need to do a repo sync to clear any changes and and then try to apply the commit again. My build completed and I'm about to upload it.
- That didn't work either ...
cd into frameworks/av and do:
git reset --hard
Then perform your repo sync from your root cm-11.0 directory
- OK. the above fix worked and we have a clean repo. Now to do the 'cherrypick':
> git fetch https://github.com/vigor/android_frameworks_av cm-11.0 && git cherry-pick 1dd29957a2292c0398923ffff8e2aca47c5931ac
From https://github.com/vigor/android_frameworks_av
* branch cm-11.0 -> FETCH_HEAD
[detached HEAD 0d30e8e] Repeal CyanogenMod's Divorce with Legacy Devices <_< SMH
Author: David
9 files changed, 187 insertions(+), 3 deletions(-)
Alllllrighty now... the cherrypick worked!!
- Now the make... Later... we have success!!
You now should have a TWRP-flashable or a CWM-flashable .zip file
~/Android/cm11.0-rezound/out/target/product/vigor/cm-11-20131217-UNOFFICIAL-vigor.zip.
~/Android/cm11.0-rezound/out/target/product/vigor/cm-11-20140210-UNOFFICIAL-vigor.zip.
~/Android/cm11.0-rezound/out/target/product/vigor/cm-11-20140303-UNOFFICIAL-vigor.zip.
~/Android/cm11.0-rezound/out/target/product/vigor/cm-11-20140309-UNOFFICIAL-vigor.zip.
~/Android/cm11.0-rezound/out/target/product/vigor/cm-11-20140502-UNOFFICIAL-vigor.zip.
~/Android/cm11.0-rezound/out/target/product/vigor/cm-11-20140504-UNOFFICIAL-vigor.zip.
~/Android/cm11.0-rezound/out/target/product/vigor/cm-11-20140512-UNOFFICIAL-vigor.zip.
~/Android/cm11.0-rezound/out/target/product/vigor/cm-11-20140529-UNOFFICIAL-vigor.zip.
~/Android/cm11.0-rezound/out/target/product/vigor/cm-11-20140606-UNOFFICIAL-vigor.zip.
~/Android/cm11.0-rezound/out/target/product/vigor/cm-11-20140623-UNOFFICIAL-vigor.zip.
~/Android/cm11.0-rezound/out/target/product/vigor/cm-11-20140627-UNOFFICIAL-vigor.zip.
~/Android/cm11.0-rezound/out/target/product/vigor/cm-11-20140630-UNOFFICIAL-vigor.zip.
The
Red date portion is naturally changeable.
May 7th, 2014/4:54am We did a 'make clean' to reduce the size of all this and then we
"zipped it up" into cm11src.tgz for
safe keeping. Had to reformat the 16GB USB Drive to NTFS so it would fit. At any rate, we have our latest 'working'
KitKat source saved.
September 5th, 2014 /1:24pm - Flashing F2FS Flash Friendly File System
August 1st, 2014 And a special one for my 68th Birthday.
Package Complete: /home/ctaylor/Android/cm11.0-rezound/out/target/product/vigor/cm-11-20140801-UNOFFICIAL-vigor.zip
real 127m50.026s
user 140m30.528s
sys 18m34.175s
Because Ubuntu is based on Debian and openSuSE is based on Slackware, you will posibly get some build errors.
In the following section is a list of errors that can occur and how to fix them. However, these were from the "Originator"
and he was using
CM9 and
openSuSE 12.1.
We did not get the Errors. Just for reference in case you do.
Credits
Comments...