Code Monkey home page Code Monkey logo

sachesi's Introduction

Sachesi

Introducing Sachesi. The results of my continued work on firmware tools for Blackberry 10 and Playbook.

Sachesi allows you to extract, search for and (un)install Blackberry firmware. It also allows you to backup, restore, wipe, reboot and nuke. This is a continued evolution of the original Sachup and Sachibar applications. None of its activities require development mode. That is, you can sideload and uninstall applications without developer mode.

The application mimics communications performed by official Blackberry tools and allows modification of the typically fixed commands that are sent from the computer. This allows increased control and flexibility over firmware related activies on your device.

Developed by Sacha Refshauge. Project originally known as Dingleberry. Public release of source code on May 26, 2014.

Build Instructions

Technically should work on all operating systems that support Qt. This project works with both dynamic and static builds of Qt4.8+ and Qt5.0+. It is known to build and has built binaries available for desktop platforms: Windows XP+, Linux, Mac OSX 10.5+. It can also build and run a restricted subset of activities on mobile platforms: Symbian, Android and Blackberry 10. To upgrade firmware via a mobile device requires USB low-level access (host device must support network usb drivers), such as Symbian and possibly rooted Android devices.

This project requires miniLZO, zlib-1.2.8, QuaZIP and OpenSSL. For Linux and Mac, the project optionally uses libusb-1.0 for bootloader activities. For your convenience, a snapshot of the important files from libusb-1.0, miniLZO, zlib-1.2.8 and QuaZIP have been provided. OpenSSL for Android is also provided.

Windows Build Instructions (MinGW)

  1. Install latest QT with MinGW from qt-project.org.
  2. Install OpenSSL to C:\OpenSSL from http://www.wittfella.com/openssl.
  3. Open Sachesi.pro in QtCreator.
  4. Adjust the hardcoded paths set in QML.qrc to point to the correct qml files.
  5. Run.

Notes for Visual Studio:

Ubuntu Build Instructions

  1. Install the required dependencies:
sudo apt-get install qt5-qmake libqt5network5 libqt5qml5 qtdeclarative5-settings-plugin qtdeclarative5-controls-plugin qtdeclarative5-dialogs-plugin qtdeclarative5-quicklayouts-plugin qtdeclarative5-window-plugin qtdeclarative5-qtquick2-plugin qttools5-dev-tools libssl-dev qtdeclarative5-dev libusb-1.0-0-dev
  1. Compile Sachesi:
cd /path/to/Sachesi;
qmake;
make -j4;

Common Errors

On some systems there might be some Cannot find file translations/... errors. This can be fixed by executing make compiler_lang_make_all and executing the above steps again.

OSX Build Instructions

  1. Install latest XCode.
  2. Install latest QT from qt-project.org.
  3. Install brew from brew.sh.
  4. Run brew install libusb.
  5. Open Sachesi.pro in QtCreator.
  6. Run.

sachesi's People

Contributors

athes avatar camellan avatar cookiengineer avatar daradib avatar davidfoltyn avatar jktjkt avatar liuwt avatar machado7 avatar mike-pt avatar niko-lay avatar polytan02 avatar rebelllious avatar thurask avatar xsacha avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sachesi's Issues

will not connect to device with archlinux

Sachesi sees the device but will not connect to it for backup or install. I have tried mac/windows options and put it in dev mode and still will not connect. I have also thought there could be a problem with systemd renaming the usb device so i made a rule and forced it to usb0. Any help would be great

Blank Windows on XP

I have an old XP pc and Sachesi won't run if you don't create a folder called "Platforms" and add the "qwindows.dll" file. After that, Sachesi runs but nothing is displayed.
For the person who created the XP file, please try to deploy it again :)
sachesi

Build Fails on FreeBSD (posible other unix systems?)

I tried to compile on FreeBSD but noticed that some libs in use are linux specific, one of which is libusb-1.0 which as you stated is optional, so I tried this:

diff --git a/Sachesi.pro b/Sachesi.pro
index 5dcdb26..6a88759 100644
--- a/Sachesi.pro
+++ b/Sachesi.pro
@@ -52,7 +52,11 @@ mac {
     INCLUDEPATH += /opt/local/include
     LIBS+= -lcrypto -lssl -lz -framework CoreFoundation -framework IOKit -lobjc /opt/local/lib/libusb-1.0.a
 }
-!win32:!mac:!blackberry: {
+unix {
+    INCLUDEPATH += /usr/local/include
+    LIBS+= -lcrypto -lssl -lz -framework CoreFoundation -framework IOKit 
+}
+!win32:!mac:!blackberry:!unix {
     android {
         LIBS += $$P/Android/libcrypto.so $$P/Android/libssl.so
         INCLUDEPATH += $$P/Android/include/
@@ -92,7 +96,7 @@ HEADERS += \
         src/backupinfo.h
 }

-!win32:!blackberry:!android {
+!win32:!blackberry:!android:!unix {
     DEFINES += BOOTLOADER_ACCESS
     SOURCES += src/boot.cpp
     HEADERS += src/boot.h

This generates a usable makefile but It fails to build:

clang++ -c -pipe -O2 -Wall -W -pthread -D_THREAD_SAFE -DSACHESI_VERSION=\"1.3.0\" -DSACHESI_GIT_VERSION="\"48-f2569c4\"" -DQUAZIP_STATIC -DQT_NO_DEBUG -DQT_DECLARATIVE_LIB -DQT_SCRIPT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../../local/share/qt4/mkspecs/freebsd-clang -I. -I../../../../local/include/qt4/QtCore -I../../../../local/include/qt4/QtNetwork -I../../../../local/include/qt4/QtGui -I../../../../local/include/qt4/QtScript -I../../../../local/include/qt4/QtDeclarative -I../../../../local/include/qt4 -Iext -Isrc -I../../../../local/include -Iqmlapplicationviewer -I.moc/Sachesi -I../../../../local/include/qt4 -I../../../../local/include -o .obj/Sachesi/main.o src/main.cpp
src/main.cpp:99:5: error: use of undeclared identifier 'thread'; did you mean 'Apps::thread'?
    thread.quit();
    ^~~~~~
    Apps::thread
../../../../local/include/qt4/QtCore/qobject.h:151:14: note: 'Apps::thread' declared here
    QThread *thread() const;
             ^
src/main.cpp:99:5: error: call to non-static member function without an object argument
    thread.quit();
    ^~~~~~
src/main.cpp:100:5: error: use of undeclared identifier 'thread'; did you mean 'Apps::thread'?
    thread.wait(4000);
    ^~~~~~
    Apps::thread
../../../../local/include/qt4/QtCore/qobject.h:151:14: note: 'Apps::thread' declared here
    QThread *thread() const;
             ^
src/main.cpp:100:5: error: call to non-static member function without an object argument
    thread.wait(4000);
    ^~~~~~
4 errors generated.
*** Error code 1

Line 99 in src/main.cpp:

#if !defined(_WIN32) && !defined(BLACKBERRY) && !defined(ANDROID)
    thread.quit();
    thread.wait(4000);
#endif

I'm not sure what I can do about this tough, my c/c++ skills are limited :|

thanks

Not working with Blackberry Link

Hi, does anyone know why the Sachesi window disappears everytime I connect my BBQ10 via USB and the device manager says connected?
The Blackberry Link software opens up automatically.

make the bar download directory configurable

Currently Sachesi downloads all bar files to the directory where the Sachesi binary resides. This is quite inconvenient on systems which have this binary in read-only directory (e.g. all Linux distributions, BSD systems, and POSIX systems).

What about adding a simple input form or even a separate download dialog window making the download path configurable?

Sachesi2.0.1-Windows crash after "Show Installed Apps".

Sachesi2.0.1-Windows crash after "Show Installed Apps".
The list is created and shown in my case Notepad++.
Windows directly said with a pop-up "Sachesi stopped working.".
But no error nor clue to look for.
Even in commandline, I don't get an error.

Step to product:

  • Phone already connected with USB.
  • Start Sachesi
  • Go to tab "Install" -> "Your Applications"
  • Right click on one of the application names and select "Show Installed Apps".

Apps:

  • Windows 8.1 Pro 64-bit
  • Sachesi2.0.1-Windows
  • BB Z10 with OS:10.3.2.840

created Autoloader not starting on W7-64bit

Sachesi-Windows-1.2.3, Windows 7 Professional 64bit;

When I type "autoloader.exe fileinfo" in administrator CMD I get an "Unsupported 16bit application" dialog box and the following text, which says in short the application is'nt compatible to this version of Windows.

"c:\Users\dendaw\Downloads\Programmdateien\Blackberry\Sachesi-Windows-1.2.3\Test> Autoloader-qc8960.exe fileinfo

Die Version von c:\Users\dendaw\Downloads\Programmdateien\Blackberry\Sachesi-Windows-1.2.3\Test\Autoloader-qc8960.exe ist nicht mit der ausgeführten Windows-Version kompatibel. Öffnen Sie die Systeminformationen des Computers, um zu überprüfen, ob eine x86-(32 Bit)- oder eine x64-(64 Bit)-Version des Programms erforderlich ist, und wenden Sie sich anschließend an den Herausgeber der Software."

Crashes on Start

Windows 7 64 Bit:

Problem signature:
  Problem Event Name:   APPCRASH
  Application Name: Sachesi.exe
  Application Version:  2.0.1.0
  Application Timestamp:    558d1ec2
  Fault Module Name:    ig4icd32.dll
  Fault Module Version: 8.14.10.1930
  Fault Module Timestamp:   4aba6fc2
  Exception Code:   c0000005
  Exception Offset: 002095ed
  OS Version:   6.1.7601.2.1.0.768.3
  Locale ID:    1033
  Additional Information 1: 0a9e
  Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
  Additional Information 3: 0a9e
  Additional Information 4: 0a9e372d3b4ad19135b953a78882e789

What other information can I provide? Thank you.

System Error - MSVCP.dll is missing

I get the following System Error message on a popup when I try to run Sachesi 2.0.2 on a fresh install of Windows 10 Pro Insider Preview Build 10162:
"The program can't start because MSVCP120.dll is missing from your computer. Try reinstalling the program to fix this problem".

Can anyone check if it also happens on another version of Windows?

Add Support for Blackberry Priv

Hi Guys,

Is there any way to support Blackberry Priv ?
I look at the source code, its pretty much the same requirement to get the autoloder.

I don't have time to hack around this app. hopefully someone can make it.

Thanks

0xc000007b

2.0.3 failed to start, error 0xc000007b.
Ran sfc /scannow in Command Prompt, nothing to fix.
Searches do not help.
Running Window 7 SP1 Ultimate.

Thanks, Dick Lewis

Windows version

Still looking for Windows version of 2.03.

Thanks for the great work xsacha,
Dick Lewis

Scan button not showing

git pull form today.. compiles and run fine but then I don't see the Scan button, and this shows in the console:

qrc:/qml/generic/Search.qml:14:18: Unable to assign [undefined] to bool
qrc:/qml/generic/Search.qml:44:23: Unable to assign [undefined] to QString

Just before the cancel button I see:
Downloading (-2147483648 of 7063342): (undefined%)

This is on FreeBSD btw

Trojan Virus

Hi I cannot use Sachesi as it has a trojan as per image

image

Headless backup?

Hi,

I'd like to write an udev rule which backups / synchronizes my passport on usb connection. For that I would need a couple of commandline switches and a headless mode for Sachesi. Anything planned thus far?

Support for OpenSync

There is a quite established project called OpenSync which does and always did pretty much the same, but in a modular manner. Have you considered to merge or somehow collaborate/share chosen parts of codebase? It would definitely bring more people and make this project yet more vital/helpful than it's right now.

http://www.opensync.org/wiki/peers/blackBerry

not working under windows 10

Displaying "Searching for USB devices" "talking to 2 possible devices" (same message when the Q5 is or not connected). Worked in win7/win8

Error 6 (SSL handshake failed) 2.0.3

Using the precompiled Sachesi for Mac Os X on El Capitan (10.11) the search tab of Sachesi reports "Error 6 (SSL handshake failed)". Search does not function as a result.
image

Not connecting from linux to OS 10.3.2.798

Sachesi v.2.0.2 not connecting to q10 with OS 10.3.2.798.
"Detected 1 Blackberry USB device(s) in Autodetect mode" and nothing more.

In this OS no way to select "USB access mode" between windows and mac.


sorry for duplicate: #60

Running Sachesi fails on Fedora 21 with libcrypto missing error

I downloaded and extracted Sachesi on my machine, but when I ran the executable I got:

./Sachesi: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory

I'm running Fedora 21. Any suggestions?

Does not detect devices on some Windows machines

I have had reports that devices are not being detected. The exact reason is still unknown but it is most likely due to how the device appears on the network and other devices with a similar IP address pattern picking up and responding to requests. Any response is currently thought to be a valid device and cancels the search.
Example of this was VMWare, which has now been blocked from search results as a workaround.

ubuntu 15.10

it never connects i just get this message ," detected 1 blackberry usb device(s) in autodetec mode". and it just spins forever ,i have a passport sqw 100-1 but i dont have the option to switch from auto,windows,mac i only have the option to choose manual usb ip , please help because windows in vmware is way too slow to even use and i hate windows anyway.

Extract Autoloader fails "not and autoloader file"

I've updated to the latest gt version and now I can't split autoloaders

In the console I only see:
Tool terminated early due to unforseen circumstances.
Segmentation fault (core dumped)

tried 2 autoloaders same result :|

Updating cap executable

Currently, cap executable linked to in mainnet.cpp is version 3.10.0.12. Autoloaders made with older versions of cap tend to cause bricking with newer OSs/radios, so recommend updating hosted executable to latest version (3.10.0.57 or 3.11.0.6) if possible.

Build error

Hi, I'm building Sachesi on Arch Linux x86_64. There is some problem with translation that make the program won't build.

lrelease error: Parse error at translations/Italian.ts:9:38: XML declaration not at start of document.
Makefile:480: recipe for target 'translations/Italian.qm' failed
make: *** [translations/Italian.qm] Error 1
make: *** Waiting for unfinished jobs....

I'm building Sachesi 2.0.0beta.r10.g84bec3f with Qt5.

Filetype detection by inspection rather than filename

To aid in the distribution of firmware files, the type of firmware (radio or OS or app) should be detected by inspecting the file header instead of reading the filename as the filename is only accurate if downloaded directly from Blackberry.

With the increased detection accuracy, we can use the radio type to exclude flashing to certain incompatible phones which will reduce the occurance of temporary bricking. For example, if you are flashing a WTR to a WTR5 phone, provide a warning and remove the file from flash list. Likewise for winchester and qualcomm OS files.

Required File Missing - Windows 10

Hi

I am trying to run the program in Windows 10 but I get an error saying that the program can't start because MSVCP120.dll is missing from the computer.

Please assist.

Installation of the wallpaper bar file

Evidently, the reason why the wallpaper bar fails to install is because it's supposed to be installed in OS mode (like system firmware) instead of as a regular bar.

When [the wallpaper bar is] installed in bar mode it fails with the error "failure 850 execcmd(['/base/bin/umount', '-f', '/accounts/1000/shared/protected_media/wallpaper'], timeout=10) returns 1". When it's installed in OS mode (with an OS/Radio) it succeeds.
What we can take away from this is that in OS mode it's likely given higher permissions so does not fail. Either that or parts of the installation are potentially postponed and ran during the reboot when they can be ran without issues.

Hence, the solution should lie somewhere in src/installer.cpp, but I still can't get builds to work properly on this machine, so I'm unable to test anything. Just putting it out there.

http://forums.crackberry.com/bb10-leaked-beta-os-f395/darcys-blackberry-tools-956835/index5.html#post11709118

How to create a .signed file?

I extracted the .bar files from the .signed file. But how do I put them back? I can only find a button for creating .exe file.

USB Bootloader activity on Windows

Accessing the bootloader requires low-level access to the device in service mode when the device is turned off. However, the official USB drivers intercept these commands. On Mac OSX this is solved by uninstalling the official drivers.

On Windows, however, you are not able to communicate without a driver. The driver system is fairly complicated and annoying. Unsigned drivers are not allowed to be used on modern Windows. Even with unsigned drivers, you would need to remove the official driver first which no user would want to do as it prevents storage access only on Windows.
So, the alternative is a different communication method specifically for Windows (or machines with official drivers). It won't be as feature packed as the *nix version, but will allow most commands. The idea is to talk to the official USB driver using its ABI instead of talking to the device directly.

After installing Windows Updates released on 12th August 2014 Sachesi crashes

Windows 7 64bit;
----Windows log----
Application Error, Event-ID 1000:
Name der fehlerhaften Anwendung: Sachesi.exe, Version: 1.2.3.0, Zeitstempel: 0x538e9f1f
Name des fehlerhaften Moduls: Sachesi.exe, Version: 1.2.3.0, Zeitstempel: 0x538e9f1f
Ausnahmecode: 0xc0000005
Fehleroffset: 0x009ecff1
ID des fehlerhaften Prozesses: 0x1a2c
Startzeit der fehlerhaften Anwendung: 0x01cfbbf532d094dc
Pfad der fehlerhaften Anwendung: C:\Users\dendaw\Downloads\Programmdateien\Blackberry\Sachesi-Windows-1.2.3\Sachesi.exe
Pfad des fehlerhaften Moduls: C:\Users\dendaw\Downloads\Programmdateien\Blackberry\Sachesi-Windows-1.2.3\Sachesi.exe
Berichtskennung: 89dd6034-27e8-11e4-9649-005056c00008

----XML View----

  • 1000 2 100 0x80000000000000 61341 Application 7OURPL-HP
  • Sachesi.exe 1.2.3.0 538e9f1f Sachesi.exe 1.2.3.0 538e9f1f c0000005 009ecff1 1a2c 01cfbbf532d094dc C:\Users\dendaw\Downloads\Programmdateien\Blackberry\Sachesi-Windows-1.2.3\Sachesi.exe C:\Users\dendaw\Downloads\Programmdateien\Blackberry\Sachesi-Windows-1.2.3\Sachesi.exe 89dd6034-27e8-11e4-9649-005056c00008 -------- My Solution: Uninstall Windows Updates, to get sachesi working again.

error 99 ssl

Hello

I'm trying out sachesi 2.0.3

Under windows 10 x64 I had a first issue, I had to install the visual studio x32 runtime since x64 was useless for the need of fixing a missing vc140 dll

Now it runs but as soon I lookup in the search tab (I've entered correct country and carrier code and in fact the vodafone logo appears) at bottom of the window it appears "error 99 SSL context creation error" (sorry, I translate it from Italian) and the "Searching" button stays grayed forever

Can you kindly hint about this? The program is run as administrator

Thank you
R.

[EDIT]

I've downloaded the 1.99 version and I've discovered that this looks working fine, eg in the satuts bar I can see infos I don't see in the 2.0.3 like OS version and another info MSMxxxxetcetc, eg in the 2.0.3 the radio version was not shown like not read

as soon I've searched about official releases available for upgrade from vodafone, it has listed the latest one

Bootloader extraction

I currently extract the IFS image in to three sections.
boot.bin. This is the .boot folder, which is the area up to the startup image. This can not exist in some IFS images, designed for specific purposes.
startup.bin. This is the startup code, after boot.bin and before the imagefs.bin.
imagefs.bin. This is the deployment image filesystem Image.

I have tried to extract from the IFS nodes as I understand the format but they don't seem to be in a consistent format. Possibly using some form of compression. Looks a bit like LZO.

Any help would be welcomed.

Sachesi V 1.9.5 windows refresh in Win XP

Dear Sir,
I have downloaded Sachesi V 1.9.5 today. to update my blackberry Z10. I find that after the monitor goes to sleep, the Sachesi window does not refresh, and it is not possible to monitor the progress of the update or download.
All other windows refresh normally.
sachesi_1_9_5
I am running windows XP, Version 2002 SP3, on my Intel Core2Duo based system.
Request you to look into the problem.
Regards,
R R Bhagwat

No app icon in Linux

The app icon does not work in Linux. You need to implement a ".desktop" file for it to work.

'Any' variant option added to Variant list

Such a feature would allow scanning all compatible variants, as the actual files are all compatible and it does not matter which variant the actual firmware comes from.
To do this, it would perform a scan for each variant (between 1 and 6 individual scans) and take the information that came with the highest OS version.

Perhaps it should identifiy which variant was used as well. EDIT: Done

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.