/finalhe

Final h-encore, a tool to push h-encore exploit for PS VITA/PS TV automatically

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Final h-encore

Push the h-encore exploit for PS VITA and PS TV through a Windows, macOS or Linux GUI.

Credits

see CREDITS.md

Common usage

  1. Download a pre-built executable binary below.
  2. If you want to update PS Vita to firmware 3.60, 3.65 or 3.68 through USB connection, download related Update Packages here and extract the PSP2UPDAT.PUP to the same folder as this tool
  3. If you want to install VitaShell or enso by transferring in Content Manager, download prebuilt zip from releases tab and put in the same folder of this tool
  4. Connect your PS Vita to your computer via USB
  5. Run the executable and follow the on-screen directions

Prebuilt binaries

Download a pre-built executable binary below and follow instructions. Supported firmwares: 3.60, 3.61, 3.65-3.72

  • For Windows get the latest release
    • if you have not installed USB driver for PS Vita: install QcmaDriver_winusb.exe (also on the releases page)
  • For macOS, the last pre-built release is v1.5
  • For linux openSUSE
    1. add a home repository to your local software repositories:
      • sudo addrepo -f http://download.opensuse.org/repositories/home:/seilerphilipp/openSUSE_Leap_15.0/
      • note: if using Leap 42.3, replace the version in the url with 42.3
    2. install package
      • sudo zypper install finalhe
    3. Run "FinalHE"
      • in your terminal type FinalHE
  • For Arch Linux
    1. Install the finalhe-git package from AUR:
      • yay -S finalhe-git
    2. Run finalhe in your terminal

Build from source

Prerequisites

  1. macOS: install brew, build tools (xcode-select --install) then install dyld, libusb, pkg-config & qt5 through brew (brew install dyld-headers libusb pkg-config qt5)
  2. Linux:
    • Debian/Ubuntu: install build-essential, libxml2-dev, libusb-dev, libusb-1.0-0-dev, zlib-dev or zlib1g-dev, qtbase5-dev, qttools5, cmake(if use cmake to build)
    • Fedora/CentOS: group install "Development Tools", install libxml2-devel, libusb-devel, zlib-devel, qt5-qtbase-devel, qt5-qtbase, qt5-linguist, cmake3(if use cmake to build)
    • openSUSE: install cmake >= 11.0, gcc-c++, zlib-devel, libxml2-devel, libQt5Widgets-devel, libQt5Network-devel, libqt5-linguist-devel, libusb-compat-devel
    • Arch: install base-devel, libxml2, libusb, zlib, qt5, cmake (if using cmake to build)

Build from source

You can choose either qmake or cmake to build

  • cmake: run cmake to generate Makefile for compiling
    • macOS: it cannot produce app bundle, and you need to specify CMAKE_PREFIX_PATH if Qt is not installed in default location: cmake -DCMAKE_PREFIX_PATH=<Path of Qt Root> <Path of Project Root>. If you have installed qt5 with brew, and are on project root directory, you can run with cmake -DCMAKE_PREFIX_PATH=/usr/local/opt/qt@5 .. Then run make and you can open it by double clicking at src/FinalHE.
  • qmake: run qmake to generate Makefile for compiling, run make lcopy in src folder to compile translations and copy them to binary folder

Contribute translations

  • For coders using Qt:
    1. If using qmake, add your language to this line in src/src.pro: TRANSLATIONS += ..., and re-generate Makefile from qmake, then run make lupdate in src folder, you will get new generated .ts files in src/languages
    2. If using cmake, add your language to this line in src/CMakeLists.txt: set(TRANSLATION_FILES ..., and re-generate Makefile/project from cmake, compile it, you will get new generated .ts files in src/languages
    3. Open .ts files with Qt Linquist tool and translate strings into native language
    4. If using qmake, run make lcopy in src folder and you will get compiled .qm files in languages folder
    5. If using cmake, compile the project and you will get compiled .qm files in language folder
  • For non-coders:
    1. Copy translations/en_US.ts to a new file with filename in IETF language tag form (but replace "-" with "_")
    2. Open the .ts file, it is just in xml format, go through all elements of <translation type="unfinished"> to translate, and remove the property type="unfinished" from translated items