Debian packages for heimdall-frontend from official Heimdall website fail under Debian GNU/Linux Squeeze with the following message:
Code:
heimdall-frontend: symbol lookup error: heimdall-frontend: undefined symbol: _ZN9QListData11detach_growEPii
When trying to detect the device. This is due to a missing symbol in Debian's qt4.
Here's how to rebuild the frontend using Heimdall source code:
0. Install what's needed to build qt code
Code:
$ sudo apt-get build-essential
$ sudo apt-get install qt4-qmake
$ sudo apt-get install libqt4-dev
1. Fetch heimdall sources from GitHub (sorry no link, not allowed to post them yet)
2. Uncompress the obtained source
Code:
tar zxvf Benjamin-Dobell-Heimdall-v1.3.1-0-gfbbed42.tar.gz
3. Build libpit
Code:
$ cd Benjamin-Dobell-Heimdall-fbbed42/libpit/
$ ./configure
$ make
4. Build heimdall-frontend
cd to ../heimdall-frontend/. You'll need to modify a qt4.7 incompatible function, in Source/Packaging.cpp, modify:
Code:
toMSecsSinceEpoch
to
Code:
toTime_t
And then type
Code:
make
You should now have a functionnal heimdall-frontend located in ../Linux.
And if you're too lazy to build it yourself, here's a i386 / Debian Squeeze version as an attachement
Enjoy.
a great job. Thank you very much.
I recompiled heimdall-frontend after changed value in Packaging.cpp and all works fine.
You are a very big linux programmer
Thanks...
Thanks for the post on the fix; however, following the instructions, I have a snag.
Downloaded the Heimdall 1.3.1 source (GithubDOTcom/Benjamin-Dobell/Heimdall/zipball/v1.3.1)
Uncompressed it
cd heimdall/Benjamin-Dobell-Heimdall-fbbed42/libpit
./configure
make (got a libpit-1.3.a) as root
cd ../../Benjamin-Dobell-Heimdall-fbbed42/heimdall-frontend
vi Source/Packaging.cpp
:%s/toMSecsSinceEpoch/toTime_t/g
:wq
pwd
/home/user/heimdall/Benjamin-Dobell-Heimdall-fbbed42/heimdall-frontend
But I see no configure or make files for the frontend. What have I missed?
Thanks again.
Very first command "sudo apt-get build-essential" Gives me the following error
E: Invalid operation build-essential
Now what?
Please help thanks
k got past that did the first step now im lost!!
"sudo apt-get install build-essential" and not "sudo apt-get build-essential"
Skelli said:
"sudo apt-get install build-essential" and not "sudo apt-get build-essential"
Click to expand...
Click to collapse
ok so now im stuck on #3. i instead used heimdall 1.1.1 and uncompressed that here i'll copy and paste what i have done so you can help me go from there. starting with the unpacking of heimdall 1.1.1
"$ tar zxvf Benjamin-Dobell-Heimdall-47faaf0.tar.gz
heimdall/
heimdall/source/
heimdall/m4/
heimdall/doc-pak/
heimdall/autom4te.cache/
heimdall-frontend/
heimdall-frontend/doc-pak/
heimdall-frontend/Source/
libusb-1.0/
libusb-1.0/msvc/
libusb-1.0/m4/
libusb-1.0/libusb/
libusb-1.0/examples/
libusb-1.0/doc/
libusb-1.0/autom4te.cache/
libusb-1.0/libusb/os/
Linux/
OSX/
OSX/heimdall.kext/
OSX/heimdall.kext/Contents/
Win32/
Win32/Drivers/
heimdall/postremove-pak
heimdall/postinstall-pak
heimdall/missing
heimdall/ltmain.sh
heimdall/install-sh
heimdall/heimdall.vcxproj.filters
heimdall/heimdall.vcxproj
heimdall/description-pak
heimdall/depcomp
heimdall/configure.ac
heimdall/configure
heimdall/config.sub
heimdall/config.h.in~
heimdall/config.h.in
heimdall/config.guess
heimdall/autogen.sh
heimdall/aclocal.m4
heimdall/Makefile.in
heimdall/Makefile.am
heimdall/LICENSE
heimdall/60-heimdall-galaxy-s.rules
heimdall/source/main.cpp
heimdall/source/SendFilePartResponse.h
heimdall/source/SendFilePartPacket.h
heimdall/source/ResponsePacket.h
heimdall/source/ReceiveFilePartPacket.h
heimdall/source/RebootDevicePacket.h
heimdall/source/PitFileResponse.h
heimdall/source/PitFilePacket.h
heimdall/source/Packet.h
heimdall/source/OutboundPacket.h
heimdall/source/InterfaceManager.h
heimdall/source/InterfaceManager.cpp
heimdall/source/InboundPacket.h
heimdall/source/Heimdall.h
heimdall/source/FlashPartPitFilePacket.h
heimdall/source/FlashPartFileTransferPacket.h
heimdall/source/FileTransferPacket.h
heimdall/source/EndPhoneFileTransferPacket.h
heimdall/source/EndModemFileTransferPacket.h
heimdall/source/EndFileTransferPacket.h
heimdall/source/DumpResponse.h
heimdall/source/DumpPartPitFilePacket.h
heimdall/source/DumpPartFileTransferPacket.h
heimdall/source/DeviceInfoResponse.h
heimdall/source/DeviceInfoPacket.h
heimdall/source/ControlPacket.h
heimdall/source/BridgeManager.h
heimdall/source/BridgeManager.cpp
heimdall/source/BeginDumpPacket.h
heimdall/m4/lt~obsolete.m4
heimdall/m4/ltversion.m4
heimdall/m4/ltsugar.m4
heimdall/m4/ltoptions.m4
heimdall/m4/libtool.m4
heimdall/doc-pak/README
heimdall/doc-pak/LICENSE
heimdall/autom4te.cache/traces.1
heimdall/autom4te.cache/traces.0
heimdall/autom4te.cache/requests
heimdall/autom4te.cache/output.1
heimdall/autom4te.cache/output.0
heimdall-frontend/mainwindow.ui
heimdall-frontend/mainwindow.qrc
heimdall-frontend/heimdall-frontend.vcxproj.filters
heimdall-frontend/heimdall-frontend.vcxproj
heimdall-frontend/heimdall-frontend.pro
heimdall-frontend/heimdall-frontend.pri
heimdall-frontend/description-pak
heimdall-frontend/aboutform.ui
heimdall-frontend/Qt4VSPropertySheet.props
heimdall-frontend/doc-pak/README
heimdall-frontend/doc-pak/LICENSE
heimdall-frontend/Source/mainwindow.h
heimdall-frontend/Source/mainwindow.cpp
heimdall-frontend/Source/main.cpp
heimdall-frontend/Source/aboutform.h
heimdall-frontend/Source/aboutform.cpp
libusb-1.0/missing
libusb-1.0/ltmain.sh.orig
libusb-1.0/ltmain.sh
libusb-1.0/libusb-1.0.pc.in
libusb-1.0/libtool-nls.diff
libusb-1.0/install-sh
libusb-1.0/depcomp
libusb-1.0/configure.ac
libusb-1.0/configure
libusb-1.0/config.sub
libusb-1.0/config.h.in
libusb-1.0/config.guess
libusb-1.0/compile
libusb-1.0/autogen.sh
libusb-1.0/aclocal.m4
libusb-1.0/_testing.test
libusb-1.0/_libusb_static_2010.vcxproj
libusb-1.0/_libusb_static_2008.vcxproj.filters
libusb-1.0/_libusb_static_2008.vcproj
libusb-1.0/_libusb_dll_2008.vcproj
libusb-1.0/_libusb_2008.sln
libusb-1.0/_bump.sh
libusb-1.0/_bm.sh
libusb-1.0/_bd.cmd
libusb-1.0/_README.txt
libusb-1.0/TODO
libusb-1.0/THANKS
libusb-1.0/README
libusb-1.0/PORTING
libusb-1.0/NEWS
libusb-1.0/Makefile.in
libusb-1.0/Makefile.am
libusb-1.0/INSTALL_WIN.txt
libusb-1.0/INSTALL
libusb-1.0/COPYING
libusb-1.0/AUTHORS
libusb-1.0/.gitattributes
libusb-1.0/msvc/xusb_sources
libusb-1.0/msvc/xusb.vcproj
libusb-1.0/msvc/xusb.dsp
libusb-1.0/msvc/stdint.h
libusb-1.0/msvc/lsusb_sources
libusb-1.0/msvc/lsusb.vcproj
libusb-1.0/msvc/lsusb.dsp
libusb-1.0/msvc/libusb_static.vcproj
libusb-1.0/msvc/libusb_static.dsp
libusb-1.0/msvc/libusb_sources
libusb-1.0/msvc/libusb_dll.vcproj
libusb-1.0/msvc/libusb_dll.dsp
libusb-1.0/msvc/libusb.sln
libusb-1.0/msvc/libusb.dsw
libusb-1.0/msvc/inttypes.h
libusb-1.0/msvc/ddk_build.cmd
libusb-1.0/msvc/config.h
libusb-1.0/m4/lt~obsolete.m4
libusb-1.0/m4/ltversion.m4
libusb-1.0/m4/ltsugar.m4
libusb-1.0/m4/ltoptions.m4
libusb-1.0/m4/libtool.m4
libusb-1.0/libusb/sync.c
libusb-1.0/libusb/libusbi.h
libusb-1.0/libusb/libusb_version.h.in
libusb-1.0/libusb/libusb_version.h
libusb-1.0/libusb/libusb.h
libusb-1.0/libusb/libusb-1.0.rc
libusb-1.0/libusb/libusb-1.0.def
libusb-1.0/libusb/io.c
libusb-1.0/libusb/descriptor.c
libusb-1.0/libusb/core.c
libusb-1.0/libusb/Makefile.in
libusb-1.0/libusb/Makefile.am
libusb-1.0/examples/xusb.c
libusb-1.0/examples/lsusb.c
libusb-1.0/examples/dpfp_threaded.c
libusb-1.0/examples/dpfp.c
libusb-1.0/examples/_xusb_2008.vcproj
libusb-1.0/examples/_lsusb_2008.vcproj
libusb-1.0/examples/Makefile.in
libusb-1.0/examples/Makefile.am
libusb-1.0/doc/doxygen.cfg.in
libusb-1.0/doc/Makefile.in
libusb-1.0/doc/Makefile.am
libusb-1.0/autom4te.cache/traces.1
libusb-1.0/autom4te.cache/traces.0
libusb-1.0/autom4te.cache/requests
libusb-1.0/autom4te.cache/output.1
libusb-1.0/autom4te.cache/output.0
libusb-1.0/libusb/os/windows_usb.h
libusb-1.0/libusb/os/windows_usb.c
libusb-1.0/libusb/os/threads_windows.h
libusb-1.0/libusb/os/threads_windows.c
libusb-1.0/libusb/os/threads_posix.h
libusb-1.0/libusb/os/poll_windows.h
libusb-1.0/libusb/os/poll_windows.c
libusb-1.0/libusb/os/poll_posix.h
libusb-1.0/libusb/os/linux_usbfs.h
libusb-1.0/libusb/os/linux_usbfs.c
libusb-1.0/libusb/os/darwin_usb.h
libusb-1.0/libusb/os/darwin_usb.c
Linux/README
OSX/install-kext.sh
OSX/README.txt
OSX/heimdall.kext/Contents/Info.plist
Win32/README.txt
Win32/Drivers/zadig.exe
msvc2010.sln
README
[email protected]:~$"
now what cd .. am i trying to get to to build libpit?
Here's the result of trying what I thought might work.
"[email protected]:~$ cd Benjamin-Dobell-Heimdall-47faaf0/libpit/
bash: cd: Benjamin-Dobell-Heimdall-47faaf0/libpit/: No such file or directory"
Thanks a lot for your help I really appreciate it.
Heimdall 1.1.1 doesn't have libpit, so you can safely skip that part. However, I see no valid reason why anyone would use Heimdall 1.1.1 over 1.3.1.
Benjamin Dobell said:
Heimdall 1.1.1 doesn't have libpit, so you can safely skip that part. However, I see no valid reason why anyone would use Heimdall 1.1.1 over 1.3.1.
Click to expand...
Click to collapse
You say i can skip that part but i still get the error. I think i'll take your advice and try the 1.3.1 and see if i have better luck with that.
edit- So do I still need to build front end? If so how exactly?
How have you managed with version 1.3? And have you tried the pre-compiled binary in the original post? If you are still having problems, I would suggest the terminal. If you tell us which files you want to flash , we can tell you what the terminal command is.
dabl8 said:
How have you managed with version 1.3? And have you tried the pre-compiled binary in the original post? If you are still having problems, I would suggest the terminal. If you tell us which files you want to flash , we can tell you what the terminal command is.
Click to expand...
Click to collapse
ok here is something that might make things easier, I just did a fresh install of xubuntu 10.04-2 and havent attempted to install heimdall on it yet I would ultimately like to install heimdall 1.1.1 (because im used to it) If I have to install 1.3 then so be it, but again would like 1.1.1. So if you can give me the commands for terminal to install heimdall suite 1.1.1 from scratch you will get a thanks for every post you put on here with commands. Thanks a lot for replying and I look forward to getting heimdall back on here.
THANKS!!!!
I could be wrong, but all of the Heimdall binaries hosted on github (including 1.1.1) require a newer version of libusb-1.0-0 (2:1.0.8) than is installed on ubuntu 10.04. I have built v1.1.1 deb for ubuntu 10.04 i386, libusb-1.0-0 (2:1.0.6) http://ubuntuone.com/0Su9yv2tCVJI3gNgophBOJ. Or you can install with this ppa http://ppa.launchpad.net/modycz/heimdall/ubuntu , but this will also upgrade your libusb.
So it goes something like this:
Code:
wget http://ubuntuone.com/0Su9yv2tCVJI3gNgophBOJ
wget https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-frontend_1.1.1-1_i386.deb
mv 0Su9yv2tCVJI3gNgophBOJ.bin heimdall_1.1.1-1_i386.deb
sudo dpkg -i heimdall_1.1.1-1_i386.deb
sudo dpkg -i heimdall-frontend_1.1.1-1_i386.deb
Then run heimdall-frontend in the terminal. If that won't work download the binary from the original post and run that.
If that doesn't work you can always use heimdall just from the terminal:
Code:
heimdall flash --kernel zImage
, or whatever, with your device plugged in and in download mode. That was the way I installed a custom recovery on a galaxy s with Ubuntu 10.04. All the usual admonitions about flashing things to your phone apply here.
I edited the answer at http://askubuntu.com/questions/1379...ils-with-undefines-symbol-error/145458#145458 to make use of the launchpad ppa instead of my own build. You will need to install via the ppa if you are on 64-bit.
dabl8 said:
I could be wrong, but all of the Heimdall binaries hosted on github (including 1.1.1) require a newer version of libusb-1.0-0 (2:1.0.8) than is installed on ubuntu 10.04. I have built v1.1.1 deb for ubuntu 10.04 i386, libusb-1.0-0 (2:1.0.6) http://ubuntuone.com/0Su9yv2tCVJI3gNgophBOJ. Or you can install with this ppa http://ppa.launchpad.net/modycz/heimdall/ubuntu , but this will also upgrade your libusb.
So it goes something like this:
Code:
wget http://ubuntuone.com/0Su9yv2tCVJI3gNgophBOJ
wget https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-frontend_1.1.1-1_i386.deb
sudo dpkg -i heimdall_1.1.1-1_i386.deb
sudo dpkg -i heimdall-frontend_1.1.1-1_i386.deb
Then run heimdall-frontend in the terminal. If that won't work download the binary from the original post and run that.
If that doesn't work you can always use heimdall just from the terminal:
Code:
heimdall flash --kernel zImage
, or whatever, with your device plugged in and in download mode. That was the way I installed a custom recovery on a galaxy s with Ubuntu 10.04. All the usual admonitions about flashing things to your phone apply here.
I edited the answer at http://askubuntu.com/questions/1379...ils-with-undefines-symbol-error/145458#145458 to make use of the launchpad ppa instead of my own build. You will need to install via the ppa if you are on 64-bit.
Click to expand...
Click to collapse
Thanks for trying but this is what i got out of both methods trying to no avail
Code:
[email protected]:~$ wget http://ubuntuone.com/0Su9yv2tCVJI3gNgophBOJ
--2012-06-02 08:17:12-- http://ubuntuone.com/0Su9yv2tCVJI3gNgophBOJ
Resolving ubuntuone.com... 91.189.89.205, 91.189.89.204
Connecting to ubuntuone.com|91.189.89.205|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 23856 (23K) [application/x-deb]
Saving to: `0Su9yv2tCVJI3gNgophBOJ'
100%[======================================>] 23,856 41.7K/s in 0.6s
2012-06-02 08:17:15 (41.7 KB/s) - `0Su9yv2tCVJI3gNgophBOJ' saved [23856/23856]
[email protected]:~$ wget https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-frontend_1.1.1-1_i386.deb
--2012-06-02 08:18:01-- https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-frontend_1.1.1-1_i386.deb
Resolving github.com... 207.97.227.239
Connecting to github.com|207.97.227.239|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://cloud.github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-frontend_1.1.1-1_i386.deb [following]
--2012-06-02 08:18:04-- http://cloud.github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-frontend_1.1.1-1_i386.deb
Resolving cloud.github.com... 216.137.41.109, 216.137.41.118, 216.137.41.136, ...
Connecting to cloud.github.com|216.137.41.109|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 34462 (34K) [application/x-deb]
Saving to: `heimdall-frontend_1.1.1-1_i386.deb'
100%[======================================>] 34,462 --.-K/s in 0.1s
2012-06-02 08:18:06 (256 KB/s) - `heimdall-frontend_1.1.1-1_i386.deb' saved [34462/34462]
[email protected]:~$ sudo dpkg -i heimdall_1.1.1-1_i386.deb
[sudo] password for chris:
dpkg: error processing heimdall_1.1.1-1_i386.deb (--install):
cannot access archive: No such file or directory
Errors were encountered while processing:
heimdall_1.1.1-1_i386.deb
[email protected]:~$ sudo add-apt-repository ppa:modycz/heimdall
Error reading https://launchpad.net/api/1.0/~modycz/+archive/heimdall: Couldn't resolve host 'launchpad.net'
[email protected]:~$ sudo add-apt-repository ppa:modycz/heimdall
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv 1EC1E8C08499ECF7A5FE1743913B07AD8EC86B93
gpg: requesting key 8EC86B93 from hkp server keyserver.ubuntu.com
gpg: key 8EC86B93: public key "Launchpad PPA for Patrik Modesto" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
[email protected]:~$ sudo apt-get update
Get:1 http://security.ubuntu.com lucid-security Release.gpg [198B]
Ign http://security.ubuntu.com/ubuntu/ lucid-security/main Translation-en_CA
Ign http://security.ubuntu.com/ubuntu/ lucid-security/restricted Translation-en_CA
Ign http://security.ubuntu.com/ubuntu/ lucid-security/universe Translation-en_CA
Ign http://security.ubuntu.com/ubuntu/ lucid-security/multiverse Translation-en_CA
Get:2 http://ppa.launchpad.net lucid Release.gpg [316B]
Ign http://ppa.launchpad.net/modycz/heimdall/ubuntu/ lucid/main Translation-en_CA
Get:3 http://security.ubuntu.com lucid-security Release [57.3kB]
Get:4 http://ca.archive.ubuntu.com lucid Release.gpg [189B]
Hit http://ca.archive.ubuntu.com/ubuntu/ lucid/main Translation-en_CA
Hit http://ca.archive.ubuntu.com/ubuntu/ lucid/restricted Translation-en_CA
Hit http://ca.archive.ubuntu.com/ubuntu/ lucid/universe Translation-en_CA
Ign http://ca.archive.ubuntu.com/ubuntu/ lucid/multiverse Translation-en_CA
Get:5 http://ca.archive.ubuntu.com lucid-updates Release.gpg [198B]
Ign http://ca.archive.ubuntu.com/ubuntu/ lucid-updates/main Translation-en_CA
Ign http://ca.archive.ubuntu.com/ubuntu/ lucid-updates/restricted Translation-en_CA
Ign http://ca.archive.ubuntu.com/ubuntu/ lucid-updates/universe Translation-en_CA
Ign http://ca.archive.ubuntu.com/ubuntu/ lucid-updates/multiverse Translation-en_CA
Get:6 http://ca.archive.ubuntu.com lucid Release [57.2kB]
Get:7 http://ppa.launchpad.net lucid Release [13.9kB]
Get:8 http://security.ubuntu.com lucid-security/main Packages [414kB]
Get:9 http://ca.archive.ubuntu.com lucid-updates Release [57.3kB]
Get:10 http://ca.archive.ubuntu.com lucid/main Packages [1,386kB]
Get:11 http://ppa.launchpad.net lucid/main Packages [932B]
Get:12 http://security.ubuntu.com lucid-security/restricted Packages [2,855B]
Get:13 http://security.ubuntu.com lucid-security/main Sources [123kB]
Get:14 http://ca.archive.ubuntu.com lucid/restricted Packages [6,208B]
Get:15 http://ca.archive.ubuntu.com lucid/main Sources [659kB]
Get:16 http://security.ubuntu.com lucid-security/restricted Sources [1,259B]
Get:17 http://security.ubuntu.com lucid-security/universe Packages [130kB]
Get:18 http://security.ubuntu.com lucid-security/universe Sources [40.5kB]
Get:19 http://security.ubuntu.com lucid-security/multiverse Packages [5,368B]
Get:20 http://security.ubuntu.com lucid-security/multiverse Sources [2,323B]
Get:21 http://ca.archive.ubuntu.com lucid/restricted Sources [3,775B]
Get:22 http://ca.archive.ubuntu.com lucid/universe Packages [5,448kB]
Get:23 http://ca.archive.ubuntu.com lucid/universe Sources [3,165kB]
Get:24 http://ca.archive.ubuntu.com lucid/multiverse Packages [180kB]
Get:25 http://ca.archive.ubuntu.com lucid/multiverse Sources [119kB]
Get:26 http://ca.archive.ubuntu.com lucid-updates/main Packages [613kB]
Get:27 http://ca.archive.ubuntu.com lucid-updates/restricted Packages [4,617B]
Get:28 http://ca.archive.ubuntu.com lucid-updates/main Sources [221kB]
Get:29 http://ca.archive.ubuntu.com lucid-updates/restricted Sources [2,194B]
Get:30 http://ca.archive.ubuntu.com lucid-updates/universe Packages [270kB]
Get:31 http://ca.archive.ubuntu.com lucid-updates/universe Sources [99.9kB]
Get:32 http://ca.archive.ubuntu.com lucid-updates/multiverse Packages [11.3kB]
Get:33 http://ca.archive.ubuntu.com lucid-updates/multiverse Sources [5,537B]
Fetched 13.1MB in 1min 8s (193kB/s)
Reading package lists... Done
[email protected]:~$ wget https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-frontend_1.1.1-1_i386.deb
--2012-06-02 08:24:21-- https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-frontend_1.1.1-1_i386.deb
Resolving github.com... 207.97.227.239
Connecting to github.com|207.97.227.239|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://cloud.github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-frontend_1.1.1-1_i386.deb [following]
--2012-06-02 08:24:31-- http://cloud.github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-frontend_1.1.1-1_i386.deb
Resolving cloud.github.com... failed: Name or service not known.
wget: unable to resolve host address `cloud.github.com'
[email protected]:~$ wget https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-frontend_1.1.1-1_i386.deb
--2012-06-02 08:25:08-- https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-frontend_1.1.1-1_i386.deb
Resolving github.com... 207.97.227.239
Connecting to github.com|207.97.227.239|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://cloud.github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-frontend_1.1.1-1_i386.deb [following]
--2012-06-02 08:25:09-- http://cloud.github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-frontend_1.1.1-1_i386.deb
Resolving cloud.github.com... 216.137.41.6, 216.137.41.19, 216.137.41.45, ...
Connecting to cloud.github.com|216.137.41.6|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 34462 (34K) [application/x-deb]
Saving to: `heimdall-frontend_1.1.1-1_i386.deb.1'
100%[======================================>] 34,462 --.-K/s in 0s
2012-06-02 08:25:09 (76.7 MB/s) - `heimdall-frontend_1.1.1-1_i386.deb.1' saved [34462/34462]
[email protected]:~$ sudo apt-get install heimdall
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libusb-1.0-0
The following NEW packages will be installed:
heimdall
The following packages will be upgraded:
libusb-1.0-0
1 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 56.4kB of archives.
After this operation, 123kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
Get:1 http://ppa.launchpad.net/modycz/heimdall/ubuntu/ lucid/main libusb-1.0-0 2:1.0.8-2~lucid1 [31.7kB]
Get:2 http://ppa.launchpad.net/modycz/heimdall/ubuntu/ lucid/main heimdall 1.1.1-1~lucid2 [24.7kB]
Fetched 56.4kB in 1s (33.4kB/s)
(Reading database ... 114984 files and directories currently installed.)
Preparing to replace libusb-1.0-0 2:1.0.6-1 (using .../libusb-1.0-0_2%3a1.0.8-2~lucid1_i386.deb) ...
Unpacking replacement libusb-1.0-0 ...
Selecting previously deselected package heimdall.
Unpacking heimdall (from .../heimdall_1.1.1-1~lucid2_i386.deb) ...
Setting up libusb-1.0-0 (2:1.0.8-2~lucid1) ...
Setting up heimdall (1.1.1-1~lucid2) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
[email protected]:~$ sudo dpkg -i heimdall-frontend_1.1.1-1_i386.deb
Selecting previously deselected package heimdall-frontend.
(Reading database ... 114990 files and directories currently installed.)
Unpacking heimdall-frontend (from heimdall-frontend_1.1.1-1_i386.deb) ...
Setting up heimdall-frontend (1.1.1-1) ...
[email protected]:~$ heimdall-frontend
heimdall-frontend: symbol lookup error: heimdall-frontend: undefined symbol: _ZN9QListData11detach_growEPii
[email protected]:~$ heimdall flash --modem.bin
"-modem.bin" is not a valid argument
[email protected]:~$
My laptop is old its 32bit if you want any info off of it just let me know what to put in terminal and ill post the results.
Thanks again by the way
you can't write heimdall flash --modem.bin. heimdall help is what you need to run. you need to download the heimdall-frontend that the person posted in the first post if you want to use that
dabl8 said:
you can't write heimdall flash --modem.bin. heimdall help is what you need to run. you need to download the heimdall-frontend that the person posted in the first post if you want to use that
Click to expand...
Click to collapse
Thanks i'll try that now.
No luck with that either. lol i should be wearing a dunce cap!
heimdall flash --modem modem.bin
dabl8 said:
heimdall flash --modem modem.bin
Click to expand...
Click to collapse
Where does the modem.bin file and any other file i want to flash have to be? Good to be able to do it that way but would really love a front end to see it in. But for now I guess that will have to do.
Thanks again for your help.
the modem.bin file can be anywhere. if you have it in Downloads you would run heimdall flash --modem /home/bambam1978/Downloads/modem.bin
Related
this is a guide for setting up a build environment on ubuntu 10.10. there has been similar guides but i did not have any luck with them. i'll just post step by step what i did to get a good build environment set up and compile jaybob's source.
install ubuntu 10.10
install ubuntu, install all the latest updates, DO NOT INSTALL UBUNTU 11.04 I MADE THIS FOR 10.10!!!
restart ubuntu
go to system, administration, update manager
go to settings
go to other software
check both canonical partners and click close
download python
sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
sudo apt-get install python2.5
download jdk 6
sudo add-apt-repository "deb http://archive.canonical.com/ maverick partner"
sudo add-apt-repository "deb http://archive.canonical.com/ubuntu maverick partner"
sudo apt-get update
sudo apt-get install sun-java6-jdk
download sdk
download link: http://dl.google.com/android/android-sdk_r15-linux.tgz
take android-sdk-linux folder and move it inside your home folder
open terminal
cd android-sdk-linux
cd tools
./android
the sdk manager will open. download the platform tools and any sdk versions you wish to have
download git
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git-core
install required build packages
sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool
configure your usb
gksudo gedit /etc/udev/rules.d/51-android.rules
in the blank file that opens, paste this next line in the file:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
save and close the file.
then run in terminal:
sudo chmod a+r /etc/udev/rules.d/51-android.rules
cd
gedit .bashrc
in the file that opens, add these next lines to the top of the file:
#AndroidDev PATH
export PATH=${PATH}:${HOME}/android-sdk-linux/platform-tools/
save and close the file, then in terminal, type:
source ~/.bashrc
then in terminal type:
which adb
which adb will show you your adb path. if it says "/home/YOURLINUXNAME/android-sdk-linux/platform-tools//adb" your path is good.
connect your phone, do not mount usb, make sure debugging is checked, then in terminal type:
adb devices
my device showed up as "0123456789ABCDEF device", as long as it says device at the end its good.
create directories
mkdir -p ~/bin
mkdir -p ~/android/system
download repo and make executable
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
initialize the repository
cd ~/android/system/
repo init -u git://github.com/TeamHeroC/manifest_aosp_heroc.git
(the repo above is jaybob's repo, there are a couple different repos you can choose from, you can download the AOSP repo, or cyanogenmod's repo aswell from the wiki)
repo sync
copy proprietary files
(must have jaybob's or a cm based rom already flashed to phone)
cd ~/android/system/device/htc/heroc/
./extract-files.sh
build the source
. build/envsetup.sh
lunch aosp_heroc-eng
mka bacon
if all goes well, your rom zip will be in ~/android/system/out/target/product/heroc/
*** when youre initializing the repository, if youre are compiling cyanogenmod's, follow the instructions in the wiki when you get to that section. if you are compiling aosp, follow the instructions on the aosp website. everything before that step should give you a good build environment to decide which source you want to build.***
Thank you:
dastin1015 - i used some of his guide and he is a great developer.
jaybob413 - for being a great developer and for his repo.
cyanogenmod - for the source and some of their guide.
sykopompos - i used some of his guide.
mTeryk - for helping me figure out my adb issue.
youdug - for finding some of the sources and helping me figure everything out.
*reserved*
*second reserved*
glenny buster said:
copy proprietary files
(must have jaybob's or a cm based rom already flashed to phone)
cd ~/android/system/device/htc/heroc/
./extract-files.sh
Click to expand...
Click to collapse
This step should no longer be needed when building from the TeamHeroC repos. I added the proprietary files some time ago to set up one-stop shopping and eliminate the need to do anything other than init, sync, lunch, and build (yes, I am just that lazy). The vendor device makefiles and proprietary files should already be pulled from the vendor_htc_heroc repo into vendor/htc/heroc. If something got trashed, the proprietary files can also be copied from the device/htc/heroc/prebuilt/proprietary folder, and the vendor device makefiles can be regenerated by running setup-makefiles.sh in the device/htc/heroc folder.
It is true that if building from CM7 or other repos, you will probably need to populate the proprietary files into the vendor/htc/heroc/... directories by running extract-files.sh or pulling them from koush's proprietary_vendor_htc repo (where vendor files for all CM7 supported htc devices are stored). You can clone his repo by running (in some other folder/location):
Code:
git clone git://github.com/koush/proprietary_vendor_htc.git
Then copying the heroc folder to vendor/htc/heroc.
This can come in handy if your mobile doesn't have a TeamHeroC or CM7 based ROM loaded, you can't connect to the machine you are building on, or your device is experiencing technical difficulties.
After an initial successful build you should be able to generate an update by another repo sync, lunch, mka bacon.
I would generally recommend doing a make clobber to wipe out the previous build artifacts and ensure a clean build when you generate the update. This does mean that you will recompile everything, so if you are working with a machine that takes a long time to build you may only want to do this if you are having problems or seeing unexpected results. My current build system can do a complete build from scratch in about 15 minutes, so I am now in the habit of doing this every time I build. The machine I originally used to build took over 90 minutes, so I was less likely to invoke clobbering time unless I had issues or was ready to post a release.
awesome guide!!! you the man!
Ok so this is a guide that me and my friend made for compiling ROMs for our LG-P350 Now, this is pretty much universal and can be used for general development
This is the stuff you will need :
Ubuntu-can be found on the Ubuntu website http://www.ubuntu.com/start-download?distro=desktop&bits=64&release=lts (this is a direct link to the Ubuntu 12.04 64-bit version)
Python (included)
GNU Make
Java Development Kit (JDK) 6
Git
Before you can do anything you need to install Ubuntu. You can go with newer versions but i still think that 10.10 is best and this guide is adapted to it. You can install it like dual boot or use Wubi (Windows Ubuntu Installer). However if you choose Wubi there is a good chance that you won't have enough storage, so that's not recommended.Those who want to dual-boot check out this post http://forum.xda-developers.com/showpost.php?p=34669858&postcount=26
NOTE: You can do this in a virtual machine (for example VM Ware and Virtual box) but it will be a lot slower unless you have a VERY strong CPU and a LOT of RAM.
Generally Python is not needed since it's already in Ubuntu. However if you want to install it separately here's how:
First of all open the terminal. Now copy/paste these codes (one by one) and execute them:
Code:
sudo apt-get install build-essential gcc
cd Downloads
wget http://www.python.org/ftp/python/2.5.6/Python-2.5.6.tgz
tar -xvzf Python-2.5.6.tgz
cd Python-2.5.6
./configure --prefix=/usr/local/python2.5
make
make test
sudo make install ([B]NOTE[/B]: [I]You will be asked for your password, enter it and press enter[/I])
sudo ln -s /usr/local/python2.5/bin/python /usr/bin/python2.5
Now you need Sun JDK 6. Same procedure as with Python:
Code:
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo apt-get update
sudo apt-get install sun-java6-jdk
For those who get package error try these:
Code:
sudo add-apt-repository ppa:sun-java-community-team/sun-java6
sudo apt-get update
sudo apt-get install sun-java6-jdk
sudo update-java-alternatives -s java6-jdk
Now that JDK is installed it's time for GNU Make:
First of all download GNU Make from link given. Download version 3.82
Now extract the downloaded file to your Home directory.
Go to Home directory and change the name of GNU Make To make
Now open the Terminal and type the following codes
Link: http://ftp.gnu.org/gnu/make/
Code:
cd make
./configure
sudo make install
Now make is installed.
Next, we are going to install the dependencies:
FOR UBUNTU 10.10
Codes to type in terminal :
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 lib32readline5-dev lib32z-dev \ libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \ libxml2-utils xsltproc
export USE_CCACHE=1
If that method didn't work then try this:
You use the same commands BUT the first one is:
sudo apt-get install git-core gnupg flex bison gperf build-essential
Now it should download some stuff. When its done you need to do the same for the rest in the right order.
NOTE: Since I don't remember the right order i will just put the commands how they should be written if you get error read what's missing and put that in first.
Here are the rest of the lines:
Code:
sudo apt-get install zip curl
sudo apt-get install zlib1g-dev
sudo apt-get install libc6-dev
sudo apt-get install lib32ncurses5-dev
sudo apt-get install ia32-libs
sudo apt-get install x11proto-core-dev
sudo apt-get install libx11-dev
sudo apt-get install lib32readline5-dev
sudo apt-get install lib32z-dev
sudo apt-get install libgl1-mesa-dev g++-multilib
sudo apt-get install mingw32
sudo apt-get install tofrodos python-markdown
sudo apt-get install libxml2-utils
sudo apt-get install xsltproc
FOR UBUNTU 12.04
Code:
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Now for the Android SDK, ADB and ADB path:
1. SDK (Software-Development-Kit) :
Go to this link and download the Android SDK for Linux:
http://developer.android.com/sdk/index.html
After downloading it, extract it to the Home folder. You can probably extract where you want and change all the steps below to to fit your set up, but I like putting it in Home folder.
When you have extracted it in the Home folder change the name of the folder of android-sdk-linux to sdk.
Then open the Terminal and run these codes:
Code:
cd ~/sdk/tools/
./android sdk
When you run this, a window will pop up. For this you only need "Android SDK Tools" and "Android SDK Platform-tools". Just check these two and install them.
2. ADB (Android-Debug-Bridge):
Run this command to see if your ADB works. You have to have your android device connected in debugging mode.
Run these codes in the Terminal :
Code:
cd ~/sdk/platform-tools ./adb devices
When you entered the codes above, you should see something similar to this:
List of devices attached 0123456789ABCDEF device
NOTE: If you see output like given bellow we need to give the device permissions. Don't worry I had this too when I set my computer up for the first time.
List of devices attached ???????????? no permissions
Here is how we fix it:
Open the Terminal and type this:
Code:
gksudo gedit /etc/udev/rules.d/51-android.rules
After you've entered it, a window will pop up that will be blank. Now add the following commands and save it.
Code:
SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666"
Now save this File And follow the given codes
After you've entered those codes type these codes in too.
Code:
sudo service udev restart
sudo adb kill-server
sudo adb start-server
After you've entered those codes, restart Ubuntu.
Now to see if the problem is solved type these codes in:
Code:
cd ~/sdk/platform-tools ./adb devices
If everything is ok a output similar to this will be shown:
List of devices attached 0123456789ABCDEF device
Now to add the ADB path to system, so you don't have to cd to the SDK folder every time you want to use ADB:
So, first open up .bashrc with these codes:
Code:
sudo gedit ~/.bashrc
A window will pop up and there will be some text there. Scroll down to the bottom and add these lines:
Code:
export PATH=${PATH}:~/sdk/tools
export PATH=${PATH}:~/sdk/platform-tools
After you've done that, save it and reboot Ubuntu.
If everything is ok, you will get some output when you type the following codes in the terminal.
Code:
./adb devices
OR
Code:
adb shell
If you see:
Code:
adb not found[CODE]
Then it means you've done something wrong and ADB is not configured.
Next is GIT:
Open the browser and download git from given link
[URL]http://git-core.googlecode.com/files/git-1.7.9.6.tar.gz[/URL]
Extract GIT-1.7.9.6.tar.gz to your home directory
Rename the folder you extracted to from GIT-1.7.9.6.tar.gz to git
After you've done that, enter the following codes in the Terminal
[CODE]sudo aptitude build-dep git-core
sudo apt-get install zlib1g-dev
cd git
./configure
make
sudo make install
NOTE: If it doesn't work then install from this link:
http://kibyegon.wordpress.com/2010/0...u-lucid-10-04/
If the commands from above are not working then try this:
Code:
sudo apt-get install git-core
sudo apt-get install git
git
If it worked it should show this:
Code:
usage: git [--version] [--exec-path[=GIT_EXEC_PATH]] [--html-path]
[-p|--paginate|--no-pager] [--no-replace-objects]
[--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE]
[--help] COMMAND [ARGS]
The most commonly used git commands are:
add Add file contents to the index
bisect Find by binary search the change that introduced a bug
branch List, create, or delete branches
checkout Checkout a branch or paths to the working tree
clone Clone a repository into a new directory
commit Record changes to the repository
diff Show changes between commits, commit and working tree, etc
fetch Download objects and refs from another repository
grep Print lines matching a pattern
init Create an empty git repository or reinitialize an existing one
log Show commit logs
merge Join two or more development histories together
mv Move or rename a file, a directory, or a symlink
pull Fetch from and merge with another repository or a local branch
push Update remote refs along with associated objects
rebase Forward-port local commits to the updated upstream head
reset Reset current HEAD to the specified state
rm Remove files from the working tree and from the index
show Show various types of objects
status Show the working tree status
tag Create, list, delete or verify a tag object signed with GPG
See 'git help COMMAND' for more information on a specific command.
Now we will download the Repo and get the source code:
Codes to type in the Terminal :
Code:
mkdir ~/bin
PATH=~/bin:$PATH
sudo apt-get install curl
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
mkdir source
cd source
Ok so up to this part its mostly universal. However after this you need to sync up sources for your device. This will probably take a long time depending on your internet speed since the source is very big (also it will take up a lot of drive space: 14-30GB). After that you should build.
How to build
First you will need to get proprietary drivers from your device.
Connect your device via USB and enter the following commands (from the root of your source repository):
Code:
cd device/xxx/xxx where x is the path to your device
./extract-files.sh
cd ../../..
NOTE: Some developers can include these files in the source itself or can make them available for download from their Github page. Check that out with your developer for more info.
And start the build:
Code:
. build/envsetup.sh xxx
NOTE:Here x also varies since its unique for every device model
Now Android is building. You may need to wait a long time (depending on your hardware-mainly CPU and RAM for example I have a quad core 2.92Ghz CPU and 6GB of HyperX DDR3 ram and it took me about 10min for CM7 and about 20-30 min for CM9).Once it's done you should get this message:
Code:
Package complete:xxx.zip
That is your flashable .zip file you install from recovery.
Credits: Many thanks go to Keyur Maru who helped me learn how to develop and for making the base of this guide.
Reference: http://source.android.com/source/downloading.html
Very good tutorial for beginner
sangosnip69 said:
Very good tutorial for beginner
Click to expand...
Click to collapse
Thanks we tried our best since this is supposed to boost our dev base for our LG
Definitely one to try at home!
Sent from my GT-I9100 using xda premium
Wow 10min is real fast!! I recently tried CM9 directly from one of the Dev's forked repo and after about 4hours of build I got some build error! I need to get a better computer soon if I plan to get my hands real dirty! And if I may I have few suggestions - please mention that it will take a while to download the full repo from google sources else beginners may end up thinking something is wrong(which I did since it took me one full day to sync everything) and that it needs atleast 20-30GB disk space too..(Coz not everyone has Ubuntu as the only OS, I have three in my lapi!!)
A very good guide on the whole for a beginner!!!
pranks1989 said:
Wow 10min is real fast!! I recently tried CM9 directly from one of the Dev's forked repo and after about 4hours of build I got some build error! I need to get a better computer soon if I plan to get my hands real dirty! And if I may I have few suggestions - please mention that it will take a while to download the full repo from google sources else beginners may end up thinking something is wrong(which I did since it took me one full day to sync everything) and that it needs atleast 20-30GB disk space too..(Coz not everyone has Ubuntu as the only OS, I have three in my lapi!!)
A very good guide on the whole for a beginner!!!
Click to expand...
Click to collapse
Very true a great in depth and very informative tutorial for noobs like i was this would have helped me a lot.... Great work
btw pranks1989 i can help you with compiling for defy.... I used to compile roms from eppy's and quarx2k github and never got a error once it else onece eppy pinted out the mistake i was doing.... just send me a pm of your errors and i will try help
Great start for me!
You have been thanked!
Great start for me!
What would the procedure be if you want to create a rom that you can flash via Odin or Heimdall on a Mac client?
The guide I've been looking for ever since I had my first Android device (actually, my Optimus Me is my first Android device)...
Thanks for this great guide. I will try it today.
I already compiled a Rom, it took me 40 min. AMD 8 Core 3,1 MHz and 16 GB DDR3
But when i try a different device i always get errors, i hope your Guide will get me in to it.
serendipityguy said:
You have been thanked!
Great start for me!
What would the procedure be if you want to create a rom that you can flash via Odin or Heimdall on a Mac client?
Click to expand...
Click to collapse
I don't know but it's surely different for odin(I'm not sure that you can).And I don't know on mac either since I use ubuntu and windows. You can look up info on this on the official Android dev website.
Sent from my Optimus Me using xda premium
nerot said:
I don't know but it's surely different for odin(I'm not sure that you can).And I don't know on mac either since I use ubuntu and windows. You can look up info on this on the official Android dev website.
Sent from my Optimus Me using xda premium
Click to expand...
Click to collapse
Odlicno objasnjeno za pocetnike. Svaka cast
Good Beginners Guide. Thank you.
But 90% of it can also be found here:
http://source.android.com/source/initializing.html
This is what i used to build android for the pandaboard a few weeks ago.
And then I have a few questions.
1.
Why do you compile git when you can also download it from apt-sources? Imho this is just confusing for beginners.
2.
Where do you use git in your tutorial?
3.
Didn't you forget lunch and make at the very end of your tutorial?
". build/envsetup.sh" only sets up the environment, imho
(see also here: http://source.android.com/source/building.html)
nerot said:
First you will need to get proprietary drivers from your device.
Connect your device via USB and enter the following commands (from the root of your source repository):
Code:
cd device/xxx/xxx where x is the path to your device
./extract-files.sh
cd ../../..
Click to expand...
Click to collapse
How do I find out what the path is from my device?
I would add the option to install Ubuntu in a VM. Both VMWare player and VirtualBox are free and well supported. This way one can actually create some pre-packaged images with which one can start development right away. In fact I've already made two of them a year ago (one for Froyo and one for Gingerbread):
http://forum.xda-developers.com/showthread.php?t=881845
http://forum.xda-developers.com/showthread.php?t=1022407
One might also make on for ICS (for that Ubuntu 12.04 is also good, and since VMWare Player is free one could use that instead of VirtualBox, as VMWP has more user-friendly features)
If I had a nickle for every time I've seen a thread like this, I would have... a nickle.
Thank you from the bottom of my /dev/hda1
sztupy said:
I would add the option to install Ubuntu in a VM. Both VMWare player and VirtualBox are free and well supported. This way one can actually create some pre-packaged images with which one can start development right away. In fact I've already made two of them a year ago (one for Froyo and one for Gingerbread):
http://forum.xda-developers.com/showthread.php?t=881845
http://forum.xda-developers.com/showthread.php?t=1022407
One might also make on for ICS (for that Ubuntu 12.04 is also good, and since VMWare Player is free one could use that instead of VirtualBox, as VMWP has more user-friendly features)
Click to expand...
Click to collapse
True however unless you have a LOT of ram and a hexa-core CPU compilation under a vm is significantly slower and that's why I didn't add it.But the procedure is the same anyway.
Sent from my Optimus Me using xda premium
Gigadroid said:
How do I find out what the path is from my device?
Click to expand...
Click to collapse
Google is your friend
Sent from my Optimus Me using xda premium
TheBadFish said:
Good Beginners Guide. Thank you.
But 90% of it can also be found here:
http://source.android.com/source/initializing.html
This is what i used to build android for the pandaboard a few weeks ago.
And then I have a few questions.
1.
Why do you compile git when you can also download it from apt-sources? Imho this is just confusing for beginners.
2.
Where do you use git in your tutorial?
3.
Didn't you forget lunch and make at the very end of your tutorial?
". build/envsetup.sh" only sets up the environment, imho
(see also here: http://source.android.com/source/building.html)
Click to expand...
Click to collapse
1.Idk I found this thing simple as well
2.I will review it later since I'm on my phone now and its 00:13 here
3.I don't think it's necessary since I use the same procedure for my rom compilation. I will add it tough just in case someone gets an error.Thanks for the tip.
Sent from my Optimus Me using xda premium
I'll try this on my six core seeing as it would make a perfect devving machine.
just following
Just posting here to follow. I will have to try this tonight. This looks awesome!
Here are the steps to build your own kernel from source. This guide is showing you how to build your first the stock kernel on your own..... It is kick start for making things on your own way....
This guide applies to i9082/i9082L and general devices also.:laugh:
This guide assumes you have basic knowledge of linux and linux system configuration.
Prerequisites
1. Ubuntu 13.10
2. patience...lots and lots of patience.
Click to expand...
Click to collapse
Here starts the fun:-
1. Installing ubuntu 13.10.
This can be done in 3 ways and I am not gonna cover it all.
- along with windows ,i.e dual boot
- in virtualbox within windows
- as a windows application installation with "wubi" installer
For starting user i think second option, i.e installing in virtualbox is best.
here's starting tutorials
http://www.youtube.com/watch?v=tDDRFiwHujg
NOTE - you should have atleast 100 Gb partion for virtualbox.
Click to expand...
Click to collapse
2. Getting the kernel source.
Download source from http://opensource.samsung.com/
Type i9082 in search box and download "GT-I9082_SEA_JB_Opensource_Update1.zip"
After download unzip the source into new folder in home directory.
Type in terminal from you kernel directory.
Code:
unzip GT-I9082_SEA_JB_Opensource_Update1.zip
Then extract tar.
Code:
mkdir kernel
tar xzf kernel.tar.gz -C kernel
Click to expand...
Click to collapse
3. Setting up building environment.
Copied from http://soupdawg.wordpress.com/
All credits goes to
mysteriously inconspicuous
Click to expand...
Click to collapse
Initializing a fresh Android Build Environment in Ubuntu 13.10 sucks, right? The instructions at the AOSP page are outdated and inaccurate. Near as I can tell, they try to have you install 2 JDKs, the first one not even being the correct link for Saucy Salamander, and the second being OpenJDK. Which might work. But I dunno about all that, I’d rather have Oracle’s official stamp when it comes to building for Android.
Currently most of the guides are up to 12.04 LTS, which is fine and dandy, but being on the cutting edge is nice too.
This guide applies to all variations of Ubuntu 13.10 Saucy Salamander 64 bit. Do not use the 32 Bit version. Also, PAY CLOSE ATTENTION when to use “sudo” and when to not. It can make things funky if you do something as root that you shouldn’t.
Much thanks goes out to Google, ProTekk, Canonical, and everyone else that I read a random paragraph here and snippet there.
First, let’s set up the correct JDK.
Many of you probably have some kind of wrong Java installed unless you’re starting with a fresh Ubuntu base, and even then maybe.
Let’s get rid of that. Copy and paste this into a Terminal window:
Code:
sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
Follow the instructions to remove OpenJDK.
If you must keep it, it’s possible. But I’m not going to tell you how to do it here. I don’t want any chance of confusion or mistake.
Now copy and paste the following into the Terminal:
Code:
sudo add-apt-repository ppa:webupd8team/java
This will add the correct PPA to your system for updated builds of Java 6 JDK that are compatible with 13.10.
No more unrecognized Java version errors! And it will update automatically with the rest of your system.
Next, we actually need to install the package. More copy-paste:
Code:
sudo apt-get update && sudo apt-get install oracle-java6-installer
Follow the on-screen instructions. You have to Accept the Licensing Agreement to complete the install. Hopefully no human centipede clauses.
Let’s make sure the correct version of Java is activated, run the following Terminal command:
Code:
java -version
You should see something like the following:
Code:
java version “1.6.0_45″
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01, mixed mode)
Ok, back to a fresh Terminal prompt. Time for installing the guts to build stuff in Ubuntu:
Code:
sudo apt-get install git-core gnupg ccache lzop flex bison gperf build-essential zip curl zlib1g-dev zlib1g-dev:i386 libc6-dev lib32ncurses5 lib32z1 lib32bz2-1.0 lib32ncurses5-dev x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 lib32z-dev libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc readline-common libreadline6-dev libreadline6 lib32readline-gplv2-dev libncurses5-dev lib32readline5 lib32readline6 libreadline-dev libreadline6-dev:i386 libreadline6:i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev lib32bz2-dev libsdl1.2-dev libesd0-dev squashfs-tools pngcrush schedtool libwxgtk2.8-dev python
When that is done installing, run the following command in your Terminal window:
Code:
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
That’s it on the package side of things.
You guessed it, time for more Terminal. This really is the easiest way, seriously. And it’s totally worth it when you’re basking in the glory of a bunch of people on XDA.
The binary for a program called “repo” will let you talk to git servers and download all that precious source code. That second part after the && allows it to be executable:
Code:
mkdir ~/bin && curl http://commondatastorage.googleapis.com/git-repo-downloads/repo ~/bin/repo && chmod a+x ~/bin/repo
Use your favorite text editor to open ~/.bashrc
I like nano:
Code:
sudo nano ~/.bashrc
At the very bottom, add the following line:
Code:
export PATH=~/bin:$PATH
Save it. In nano that would be Ctrl-O and then Enter. Then Ctrl-X to exit back to a prompt. Restart bash:
Code:
source ~/.bashrc
That should be everything. Now you’re ready to build Android the right way. Luck!
4. Installing toolchain
Anyway, first order of the day is to get the official arm toolchain, which I'm going to install in /usr/local/share/ since I plan to keep using it for some time:
Code:
# cd /usr/local/share/
# git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6
Cloning into 'arm-eabi-4.6'...
remote: Sending approximately 124.64 MiB ...
remote: Counting objects: 33, done
remote: Finding sources: 100% (33/33)
remote: Total 580 (delta 146), reused 580 (delta 146)
Receiving objects: 100% (580/580), 124.64 MiB | 715 KiB/s, done.
Resolving deltas: 100% (146/146), done.
Now, let's add that arm toolchain to our path:
Code:
# export PATH=$PATH:/usr/local/share/arm-eabi-4.6/bin
# arm-eabi-gcc --version
arm-eabi-gcc (GCC) 4.6.x-google 20120106 (prerelease)
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5. Compiling kernel
Now we need to set the variables that will tell the OS that we're cross compiling (again, something that you may want to do in your .profile using something like alias cross='export ARCH="arm";export SUBARCH="arm";export CROSS_COMPILE="arm-eabi-"'):
Code:
# export ARCH=arm
# export SUBARCH=arm
# export CROSS_COMPILE=arm-eabi-
Finally, we can initialize our default config and get going:
Prepare source for new compilation
Code:
make bcm28155_capri_ss_baffin_rev05_defconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/lex.zconf.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
arch/arm/mach-capri/custom_boards/Kconfig:19:warning: defaults for choice values not supported
arch/arm/mach-capri/custom_boards/Kconfig:25:warning: defaults for choice values not supported
arch/arm/mach-capri/custom_boards/Kconfig:31:warning: defaults for choice values not supported
arch/arm/mach-capri/custom_boards/Kconfig:37:warning: defaults for choice values not supported
#
# configuration written to .config
#
Code:
# make -j*
(...)
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
* stands for number of cpus your computer has.like my has 4 so I will make it j4
* bcm28155_capri_ss_baffin_rev05_defconfig is stock config, for cm11 you will have diffrent config and for some cutom kernel something else.
6. Crafting an Android boot.img
The format of this Android boot images can be found in the bootimg.h of the mkbootimg tool from the android platform/system/core source. I guess we have to start somewhere, and we'll need to produce our own images, so let's start by fetching and recompiling mkbootimg then.
Code:
# git clone https://android.googlesource.com/platform/system/core bootimg-tools
Cloning into 'bootimg-tools'...
remote: Counting objects: 92, done
remote: Finding sources: 100% (92/92)
remote: Total 19302 (delta 11674), reused 19302 (delta 11674)
Receiving objects: 100% (19302/19302), 5.87 MiB | 655 KiB/s, done.
Resolving deltas: 100% (11674/11674), done.
# cd bootimg-tools/libmincrypt/
# gcc -c *.c -I../include
# ar rcs libmincrypt.a *.o
# cd ../mkbootimg
# gcc mkbootimg.c -o mkbootimg -I../include ../libmincrypt/libmincrypt.a
mkbootimg.c: In function 'main':
mkbootimg.c:245:9: warning: assignment discards 'const' qualifier from pointer target type [enabled by default]
# cp mkbootimg /usr/local/bin/
# cd ../cpio
# gcc mkbootfs.c -o mkbootfs -I../include
# cp mkbootfs /usr/local/bin/
New improved bootimg-tools can be found at.
Code:
# wget https://github.com/pbatard/bootimg-tools/archive/master.zip
lets compile from there
Code:
# cd /usr/src/android/bootimg-tools/mkbootimg/
# wget https://raw.github.com/pbatard/bootimg-tools/master/mkbootimg/unmkbootimg.c
# gcc -o unmkbootimg unmkbootimg.c
# cp unmkbootimg /usr/local/bin/
Now at last, you have the minimum of unmkbootimg, mkbootimg and mkbootfs installed in your path, and we can get going with our testing of the kernel.
I'll assume that you have a /usr/src/android/boot where you copied your boot.img, so let's get going....
Code:
# cd /usr/src/android/boot/
# ls
boot.img
# unmkbootimg -i boot.img
kernel written to 'kernel' (4738320 bytes)
ramdisk written to 'ramdisk.cpio.gz' (516287 bytes)
To rebuild this boot image, you can use the command:
mkbootimg --base 0 --pagesize 4096 --kernel_offset 0xa2008000 --ramdisk_offset 0xa3000000 --second_offset 0xa2f00000 --tags_offset 0xa2000100 --cmdline 'console=ttyS0,115200n8 [email protected] androidboot.console=ttyS0 vc-cma-mem=0/[email protected]' --kernel kernel --ramdisk ramdisk.cpio.gz -o boot.img
Code:
# ls
boot.img kernel ramdisk.cpio.gz
As an aside that you don't need to run, but since it should be elementary that this is the basic functionality you want from a proper boot image unpack tool, we can confirm that the data provided by the unpack tool will produce a boot.img that is binary identical to the original one-
Code:
# mkbootimg --base 0 --pagesize 4096 --kernel_offset 0xa2008000 --ramdisk_offset 0xa3000000 --second_offset 0xa2f00000 --tags_offset 0xa2000100 --cmdline 'console=ttyS0,115200n8 [email protected] androidboot.console=ttyS0 vc-cma-mem=0/[email protected]' --kernel kernel --ramdisk ramdisk.cpio.gz -o myboot.img
Code:
# ls
boot.img kernel myboot.img ramdisk.cpio.gz
# cmp -l boot.img myboot.img
#
Moving on. Since we just want to test a kernel, we shouldn't really have to touch the cpio image (ramdisk), but then again, my goal here is to give you as many pointers as I can, so we might as well see how we craft our own ramdisk while we're at it. What we're going to do here, as an academical exercise, is add an it_works file at the root of the filesystem, which we'll look for after we booted, to confirm that can use our modified stuff all the way through.
Code:
# mkdir ramdisk
# cd ramdisk
# gunzip -c ../ramdisk.cpio.gz | cpio -iu
1841 blocks
# ls
charger init.superuser.rc
data init.trace.rc
default.prop init.usb.rc
dev lpm.rc
file_contexts proc
fstab.capri_ss_baffin property_contexts
fstab.goldfish res
init sbin
init.bcm281x5.usb.rc seapp_contexts
init.capri_ss_baffin.rc sepolicy
init.cm.rc sys
init.environ.rc system
init.goldfish.rc ueventd.capri_ss_baffin.rc
init.log.rc ueventd.goldfish.rc
init.rc ueventd.rc
init.recovery.capri_ss_baffin.rc
# touch it-works
# ls
charger init.superuser.rc
data init.trace.rc
default.prop init.usb.rc
dev it-works
file_contexts lpm.rc
fstab.capri_ss_baffin proc
fstab.goldfish property_contexts
init res
init.bcm281x5.usb.rc sbin
init.capri_ss_baffin.rc seapp_contexts
init.cm.rc sepolicy
init.environ.rc sys
init.goldfish.rc system
init.log.rc ueventd.capri_ss_baffin.rc
init.rc ueventd.goldfish.rc
init.recovery.capri_ss_baffin.rc ueventd.rc
# find . | cpio -o -H newc | gzip > ../myramdisk.cpio.gz
1850 blocks
# cd ..
# ls
boot.img kernel myramdisk.cpio.gz ramdisk/ ramdisk.cpio.gz
We're finally set for the last part, where we copy the kernel we compiled earlier, and invoke mkbootimg with the set of parameters we got from unmkbootimg, and use both our modified kernel and cpio image:
Code:
# cp ~/kernel/arch/arm/boot/zImage .
# ls
boot.img kernel myramdisk.cpio.gz ramdisk/ ramdisk.cpio.gz zImage*
# mkbootimg --base 0 --pagesize 4096 --kernel_offset 0xa2008000 --ramdisk_offset 0xa3000000 --second_offset 0xa2f00000 --tags_offset 0xa2000100 --cmdline 'console=ttyS0,115200n8 [email protected] androidboot.console=ttyS0 vc-cma-mem=0/[email protected]' --kernel zImage --ramdisk myramdisk.cpio.gz -o myboot.img
# ls
boot.img kernel myboot.img myramdisk.cpio.gz ramdisk/ ramdisk.cpio.gz zImage*
7. testing new boot.img
Finally, a custom boot.img we can test. Let's press on by copying this myboot.img file into the directory we have adb and fastboot installed and run the following ser of commands which, unlike what many other guides seem to advise (what the heck, guys?), is NOT going to flash the kernel/boot.img but simply run it from memory. This means that, in case there's any mishap, you can simply power the "grand" off and you'll be good as new:
Code:
# ./adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
# ./adb reboot bootloader
# ./fastboot boot myboot.img
downloading 'boot.img'...
OKAY [ 0.223s]
booting...
OKAY [ 0.023s]
finished. total time: 0.246s
All in all, this looks fairly good. And a quick look to the root filesystem (through adb shell or through ssh) will also confirm that our it_works file is there, so we can also add whatever we want on the initial filesystem. Neat!
From there on, you can go ahead and tweak your kernel and initial filesystem exactly as you see fit. And after you have tested that everything works as it should, you can go ahead and flash the boot partition with your shiny custom boot.img, using:
ODIN or cwm flashable zip
This is last part...
8. making flashable files
Tar your boot.img file so it can be flashed with Odin.
tar cvf mynewkernel.tar boot.img
md5sum -t mynewkernel.tar >> mynewkernel.tar
mv mynewkernel.tar mynewkernel.tar.md5
Click to expand...
Click to collapse
Note:- myboot.img is renamed to boot.img
9.Flashing kernel through ODIN
Flash mynewkernel.tar.md5 with odin under PDA. Please follow the flashing guides found in other posts.
Hope i help few of you...
Please HIT thanks if you find this helpful.:laugh:
Thankyou k2wl for this tutorial and pls also tell how to get pawitp source code for rom and kernel from his repositries : https://github.com/pawitp/android_device_samsung_i9082
https://github.com/pawitp/android_kernel_samsung_i9082
Repo tool is not working because there is no android manifest file in his repository
Pls help me
mr.phantom said:
Thankyou k2wl for this tutorial and pls also tell how to get pawitp source code for rom and kernel from his repositries : https://github.com/pawitp/android_device_samsung_i9082
https://github.com/pawitp/android_kernel_samsung_i9082
Repo tool is not working because there is no android manifest file in his repository
Pls help me
Click to expand...
Click to collapse
run the following in terminal
$git clone https://github.com/pawitp/android_device_samsung_i9082.git
and
$ git clone https://github.com/pawitp/android_kernel_samsung_i9082.git
k2wl said:
run the following in terminal
$git clone https://github.com/pawitp/android_device_samsung_i9082.git
and
$ git clone https://github.com/pawitp/android_kernel_samsung_i9082.git
Click to expand...
Click to collapse
well i already have done that cloning for cm11 but it had only downloaded files around 200KB and i dont think so that cm11 source code would be that much small
hi
mr.phantom said:
well i already have done that cloning for cm11 but it had only downloaded files around 200KB and i dont think so that cm11 source code would be that much small
Click to expand...
Click to collapse
That's not cm11 source. For that u need another tutorial.
Meanwhile try wiki.CyanogenMod.org
It has instructions for Building for new device
Code:
unmkbootimg.c:25:21: fatal error: bootimg.h: No such file or directory
#include "bootimg.h"
^
compilation terminated.
Getting this while compiling unmkbootimg
i actually am surprises that there are many unofficial CMs in high ends with HALO IN IT.. though our developers try to make rom as close to real one as possible...what if the users want halo integration (as developers only know it :/)
help..
akiratoriyama said:
Code:
unmkbootimg.c:25:21: fatal error: bootimg.h: No such file or directory
#include "bootimg.h"
^
compilation terminated.
Getting this while compiling unmkbootimg
Click to expand...
Click to collapse
try compiling as a root.
k2wl said:
try compiling as a root.
Click to expand...
Click to collapse
How to convert zImage to boot.img
Or do I have to directly copy it ?
Sent from my GT-I9082 using Tapatalk
raghavsharmaxda said:
i actually am surprises that there are many unofficial CMs in high ends with HALO IN IT.. though our developers try to make rom as close to real one as possible...what if the users want halo integration (as developers only know it :/)
help..
Click to expand...
Click to collapse
k2wl said:
try compiling as a root.
Click to expand...
Click to collapse
akiratoriyama said:
How to convert zImage to boot.img
Or do I have to directly copy it ?
Sent from my GT-I9082 using Tapatalk
Click to expand...
Click to collapse
read the last section of post, it covers the conversion of zimage to boot.img...
seems you compiled successfully.
congrats.:victory:
But what about boot.img ?
We need a boot.img in /android/boot ?
Now at last, you have the minimum of unmkbootimg, mkbootimg and mkbootfs installed in your path, and we can get going with our testing of the kernel.
I'll assume that you have a /usr/src/android/boot where you copied your boot.img, so let's get going....
Click to expand...
Click to collapse
Hi @k2wl.For the part "make -j8",if you don't mind putting a sign for others to only compile at the amount of their CPU have otherwise it will caused some error for others who are compiling
1 CPU= make -j1 with least error
Sent from my iPad using Tapatalk
Really nice guide especially about packing the initramfs with the zimage to make boot.img.
Sent from my GT-I9082 using Tapatalk
akiratoriyama said:
But what about boot.img ?
We need a boot.img in /android/boot ?
Click to expand...
Click to collapse
take one from my stock kernel zip....
Techix18 said:
Hi @k2wl.For the part "make -j8",if you don't mind putting a sign for others to only compile at the amount of their CPU have otherwise it will caused some error for others who are compiling
1 CPU= make -j1 with least error
Sent from my iPad using Tapatalk
Click to expand...
Click to collapse
thanks for suggestion.
skullface said:
Really nice guide especially about packing the initramfs with the zimage to make boot.img.
Sent from my GT-I9082 using Tapatalk
Click to expand...
Click to collapse
thanks....will modify more..
k2wl said:
That's not cm11 source. For that u need another tutorial.
Meanwhile try wiki.CyanogenMod.org
It has instructions for Building for new device
Click to expand...
Click to collapse
ok will check it out and will you make a guide for that also??
mr.phantom said:
ok will check it out and will you make a guide for that also??
Click to expand...
Click to collapse
if people wanted it, will make cm11 compilation from source tutorial for it.
Thanks to ya k2wl
{
"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"
}
Sent from my GT-I9082 using Tapatalk
happy developing.....glad i helped you...
keep trying for learning new features...
k2wl said:
if people wanted it, will make cm11 compilation from source tutorial for it.
Click to expand...
Click to collapse
Pls k2wl make a new tutorial which include cm11 compilation for grand from source and its kernel also
Hey @k2wl
Just wanted to say thank you for this comprehensive guide. Very detailed.
I never had any interest in tweaking a kernel. I am more of a java guy. But after reading your guide, I thought, why not?!
So I started working on it. Now I have a fully functional kernel compiled separately from the ROMs that I compile.
I even named it. Nebula Kernel.
Learning alot about kernels since I started working on it. As I am tweaking nebula for myself and i'll use this kernel as my daily driver so i'll add tweaks and governors according to me, the ones which I'll use. I like keeping things light and simple! I'll use your github for reference and help. If I face any problems, I'll ask you.
Thank you for the guide!
PHP:
Guide: How To Build AOSP From Source With Linux Mint 16 - Nexus 7 (2013) KVT49L
Important Note: Do NOT use Linux Mint 16 KDE to do this guide, it will seriously mess up your programs menu when you remove the old Java. This guide has been tested and is working on Linux Mint 16 Cinnamon and Linux Mint 16 MATE
Got the KVT49L repos working and guide is updated to reflect this. This build includes several bug fixes from the KOT49H build but it is NOT 4.4.3, just an updated version of 4.4.2.
I started this guide as I could not find a step by step detailed guide to build a stock AOSP from source with Linux Mint 16.
All the steps should work in Ubuntu but I haven't tried so not 100% sure of that.
All this assumes your tablet is already unlocked.
Here goes:
Important note: Anything that is bolded text other then section titles are command line entries that are done in Terminal in Linux Mint. I thought it would be simpler to do it this way then say 'in Terminal' for every entry.
First we need to remove Icedtea Java or OpenJDK.
In Terminal: sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
Then in Terminal: sudo add-apt-repository ppa:webupd8team/java
Next: sudo apt-get update && sudo apt-get install oracle-java6-installer
Be sure to accept the licence agreement to install java when it prompts you.
Next: sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev zlib1g-dev:i386 libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 lib32z-dev libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc readline-common libreadline6-dev libreadline6 lib32readline-gplv2-dev libncurses5-dev lib32readline5 lib32readline6 libreadline-dev libreadline6-dev:i386 libreadline6:i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev lib32bz2-dev libsdl1.2-dev libesd0-dev squashfs-tools pngcrush schedtool libwxgtk2.8-dev python
Follow this with: sudo apt-get install -f
This should fix any dependency errors.
Now: sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Next download the SDK Tools For Linux x64 from this link. https://developer.android.com/sdk/index.html
Then: cd ~/Downloads
And: tar -xvf android-sdk_r22.6.2-linux.tgz
or tab the latest 'android-sdk_xxx.tgz file it they update it and it is a newer version then the one I downloaded to do this.
You can rename the android.sdk_xxx.tgz folder you extracted to SDK.
Then: cd ~/Downloads/SDK/tools
Next: ./android sdk
It will show you the tools that can be installed, just install the highest version API of 'Platform Tools' and 'Tools' for the latest android version '4.4.x' it shows.
Make sure you install the repo tool, in Terminal:
With: mkdir ~/bin
Then: curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
And: curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
Now: sudo chmod a+x ~/bin/repo
Now sudo nano ~/.bashrc
Add this to the bottom of the text: export PATH=~/bin:$PATH
Then hit Ctrl-O and enter, it should say it saved the file followed by Ctrl-X to exit.
Then restart bash: source ~/.bashrc
Now lets Initialize the Repository for GIT configuration
First : git config --global user.name {Your Name}
Then: git config --global user.email {[email protected]}
If you have not registered with the GitHub website just doing these two steps works fine.
If you have registered with the GitHub website create a file called .netrc in your home directory, add your GitHub password to it with no spaces on the first line and change the permissions to '600' or you will have to continually authenticate when building the source.
In Terminal:nano ~/.netrc
Then add just your GitHub password (like I said you only need to do this if you have registered with GitHub).
Then 'Ctrl-O' and enter and it'll say it saved it, then 'Ctrl-X' to exit nano.
And then: chmod 0600 ~/.netrc
Now: mkdir ~/AOSP
Then: cd ~/AOSP
Now you get the source code etc: repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.2_r2
Then do in Terminal : repo sync -j12
Use repo sync -j12 for a quad core CPU or Intel I5 or if you have say an quad core I7 with 8 threads you can use repo sync -j24 to speed things up etc.
I have a I7 3930k with 12 threads so I used repo sync -j36. This gives you three threads per logical CPU and speeds things along quite well.
It may take several hours for the sync to finish.
After the sync finishes go to https://developers.google.com/android/nexus/drivers#razorkot49h and download the drivers (binaries) for the Nexus 7 (Wi-fi). You do need to use the KOT49H binaries and they work fine with the KVT49L build.
In Terminal: cp ~/Downloads/asus-flo-kot49h-a9532596.tgz ~/AOSP
Then: cp ~/Downloads/broadcom-flo-kot49h-c33beb3d.tgz ~/AOSP
And: cp ~/Downloads/qcom-flo-kot49h-f92d75b1.tgz ~/AOSP
In Terminal: tar -xvf asus-flo-kot49h-a9532596.tgz
And: tar -xvf broadcom-flo-kot49h-c33beb3d.tgz
Then: tar -xvf qcom-flo-kot49h-f92d75b1.tgz
If you have closed the Terminal after the sync remember to do: cd ~/AOSP
when you open Terminal again before doing the tar commands.
They should be the file names of the binaries for KOT49H that you are extracting but if for any reason the file names are different use the Tab key and tab the correct names in after 'tar -xvf'.
If the names ARE different I'd really check to make sure you downloaded the correct flo binaries.
Then: ./extract-asus-flo.sh
Now also in Terminal: ./extract-broadcom-flo.sh
And: ./extract-qcom-flo.sh
Hint: It will show you a really long licence agreement for each binary that you scroll by hitting the Enter key that takes forever to scroll one line at a time, it has 8 sections and several subsections. Hold the Enter key until you just get past Part 8, section D of the licence and stop there. Now hit enter a few more time one key stroke at a time until you finish Part 8 section E and see the 'Type 'I ACCEPT' to agree to the licence.' and type I ACCEPT If you just scroll by holding the Enter key all the way to the bottom of the licence you'll get an error you never accepted the licence. Then close Terminal.
Building the Sources
Now open Terminal: cd ~/AOSP
Then: . ./build/envsetup.sh
Now to select the type of device we give the following command: lunch
Choose: 11. aosp_flo-userdebug
by entering '11' or whatever number aosp_flo is after your enter the 'lunch' command (it was number 11 on mine).
Now: make -j12 for a quad core cpu or I5 or make -j24 for an I7 etc.
With your tablet connected to your USB cable and the PC: adb root
Then: adb reboot bootloader
And: cd out/target/product/flo
Lastly: fastboot -w flashall
If you get an error on the 'adb' and 'fastboot' commands do these first:
sudo apt-get install android-tools-adb
and: sudo apt-get install android-tools-fastboot
If you get an error when you fastboot -w flashall to do with a '-p' flag needed or 'android-info.txt' is missing it means you forgot to to the 'lunch' command before building the source. Go back to the 'Building The Sources' section.
If you already have a custom recovery installed like TWRP and would rather build a zip file to install with the recovery rather then flash it in adb instead of make -j12 do: make -j12 otapackage
In the /home/"yourusername"/AOSP/out/target/product/flo you have an aosp_flo-ota-eng.___.zip file to flash in your custom recovery.
You will need to wipe/reset data your in recovery before flashing it and re-install all your apps etc.
Installing Custom Recovery, Rooting and Google Apps
If you want to install a custom recovery download TWRP http://techerrata.com/browse/twrp2/flo
Rename the file in Downloads to recovery.img
Then in Terminal with your tablet connected by USB to your PC: adb root
And: adb reboot bootloader
Then: cd ~/Downloads
And: fastboot flash recovery recovery.img
Use the volume buttons on your phone to scroll onto "Restart Bootloader" and hit the powerbutton to select it. After the bootloader reloads, use the volume buttons to scroll to "Recovery Mode" and hit power button again to select it. You should then be in your custom recovery.
If for any reason you get a red android and no recovery just boot into fastboot mode again and reinstall the recovery.img.
And finally, to root your tablet download SuperSu http://download.chainfire.eu/supersu and install the supersu.zip in recovery mode.
Download PA GAPPS from here http://forum.xda-developers.com/showthread.php?t=2397942 if you want the zip to install Google Apps in recovery.
You now have your own rooted vanilla AOSP you compiled yourself, congrats!
P.S. Very likely a good idea wipe/reset data in recovery and start with a clean install, you'll need to install all your programs and stuff anyways I'm sure.
P.P.S.I did download and install the XPOSED Framework apk http://forum.xda-developers.com/showthread.php?t=1574401 after I put AOSP on my tablet so I could install Advanced Power Menu and some other add-ons like Boot Manager and Greenify. As well I installed a custom kernel with Faux Sound and Faux Kernel enhancements.
I think for the download repo tool section you only need the second (commondatastorage) one. The first one no longer works.
Other than that, it looks pretty good.
Awesome thanks!!!
Sent from my Nexus 7 using Tapatalk
meekrawb said:
I think for the download repo tool section you only need the second (commondatastorage) one. The first one no longer works.
Other than that, it looks pretty good.
Click to expand...
Click to collapse
Yeah, you're right, I checked into it.
Thanks!!
I updated the guide and removed that.
meekrawb said:
I think for the download repo tool section you only need the second (commondatastorage) one. The first one no longer works.
Other than that, it looks pretty good.
Click to expand...
Click to collapse
Edit: I see the problem with the second curl command, when I save the post it shortens the url in the command with dots and when you copy and paste it it is incorrect and does not download, I'm trying to figure out how to fix it, every time I save the post no matter if I take the url code out or not it shortens it.
Second edit: I figured out a work-around and added it to the guide. It's half baked how I had to do it but at least it's working now.
hey all, sorry if this is off topic, but ive been looking for help everywhere and im about ready to give up, im trying to build evervolv for flo, i've got the source downloaded and im ready to build, the only thing im having trouble with is getting all the propratairy blobs and device spacific files from the n7. is there a way i can just sync up with cyanogenmods device repo or over right the repo that is build into evervolvs source? thanks for any help.
Andromendous said:
hey all, sorry if this is off topic, but ive been looking for help everywhere and im about ready to give up, im trying to build evervolv for flo, i've got the source downloaded and im ready to build, the only thing im having trouble with is getting all the propratairy blobs and device spacific files from the n7. is there a way i can just sync up with cyanogenmods device repo or over right the repo that is build into evervolvs source? thanks for any help.
Click to expand...
Click to collapse
download the binaries and extract them as was shown in the OP.
Then do
make clobber
. build/envsetup.sh
lunch
make (whatever option you decide, otapackage etc)
Make clobber is important because it ensures you start clean and that the binaries will be properly implemented in your rom.
oldsoldier2003 said:
download the binaries and extract them as was shown in the OP.
Then do
make clobber
. build/envsetup.sh
lunch
make (whatever option you decide, otapackage etc)
Make clobber is important because it ensures you start clean and that the binaries will be properly implemented in your rom.
Click to expand...
Click to collapse
ok, i did all that and still get the same error like below. dunno if i mentioned it, but i am trying to build evervolv
EDIT: the option (5) was "aosp_flo-userdebug
KedarWolf said:
Edit: I see the problem with the second curl command, when I save the post it shortens the url in the command with dots and when you copy and paste it it is incorrect and does not download, I'm trying to figure out how to fix it, every time I save the post no matter if I take the url code out or not it shortens it.
Second edit: I figured out a work-around and added it to the guide. It's half baked how I had to do it but at least it's working now.
Click to expand...
Click to collapse
I think you had the "commondatastorage" one right before. It is the "curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo" that doesn't work anymore.
So instead of those two steps, it should be just this one:
Download the Repo tool and ensure that it is executable:
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
I hope that makes more sense.
Great post! Thanks for this!
meekrawb said:
I think you had the "commondatastorage" one right before. It is the "curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo" that doesn't work anymore.
So instead of those two steps, it should be just this one:
Download the Repo tool and ensure that it is executable:
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
I hope that makes more sense.
Click to expand...
Click to collapse
I fixed the second curl command so it works. Not 100% sure you need the first curl command but it does work in Linux Mint 16 and doesn't mess anything up so I left it in.
The Sony-Kitakami dev team is glad to announce a guide on how to build CM13 or any CM13 based ROM for the entire Z5- series
Note: If you plan to release a ROM using our sources then credits aren't required, however we would deffinately appriciate it very much!
Before we get started
What you need
Any of our supported devices
A PC that is capable of running linux
An Internet connection
And lots of lots of patience
Getting started
Setting up Linux
To be able to build a ROM fully from source a Linux based operating system is required. This is due to the fact that windows is unable to compile the android source code due to lacking tools/libaries. After all you're compiling Linux on Linux (Because android is Linux). We strongly recommend to have AT LEAST 50 GB of space for Ubuntu!!!
Please be aware that this guide is target audiences with Ubuntu specifically and so may not work on other distros. Because of this we prefer ubuntu for everyone that is coming from windows.
Because this guide isn't about how to install ubuntu, I'll let this guide explain all for you : http://www.linuxtechi.com/ubuntu-15-10-desktop-installation-guide/
Installing the required packages
We will start off by downloading openjdk 7 (Note: Open JDK 8 isn't supported by CM yet).
Please open the terminal and enter or copy paste the following :
Code:
sudo apt-get update && sudo apt-get install openjdk-7-jdk
After entering the password (Note: you won't be able to see any output when typing the password) hit enter and then type "y" and hit enter again.
Once this is completed we will download the required packages. Please copy paste the following into your terminal :
Code:
sudo apt-get install git-core gnupg flex bison gperf build-essential
zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache
libgl1-mesa-dev libxml2-utils xsltproc unzip maven schedtool
You may have to enter your password again after hitting enter. Once that is done enter "y" again and hit enter again.
Additionally you can set up ccache by entering the following into the terminal :
Code:
echo 'export USE_CCACHE=1' >> ~/.bashrc
after this has been done, restart your PC.
Then we will set up git. Replace "Your name" with your name and "[email protected]" with your email :
Code:
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
Now we will need to set up the repo tool. Copy the following into the terminal:
Code:
mkdir ~/bin && PATH=~/bin:$PATH && echo 'PATH=~/bin:$PATH' >> ~/.bashrc && curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo && chmod a+x ~/bin/repo
Guides
CyanogenMod 13
Getting the CM13 source
Start out by making a directory called cm13 in your home dir by running the following command :
Code:
mkdir ~/cm13/
Now we will initialize the CM13 repository by entering the following in your terminal :
Code:
cd ~/cm13/ && repo init -u https://github.com/CyanogenMod/android.git -b cm-13.0
We are now coming to the worst part and that is downloading the entire 20GB big CM13 source code. To sync the source code, run the following command :
Code:
repo sync
And now wait.... and wait..... and wait....... until it's done
Getting the Z5/Z5C/Z5P source
To clone the device specific source code we'll have to introduce you to some of the codenames as those are used for simplifying reasons when building from source
Code:
NAME CODENAME
Sony Xperia Z5 sumire
Sony Xperia Z5 Compact suzuran
Sony Xperia Z5 Premium satsuki
We will start off by cloning the appropriate manifests for your device. Please enter the following and make sure to replace yourdevicecodename with your device codename :
Code:
cd ~/cm13/ && git clone https://github.com/Sony-Kitakami/android_.repo_local_manifests.git -b cm-13.0-yourdevicecodename .repo/local_manifests
Now we will sync our device specific source like this :
Code:
repo sync --force-sync
This could again take some time depending on your connection as the kernel source is quite heavy.
Building the ROM
We will now get to the big part, which is compiling. Note this could take from 1 hour to more than 10 hours depending on how good your PC is. Replace yourdevicecodename with your targeted device codename.
Please copy the following to your terminal line by line
Code:
cd ~/cm13/
cd .repo/local_manifests/ && git pull && cd ../.. && repo sync --force-sync
. build/envsetup.sh
lunch
cm_yourdevicecodename-userdebug
mka clobber
mka bacon
After a long time of waiting you should be done and your CyanogenMod package should be located in home/cm13/out/target/product/yourdevicecodename/
Congratulations! You have now build your very own CM13 ROM from source!
CyanogenMod 13 based ROMs
If you are planning to build a CM13 based or similar ROM (Bliss Pop, RR, Slim etc.), we're expecting you to be a more advanced user. As much as we would like to give a strict guide, we simply can't cover all as there are always differences between each and every ROM.
You will have to start off by downloading the ROM source. Again this should be similar to CM but the git links are different.
Ex:
Code:
RR = repo init -u [url]https://github.com/ResurrectionRemix/platform_manifest.git[/url] -b marshmallow
Bliss = repo init -u [url]https://github.com/BlissRoms/platform_manifest.git[/url] -b mm6.0
and much more. Most of them can be found on the ROMs official git team under the platform_manifest repo.
Here is where things get hard. You will have to edit our manifests and adjust them to work with your target ROM. This is nearly impossible to explain as each ROM contains different repos that may overlap with the CM ones or it may lack repos that you're trying to remove. In other words, you will need to learn how to use the local manifests. A nice guide exists here https://wiki.cyanogenmod.org/w/Doc:_Using_manifests
Once this is done you will have to adjust your device tree to work with your specific ROM. Again this is always different. The best way to learn is to compare a CM tree with a tree from a different ROM
Ex:
Samsung Galaxy S5 mini tree for CyanogenMod : https://github.com/cm-3470/android_device_samsung_kminilte
Samsugn Galaxy S5 mini tree for BlissPop : https://github.com/cm-3470/android_device_samsung_kminilte/tree/bosp-6
The main differences are the cm.mk or device.mk files etc.
Here is a commit that show the transfer from CM to Bliss Pop which usually isn't very hard
https://github.com/cm-3470/android_...mmit/5e902e7dd228c6804b2735af9a96ea02969aa2cf
Once this is completed you can run your build and release it!
XDA:DevDB Information
How to build CM13 from source for the Z5, ROM for the Sony Xperia Z5
Contributors
CTXz, zacharias.maladroit, Moonbutt74
Source Code: https://github.com/Sony-Kitakami
ROM OS Version: 6.0.x Marshmallow
ROM Firmware Required: Stock Marshmalllow
Based On: CyanogenMod
Version Information
Status: Alpha
Created 2016-04-12
Last Updated 2016-04-15
Reserved
Reserved
Thanks for posting the guide
I followed the steps, but got stuck at the command: "cd ~/cm13/ && git clone [email protected]:Sony-Kitakami/android_.repo_local_manifests.git -b cm-13.0-sumire"
It returned this to me:
Cloning into 'android_.repo_local_manifests'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
EDIT: Never mind, I investigated, and found out that I had to generate an SSH key and link that to my GitHub account. If anyone needs help with this, I used this guide: https://help.github.com/articles/generating-an-ssh-key/
Uclydde said:
Thanks for posting the guide
I followed the steps, but got stuck at the command: "cd ~/cm13/ && git clone [email protected]:Sony-Kitakami/android_.repo_local_manifests.git -b cm-13.0-sumire"
It returned this to me:
Cloning into 'android_.repo_local_manifests'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
EDIT: Never mind, I investigated, and found out that I had to generate an SSH key and link that to my GitHub account. If anyone needs help with this, I used this guide: https://help.github.com/articles/generating-an-ssh-key/
Click to expand...
Click to collapse
Hey, sorry for that. I had git set to ssh like and forgot that they require a keygen. I've changed it to https://github.com/Sony-Kitakami/android_.repo_local_manifests.git -b cm-13.0-yourdevicecodename so it no longer needs a key
Actually, is you are building CM13 and using Ubuntu 14.04 or up, you just need to type:
Code:
sudo apt-get install bison g++-multilib git gperf libxml2-utils make zlib1g-dev:i386 zip
Okay, I hit another bump. When I type: "cd .repo/local_manifests/ && git pull && cd ../.. && repo sync --force-sync"
It returns:
bash: cd: .repo/local_manifests/: No such file or directory
zhangyang_haha said:
Actually, is you are building CM13 and using Ubuntu 14.04 or up, you just need to type:
Code:
sudo apt-get install bison g++-multilib git gperf libxml2-utils make zlib1g-dev:i386 zip
Click to expand...
Click to collapse
No, you'll be missing quite some packages
Sent from my E5823 using XDA-Developers mobile app
Uclydde said:
Okay, I hit another bump. When I type: "cd .repo/local_manifests/ && git pull && cd ../.. && repo sync --force-sync"
It returns:
bash: cd: .repo/local_manifests/: No such file or directory
Click to expand...
Click to collapse
Ok updated again. Please run this.
cd ~/cm13/ && git clone https://github.com/Sony-Kitakami/android_.repo_local_manifests.git -b cm-13.0-yourdevicecodename .repo/local_manifests
CTXz said:
Ok updated again. Please run this.
cd ~/cm13/ && git clone https://github.com/Sony-Kitakami/android_.repo_local_manifests.git -b cm-13.0-yourdevicecodename .repo/local_manifests
Click to expand...
Click to collapse
Yay, that worked! However, I got to the "cm_yourdevicecodename-userdebug" line, so I entered "cm_sumire-userdebug", but that returned: "cm_sumire-userdebug: command not found"
Uclydde said:
Yay, that worked! However, I got to the "cm_yourdevicecodename-userdebug" line, so I entered "cm_sumire-userdebug", but that returned: "cm_sumire-userdebug: command not found"
Click to expand...
Click to collapse
This needs a
Code:
repo --sync
in between
Uclydde said:
Yay, that worked! However, I got to the "cm_yourdevicecodename-userdebug" line, so I entered "cm_sumire-userdebug", but that returned: "cm_sumire-userdebug: command not found"
Click to expand...
Click to collapse
When you type lunch it will show a big list of devices and prompt for an input. Enter cm_sumire-userdebug. You can also however run
Code:
lunch cm_sumire-userdebug
Sent from my E5823 using XDA-Developers mobile app
Nice guide, buddy
Binaries have been updated to v5a,
v4 is included in this, can you update please? I did it manually and got it to boot
I'm not able to push them to github.
http://developer.sonymobile.com/downloads/tool/software-binaries-for-aosp-m-android-6-0/
celderic said:
Binaries have been updated to v5a,
v4 is included in this, can you update please? I did it manually and got it to boot
I'm not able to push them to github.
http://developer.sonymobile.com/downloads/tool/software-binaries-for-aosp-m-android-6-0/
Click to expand...
Click to collapse
Is the camera working for you ?
Did the focus improve ? or are still changes needed ?
zacharias.maladroit said:
Is the camera working for you ?
Did the focus improve ? or are still changes needed ?
Click to expand...
Click to collapse
It doesn't work for me with v4, or v5a
Using the guide posted here, nothing changed only updated to v5a manually.
I haven't bothered to look through the log yet, bur it says camera hardware inaccessible or something like that I forget the exact wording. With v4 and v5a, I even downloaded the source again to make sure it wasn't a problem on my end.
I'll try and have a proper look tomorrow
celderic said:
It doesn't work for me with v4, or v5a
Using the guide posted here, nothing changed only updated to v5a manually.
I haven't bothered to look through the log yet, bur it says camera hardware inaccessible or something like that I forget the exact wording. With v4 and v5a, I even downloaded the source again to make sure it wasn't a problem on my end.
I'll try and have a proper look tomorrow
Click to expand...
Click to collapse
Yeah, we kinda apologize for that. My linux environment has broken hard after upgrading to ubloatu, i mean Ubuntu 16.04... I'm busy updating to debian now, and will most likely stick with debian jessie as sid and stretch ended in an huge catastrophy. Thanks to @moonbutt74 for not warning me. (<- Only a joke, he actually predictied that sid will be a catastrophy but I didn't listen cuz that's me). I'll also most likely need to update the guide too as we no longer prefer/recommend ubuntu 16.04
Sent from my E5823 using XDA-Developers mobile app
celderic said:
It doesn't work for me with v4, or v5a
Using the guide posted here, nothing changed only updated to v5a manually.
I haven't bothered to look through the log yet, bur it says camera hardware inaccessible or something like that I forget the exact wording. With v4 and v5a, I even downloaded the source again to make sure it wasn't a problem on my end.
I'll try and have a proper look tomorrow
Click to expand...
Click to collapse
@celderic
did you do any modifications to the repos ?
If not did the kernel built with the ROM work for you ?
Thanks
edit:
v04 and v05a binary blobs are the same for us (Kitakami)
Changes in v05a was for kanuti, rhine, shinano and yukon
zacharias.maladroit said:
@celderic
did you do any modifications to the repos ?
If not did the kernel built with the ROM work for you ?
Thanks
edit:
v04 and v05a binary blobs are the same for us (Kitakami)
Changes in v05a was for kanuti, rhine, shinano and yukon
Click to expand...
Click to collapse
Sorry been on holiday not had time to reply on here, oh I didn't realise they where the same for our device.
I didn't modify the repos, and yes the stock cm kernel booted fine.
openjdk-7 isnt available under ubuntu 16.04. Is 8 or 9 supported yet or do I have to manually install v7?