Compare commits

...

6 commits
0.3 ... master

Author SHA1 Message Date
Jakob
2ddd708686
Update README.md 2019-03-12 13:44:40 +01:00
Jakob
fe9a6e8541
Update README.md 2018-07-30 18:37:00 +02:00
Jakob
47f0efb5a4 fix bugs and update README 2018-07-08 19:28:31 +02:00
Jakob
6a94bb68ef update qcma.reg 2018-07-07 16:26:09 +02:00
Jakob
d7cd0ac1ab update README 2018-07-07 16:00:14 +02:00
Jakob
f87cc4f3a3 update README 2018-07-07 10:28:04 +02:00
6 changed files with 30 additions and 120 deletions

View file

@ -1,14 +1,15 @@
# ZUGABE # ZUGABE
This tool automates much of the installation of h-encore.
[![Project Status: Active The project has reached a stable, usable state and is being actively developed.](http://www.repostatus.org/badges/latest/active.svg)](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.

View file

@ -16,17 +16,8 @@ namespace h_encore_auto
{ {
InitializeComponent(); InitializeComponent();
if (File.Exists(Ref.tempDir + "keepfile")) if (Directory.Exists(Ref.tempDir))
{ Util.DeleteDirectory(Ref.tempDir);
Ref.areFilesKept = true;
Util.keepFilesCleanup();
}
else
{
Ref.areFilesKept = false;
if (Directory.Exists(Ref.tempDir))
Util.DeleteDirectory(Ref.tempDir);
}
InitTimer(); InitTimer();
} }
@ -64,33 +55,30 @@ 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
{ Util.dlFile(Ref.url7zr, "7zr.exe");
// 7ZIP Download and extraction Util.dlFile(Ref.url7za, "7z-extra.7z");
Util.dlFile(Ref.url7zr, "7zr.exe");
Util.dlFile(Ref.url7za, "7z-extra.7z");
startInfo.Arguments = "/C 7zr.exe x 7z-extra.7z"; startInfo.Arguments = "/C 7zr.exe x 7z-extra.7z";
process.StartInfo = startInfo; process.StartInfo = startInfo;
process.Start(); process.Start();
process.WaitForExit(); process.WaitForExit();
//Rest of the tool downloads //Rest of the tool downloads
Util.dlFile(Ref.urlPsvimg, "psvimgtools.zip"); Util.dlFile(Ref.urlPsvimg, "psvimgtools.zip");
Util.dlFile(Ref.urlPkg, "pkg2zip.zip"); Util.dlFile(Ref.urlPkg, "pkg2zip.zip");
Util.dlFile(Ref.urlEnc, "h-encore.zip"); Util.dlFile(Ref.urlEnc, "h-encore.zip");
Util.dlFile(Ref.urlEntry, "entryPoint.pkg"); Util.dlFile(Ref.urlEntry, "entryPoint.pkg");
Util.dlFile(Ref.urlQcma, "qcma.zip"); Util.dlFile(Ref.urlQcma, "qcma.zip");
Util.dlFile(Ref.urlReg, "qcma.reg"); Util.dlFile(Ref.urlReg, "qcma.reg");
string text = File.ReadAllText(Ref.pathImportReg); string text = File.ReadAllText(Ref.pathImportReg);
text = text.Replace("REPLACE", Ref.pathQcmaRes); text = text.Replace("REPLACE", Ref.pathQcmaRes);
File.WriteAllText(Ref.pathImportReg, text); File.WriteAllText(Ref.pathImportReg, text);
text = text.Replace("\\", "/"); text = text.Replace("\\", "/");
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";

View file

@ -94,12 +94,7 @@ 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) DeleteDirectory(Ref.tempDir);
{
keepFilesCleanup();
}
else
DeleteDirectory(Ref.tempDir);
} }
Environment.Exit(0); Environment.Exit(0);
@ -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);
}
} }
} }

View file

@ -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)
{ {

View file

@ -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;
} }