Compare commits
6 commits
Author | SHA1 | Date | |
---|---|---|---|
|
2ddd708686 | ||
|
fe9a6e8541 | ||
|
47f0efb5a4 | ||
|
6a94bb68ef | ||
|
d7cd0ac1ab | ||
|
f87cc4f3a3 |
6 changed files with 30 additions and 120 deletions
10
README.md
10
README.md
|
@ -1,14 +1,15 @@
|
||||||
# ZUGABE
|
# ZUGABE
|
||||||
This tool automates much of the installation of h-encore.
|
|
||||||
|
|
||||||
[](http://www.repostatus.org/#active)
|
**This is obsolete. Please use [finalhe by soarqin](https://github.com/soarqin/finalhe).**
|
||||||
|
|
||||||
|
This tool automates much of the installation of h-encore.
|
||||||
|
|
||||||
## About
|
## About
|
||||||
This tool automates the install process of thefl0w's h-encore exploit for PS Vita, at least everything that can be done on the PC.
|
This tool automates the install process of thefl0w's h-encore exploit for PS Vita, at least everything that can be done on the PC.
|
||||||
Since I can't code in C or C++, I was unable to use OpenCMA as a backend, so I used QCMA. It's automatically downloaded and does not require to be installed.
|
Since I can't code in C or C++, I was unable to use OpenCMA as a backend, so I used QCMA. It's automatically downloaded and does not require to be installed.
|
||||||
Configuration of QCMA is done via registry edits. The application also detects existing QCMA installations and restores the original settings after the exploit was installed.
|
Configuration of QCMA is done via registry edits. The application also detects existing QCMA installations and restores the original settings after the exploit was installed.
|
||||||
|
|
||||||
**Attention: This tool only supports connection of the PSVita using Wi-Fi!**
|
**Attention: This tool only supports connection of the PSVita using Wi-Fi, therefore it's currently only compatible with PSVita/PSTV on Firmware 3.68!**
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
Download from the releases section, extract it and run the executable.
|
Download from the releases section, extract it and run the executable.
|
||||||
|
@ -17,8 +18,7 @@ Download from the releases section, extract it and run the executable.
|
||||||
Build using Visual Studio 2017, this was tested. Other C# IDEs might work as well.
|
Build using Visual Studio 2017, this was tested. Other C# IDEs might work as well.
|
||||||
|
|
||||||
## Todo
|
## Todo
|
||||||
- Translations
|
- Mac/Linux compatibility
|
||||||
- Mac/Linux Compatibilty
|
|
||||||
- Fix bugs (you tell me!)
|
- Fix bugs (you tell me!)
|
||||||
|
|
||||||
## Thanks
|
## Thanks
|
||||||
|
|
Binary file not shown.
|
@ -16,17 +16,8 @@ namespace h_encore_auto
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
if (File.Exists(Ref.tempDir + "keepfile"))
|
|
||||||
{
|
|
||||||
Ref.areFilesKept = true;
|
|
||||||
Util.keepFilesCleanup();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Ref.areFilesKept = false;
|
|
||||||
if (Directory.Exists(Ref.tempDir))
|
if (Directory.Exists(Ref.tempDir))
|
||||||
Util.DeleteDirectory(Ref.tempDir);
|
Util.DeleteDirectory(Ref.tempDir);
|
||||||
}
|
|
||||||
|
|
||||||
InitTimer();
|
InitTimer();
|
||||||
}
|
}
|
||||||
|
@ -64,8 +55,6 @@ namespace h_encore_auto
|
||||||
startInfoOut.FileName = "cmd.exe";
|
startInfoOut.FileName = "cmd.exe";
|
||||||
startInfoOut.WorkingDirectory = Ref.tempDir;
|
startInfoOut.WorkingDirectory = Ref.tempDir;
|
||||||
|
|
||||||
if (Ref.areFilesKept == false)
|
|
||||||
{
|
|
||||||
// 7ZIP Download and extraction
|
// 7ZIP Download and extraction
|
||||||
Util.dlFile(Ref.url7zr, "7zr.exe");
|
Util.dlFile(Ref.url7zr, "7zr.exe");
|
||||||
Util.dlFile(Ref.url7za, "7z-extra.7z");
|
Util.dlFile(Ref.url7za, "7z-extra.7z");
|
||||||
|
@ -90,7 +79,6 @@ namespace h_encore_auto
|
||||||
File.WriteAllText(Ref.pathImportReg, text);
|
File.WriteAllText(Ref.pathImportReg, text);
|
||||||
text = text.Replace("HKEY_CURRENT_USER/Software/codestation/qcma", @"HKEY_CURRENT_USER\Software\codestation\qcma");
|
text = text.Replace("HKEY_CURRENT_USER/Software/codestation/qcma", @"HKEY_CURRENT_USER\Software\codestation\qcma");
|
||||||
File.WriteAllText(Ref.pathImportReg, text);
|
File.WriteAllText(Ref.pathImportReg, text);
|
||||||
}
|
|
||||||
|
|
||||||
startInfo.Arguments = "/C " + Ref.path7z + " x " + Ref.pathPsvimg;
|
startInfo.Arguments = "/C " + Ref.path7z + " x " + Ref.pathPsvimg;
|
||||||
process.StartInfo = startInfo;
|
process.StartInfo = startInfo;
|
||||||
|
@ -122,20 +110,6 @@ namespace h_encore_auto
|
||||||
Util.CopyDir(Ref.tempDir + "app\\PCSG90096\\", Ref.tempDir + "h-encore\\app\\ux0_temp_game_PCSG90096_app_PCSG90096\\",true);
|
Util.CopyDir(Ref.tempDir + "app\\PCSG90096\\", Ref.tempDir + "h-encore\\app\\ux0_temp_game_PCSG90096_app_PCSG90096\\",true);
|
||||||
File.Copy(Ref.tempDir + "app\\PCSG90096\\sce_sys\\package\\temp.bin", Ref.tempDir + @"h-encore\license\ux0_temp_game_PCSG90096_license_app_PCSG90096\6488b73b912a753a492e2714e9b38bc7.rif");
|
File.Copy(Ref.tempDir + "app\\PCSG90096\\sce_sys\\package\\temp.bin", Ref.tempDir + @"h-encore\license\ux0_temp_game_PCSG90096_license_app_PCSG90096\6488b73b912a753a492e2714e9b38bc7.rif");
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
string path = Ref.tempDir + "app\\PCSG90096\\resource\\";
|
|
||||||
foreach (string k in Ref.trims)
|
|
||||||
{
|
|
||||||
Util.DeleteDirectory(path + k);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
MessageBox.Show("Exception: " + ex.Message + "\nYou should tell the developer in a github issue. Include a screenshot if possible!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
startInfoOut.RedirectStandardOutput = true;
|
startInfoOut.RedirectStandardOutput = true;
|
||||||
startInfoOut.UseShellExecute = false;
|
startInfoOut.UseShellExecute = false;
|
||||||
startInfoOut.Arguments = @"/C reg query HKEY_CURRENT_USER\Software\codestation\qcma & echo 0";
|
startInfoOut.Arguments = @"/C reg query HKEY_CURRENT_USER\Software\codestation\qcma & echo 0";
|
||||||
|
|
|
@ -94,11 +94,6 @@ namespace h_encore_auto
|
||||||
|
|
||||||
if (Directory.Exists(Ref.tempDir))
|
if (Directory.Exists(Ref.tempDir))
|
||||||
{
|
{
|
||||||
if (MessageBox.Show("Do you want to keep the downloaded files for future use?\nPressing no will wipe any leftover files of this application off your computer.", "Keep Files?", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
|
|
||||||
{
|
|
||||||
keepFilesCleanup();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
DeleteDirectory(Ref.tempDir);
|
DeleteDirectory(Ref.tempDir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,38 +150,5 @@ namespace h_encore_auto
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static void keepFilesCleanup()
|
|
||||||
{
|
|
||||||
if (!File.Exists(Ref.tempDir + "keepfile"))
|
|
||||||
{
|
|
||||||
File.Create(Ref.tempDir + "keepfile");
|
|
||||||
}
|
|
||||||
|
|
||||||
string backupTemp = Ref.tempDir + "keepfiles\\";
|
|
||||||
Directory.CreateDirectory(backupTemp);
|
|
||||||
|
|
||||||
foreach (string download in Ref.downloads)
|
|
||||||
{
|
|
||||||
File.Copy(Ref.tempDir + download, backupTemp + download);
|
|
||||||
}
|
|
||||||
|
|
||||||
Util.DeleteDirectory(Ref.tempDir + "\\app");
|
|
||||||
Util.DeleteDirectory(Ref.tempDir + "\\Far");
|
|
||||||
Util.DeleteDirectory(Ref.tempDir + "\\h-encore");
|
|
||||||
Util.DeleteDirectory(Ref.tempDir + "\\Qcma");
|
|
||||||
Util.DeleteDirectory(Ref.tempDir + "\\QcmaRes");
|
|
||||||
Util.DeleteDirectory(Ref.tempDir + "\\x64");
|
|
||||||
|
|
||||||
foreach (string file in Directory.GetFiles(Ref.tempDir))
|
|
||||||
{
|
|
||||||
File.Delete(file);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (string download in Ref.downloads)
|
|
||||||
{
|
|
||||||
File.Copy(backupTemp + download, Ref.tempDir + download);
|
|
||||||
}
|
|
||||||
Util.DeleteDirectory(backupTemp);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -50,7 +50,7 @@ namespace h_encore_auto
|
||||||
currImg--;
|
currImg--;
|
||||||
imgFrame.Source = new BitmapImage(new Uri("/img/" + currImg + ".png", UriKind.Relative));
|
imgFrame.Source = new BitmapImage(new Uri("/img/" + currImg + ".png", UriKind.Relative));
|
||||||
buttonFwd.IsEnabled = true;
|
buttonFwd.IsEnabled = true;
|
||||||
textField.Text = currText[currImg];
|
textField.Text = currText[currImg - 1];
|
||||||
|
|
||||||
if (currImg == 1 || currImg == 15)
|
if (currImg == 1 || currImg == 15)
|
||||||
{
|
{
|
||||||
|
|
|
@ -20,31 +20,6 @@ namespace h_encore_auto
|
||||||
|
|
||||||
public static readonly string tempDir = Path.GetTempPath() + @"encore_temp\";
|
public static readonly string tempDir = Path.GetTempPath() + @"encore_temp\";
|
||||||
|
|
||||||
public static readonly string[] trims = new string[] {
|
|
||||||
"movie\\",
|
|
||||||
"image\\bg\\",
|
|
||||||
"image\\ev\\",
|
|
||||||
"image\\icon\\",
|
|
||||||
"image\\stitle\\",
|
|
||||||
"image\\tachie\\",
|
|
||||||
"sound\\bgm\\",
|
|
||||||
"sound\\se\\",
|
|
||||||
"sound\\sec\\",
|
|
||||||
"sound\\voice\\",
|
|
||||||
"text\\01\\"
|
|
||||||
};
|
|
||||||
|
|
||||||
public static readonly string[] downloads = new string[] {
|
|
||||||
"7zr.exe",
|
|
||||||
"7z-extra.7z",
|
|
||||||
"entryPoint.pkg",
|
|
||||||
"h-encore.zip",
|
|
||||||
"pkg2zip.zip",
|
|
||||||
"psvimgtools.zip",
|
|
||||||
"qcma.reg",
|
|
||||||
"qcma.zip"
|
|
||||||
};
|
|
||||||
|
|
||||||
public static bool isSecondGuide = false;
|
public static bool isSecondGuide = false;
|
||||||
|
|
||||||
public static bool isQcmaConfigFound = false;
|
public static bool isQcmaConfigFound = false;
|
||||||
|
@ -63,7 +38,6 @@ namespace h_encore_auto
|
||||||
public static readonly string pathBackupReg = tempDir + "backup.reg";
|
public static readonly string pathBackupReg = tempDir + "backup.reg";
|
||||||
public static readonly string pathImportReg = tempDir + "qcma.reg";
|
public static readonly string pathImportReg = tempDir + "qcma.reg";
|
||||||
public static readonly string pathQcmaRes = tempDir + "QcmaRes\\";
|
public static readonly string pathQcmaRes = tempDir + "QcmaRes\\";
|
||||||
public static bool areFilesKept = false;
|
|
||||||
|
|
||||||
public static bool isRegModified = false;
|
public static bool isRegModified = false;
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue