aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Dobell <ben.dobell@playup.com>2013-06-08 14:58:37 +1000
committerBenjamin Dobell <ben.dobell@playup.com>2013-06-08 15:07:01 +1000
commitf47b69d037b74cf0916bbab248abcafe8a1f01a3 (patch)
treeed4afe6fe9c26f2740276420792f3800e6b60bd5
parentb8a92f1c71fa93b48fbd5c9595c088af87c7d7d8 (diff)
downloadexternal_heimdall-f47b69d037b74cf0916bbab248abcafe8a1f01a3.zip
external_heimdall-f47b69d037b74cf0916bbab248abcafe8a1f01a3.tar.gz
external_heimdall-f47b69d037b74cf0916bbab248abcafe8a1f01a3.tar.bz2
Modified Heimdall Frontend so it can find Heimdall CLI in /usr/local/bin on OS X. Also updated the OS X build files, as well as READMEs for all platforms.
-rw-r--r--Linux/README30
-rw-r--r--OSX/README.txt76
-rw-r--r--Win32/README.txt31
-rw-r--r--heimdall-frontend/Source/mainwindow.cpp11
-rw-r--r--heimdall-frontend/heimdall-frontend.pro5
-rw-r--r--heimdall/configure.ac2
6 files changed, 84 insertions, 71 deletions
diff --git a/Linux/README b/Linux/README
index 78cf3af..33a8bc0 100644
--- a/Linux/README
+++ b/Linux/README
@@ -183,7 +183,7 @@ Performing a Custom Flash with Heimdall Frontend:
Flashing Firmware from Command Line:
-
+
1. Fully charge your phone (use the wall charger as it's faster).
2. Download a decrypted device ROM or a Heimdall Firmware Package
@@ -218,10 +218,10 @@ Flashing Firmware from Command Line:
button) after executing --no-reboot commands.
8. Use the help and print-pit output to construct a command with all the
- files you want to flash.
+ files you want to flash.
Here is an example that does a full flash and repartition on a GT-I9000:
-
+
heimdall flash --repartition --resume --pit s1_odin_20100512.pit --FACTORYFS factoryfs.rfs --CACHE cache.rfs --DBDATA dbdata.rfs --IBL+PBL boot.bin --SBL Sbl.bin --PARAM param.lfs --KERNEL zImage --MODEM modem.bin
9. Heimdall will display the progress as it flashes so that you know things
@@ -499,13 +499,6 @@ Appendix B - Installing Heimdall from Source:
sudo make install
cd ..
- NOTE: As an alternative to "sudo make install" you may chose to generate
- a package by typing the following:
-
- sudo checkinstall --pkgversion <version>
-
- Where <version> is the current Heimdall release e.g. 1.3.0
-
5. Done
@@ -514,25 +507,22 @@ Appendix C - Installing Heimdall Frontend from Source:
1. Compile and install Heimdall, see Appendix B.
- 2. First make sure you have installed Qt 4.7 or later, available from:
+ 2. First make sure you have installed Qt (4.7 or later, but prior to 5.0).
+ You can typically install Qt through your platforms package manager, or
+ alternatively download it from:
- http://qt.nokia.com/downloads/
+ http://qt-project.org/downloads
3. Open a terminal and navigate to the directory you extracted Heimdall to.
4. Enter the following commands to compile and install Heimdall Frontend:
cd heimdall-frontend
- qmake-qt4 heimdall-frontend.pro
+ qmake-qt4
make
sudo make install
-
- NOTE: As an alternative to "sudo make install" you may chose to generate
- a package by typing the following:
-
- sudo checkinstall --pkgversion <version>
-
- Where <version> is the current Heimdall release e.g. 1.3.0
+
+ NOTE: If qmake-qt4 does not exist on your platform, try qmake instead.
5. Done
diff --git a/OSX/README.txt b/OSX/README.txt
index 47b0bf4..3b33cd4 100644
--- a/OSX/README.txt
+++ b/OSX/README.txt
@@ -19,7 +19,7 @@ Installing Heimdall and Heimdall Frontend Binaries:
1. Run "Heimdall Suite.pkg" and follow the instructions.
2. Reboot your system.
-
+
3. Done
@@ -187,7 +187,7 @@ Performing a Custom Flash with Heimdall Frontend:
Flashing Firmware from Command Line:
-
+
1. Fully charge your phone (use the wall charger as it's faster).
2. Download a decrypted device ROM or a Heimdall Firmware Package
@@ -226,7 +226,7 @@ Flashing Firmware from Command Line:
file you want to flash.
Here is an example that does a full flash and repartition on a GT-I9000:
-
+
heimdall flash --repartition --resume --pit s1_odin_20100512.pit --FACTORYFS factoryfs.rfs --CACHE cache.rfs --DBDATA dbdata.rfs --IBL+PBL boot.bin --SBL Sbl.bin --PARAM param.lfs --KERNEL zImage --MODEM modem.bin
9. Heimdall will display the progress as it flashes so that you know things
@@ -479,24 +479,40 @@ be included.
Appendix B - Installing Heimdall from Source:
- 1. First make sure you have installed XCode and pkgconfig.
-
- NOTE: There are several different ways you can install pkgconfig, one
- option is to use Macports (http://www.macports.org/).
-
- 2. Open a terminal and navigate to the directory you downloaded,
- or extracted, Heimdall to.
-
- 3. Download, compile and install libusb-1.0:
-
- http://www.libusb.org/
-
- NOTE: Alternatively you may install Macport's libusb-devel package.
-
- 4. Enter the following commands to compile libpit.
+ PREREQUISITES:
+
+ Heimdall requires C++11 (aka C++0x) functionality in order to compile.
+ Unfortunately, XCode includes an old version of GCC which does not
+ include support for C++11. XCode does include clang, which does
+ support C++11. However, clang's C++11 can only target OS X 10.7 or
+ newer. There are also slight compatibility issues between clang and
+ Qt, which is required in order to compile Heimdall Frontend. As such
+ these instructions will utilise GCC 4.7 installed via Homebrew.
+
+ Xcode can be downloaded through the App store or from Apple's
+ developer website:
+
+ https://developer.apple.com/xcode/
+
+ Homebrew install instructions are available at:
+
+ http://mxcl.github.io/homebrew/
+
+ 1. First make sure you have installed XCode and Homebrew (see above). Then
+ open a terminal and install GCC 4.7, pkgconfig and libusbx via Homebrew:
+
+ brew tap homebrew/versions
+ brew install gcc47 pkgconfig libusbx
+
+ NOTE: Installing GCC 4.7 will take a long time.
+
+ 2. In a terminal navigate to the directory you downloaded (or extracted)
+ Heimdall to.
+
+ 3. Enter the following commands to compile libpit.
cd libpit
- ./configure
+ ./configure CC=gcc-4.7 CXX=g++-4.7
make
cd ..
@@ -505,12 +521,12 @@ Appendix B - Installing Heimdall from Source:
4. Enter the following commands to compile and install Heimdall:
cd heimdall
- ./configure
+ ./configure CC=gcc-4.7 CXX=g++-4.7
make
sudo make install
cd ..
- 5. If you haven't installed the driver before, enter the following:
+ 5. If you haven't installed the driver before, do the following:
cd OSX
sudo ./install-kext.sh
@@ -523,23 +539,17 @@ Appendix C - Installing Heimdall Frontend from Source:
1. Compile and install Heimdall, see Appendix B.
- 2. First make sure you have installed XCode from your OS X install DVD.
- You'll also need Qt 4.7 or later, available from:
+ 2. Heimdall Frontend requires Qt (4.7 or later, but prior to 5.0), available
+ from:
- http://qt.nokia.com/downloads/
+ http://qt-project.org/downloads
3. Open a terminal and navigate to the directory you extracted Heimdall to.
4. Enter the following commands to compile and install Heimdall Frontend:
cd heimdall-frontend
- qmake heimdall-frontend.pro
-
- 5. Open Finder and navigate to the heimdall-frontend sub-directory. Open
- the newly created XCode project.
-
- 6. From the menu bar select Build -> Build. This outputs heimdall-frontend
- to /Applications
-
- 7. Done
+ qmake -spec macx-g++ QMAKE_CC=gcc-4.7 QMAKE_CXX=g++-4.7
+ make
+ 5. Done
diff --git a/Win32/README.txt b/Win32/README.txt
index 6480258..2214497 100644
--- a/Win32/README.txt
+++ b/Win32/README.txt
@@ -11,22 +11,23 @@ DISCLAIMER:
for the result of your actions.
-These instructions were written for Windows Vista / Server 2008 however the
+These instructions were written for Windows 7 / Vista / Server 2008 however the
producedure should be essentially the same for all supported versions of
Windows (XP onwards).
Troubleshooting:
- 1. If you get an error as follows:
+ 1. If when you try launch Heimdall or Heimdall Frontend you receive a
+ similar to:
- The program can't start because MSVCP100.dll is missing from your
+ The program can't start because MSVCP110.dll is missing from your
computer.
- This means that you haven't installed the Microsoft Visual C++ 2010
+ This means that you haven't installed the Microsoft Visual C++ 2012
runtimes. The runtimes can be downloaded from Microsoft's website:
- http://www.microsoft.com/download/en/details.aspx?id=5555
+ http://www.microsoft.com/en-au/download/details.aspx?id=30679
@@ -233,7 +234,7 @@ Performing a Custom Flash with Heimdall Frontend:
Flashing Firmware from Command Line:
-
+
1. Fully charge your phone (use the wall charger as it's faster).
2. Download a decrypted device ROM or a Heimdall Firmware Package
@@ -275,7 +276,7 @@ Flashing Firmware from Command Line:
file you want to flash.
Here is an example that does a full flash and repartition on a GT-I9000:
-
+
heimdall flash --repartition --resume --pit s1_odin_20100512.pit --FACTORYFS factoryfs.rfs --CACHE cache.rfs --DBDATA dbdata.rfs --IBL+PBL boot.bin --SBL Sbl.bin --PARAM param.lfs --KERNEL zImage --MODEM modem.bin
NOTE: The above command assumes the files specified are installed in the
@@ -531,20 +532,20 @@ be included.
Appendix B - Installing Heimdall Suite from Source
- 1. Ensure that you have both a version of Visual Studio 2010 with C++
- support and Qt Developer Framework 4.7 (or newer) installed on your
- system.
+ 1. Ensure that you have both a version of Visual Studio 2012 with C++
+ support and Qt Developer Framework (4.7 or later, but prior to 5.0)
+ installed on your system.
- A free version (Visual C++ 2010 Express) can be downloaded from
+ A free version (Visual C++ 2012 Express) can be downloaded from
Microsoft's website:
- http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express
+ http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-products
- Qt can also be downloaded freely from Nokia's website:
+ Qt can also be downloaded freely from:
- http://qt.nokia.com/downloads/
+ http://qt-project.org/downloads
- 2. Open Heimdall/msvc2010.sln
+ 2. Open msvc2012.sln
3. From the Solutions Configuration drop-down change from "Debug" to
"Release".
diff --git a/heimdall-frontend/Source/mainwindow.cpp b/heimdall-frontend/Source/mainwindow.cpp
index 02d7a62..46dc381 100644
--- a/heimdall-frontend/Source/mainwindow.cpp
+++ b/heimdall-frontend/Source/mainwindow.cpp
@@ -52,13 +52,19 @@ void MainWindow::StartHeimdall(const QStringList& arguments)
QStringList paths;
- // Ensure /usr/bin is in PATH
+ // Ensure /usr/local/bin and /usr/bin are in PATH.
for (int i = 0; i < environment.length(); i++)
{
if (environment[i].left(5) == "PATH=")
{
paths = environment[i].mid(5).split(':');
- paths.prepend("/usr/bin");
+
+ if (!paths.contains("/usr/local/bin"))
+ paths.prepend("/usr/local/bin");
+
+ if (!paths.contains("/usr/bin"))
+ paths.prepend("/usr/bin");
+
break;
}
}
@@ -71,6 +77,7 @@ void MainWindow::StartHeimdall(const QStringList& arguments)
if (heimdallPath.length() > 0)
{
+ utilityOutputPlainTextEdit->clear();
heimdallFailed = false;
if (heimdallPath[heimdallPath.length() - 1] != QDir::separator())
diff --git a/heimdall-frontend/heimdall-frontend.pro b/heimdall-frontend/heimdall-frontend.pro
index ecc6235..6cb5774 100644
--- a/heimdall-frontend/heimdall-frontend.pro
+++ b/heimdall-frontend/heimdall-frontend.pro
@@ -53,8 +53,13 @@ macx {
PRIVATE_FRAMEWORKS.path = Contents/Frameworks
QMAKE_BUNDLE_DATA += PRIVATE_FRAMEWORKS
+ LIBS += -L/usr/lib
config += x86 x86_64 ppc
+
+ QMAKE_CFLAGS_X86_64 = -m64 -mmacosx-version-min=10.5
+ QMAKE_CXXFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64
+ QMAKE_LFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64
isEmpty(OUTPUTDIR) {
DESTDIR = /Applications
diff --git a/heimdall/configure.ac b/heimdall/configure.ac
index e900770..4654730 100644
--- a/heimdall/configure.ac
+++ b/heimdall/configure.ac
@@ -22,7 +22,7 @@ case $target in
*-darwin*)
AC_DEFINE(OS_DARWIN, [], [Darwin backend])
AC_MSG_RESULT([Darwin/MacOS X])
- AC_PROG_CXX([clang++])
+ AC_PROG_CXX
linuxtarget=false
;;
*-mingw*)