This commit is contained in:
meowster 2024-05-29 19:14:23 +02:00
parent e729bff20e
commit 58dfc9ecf3

View file

@ -5,7 +5,7 @@ const { Litterbox } = require("node-catbox");
const litterbox = new Litterbox(); const litterbox = new Litterbox();
//CHANGE THESE //CHANGE THESE
let decompName = "RabbitLauncher0517"; let decompName = "RabbitLauncher0517"; //.apk file name without .apk
let uploadToLitterBox = false; let uploadToLitterBox = false;
//CHANGE THESE ^^^^^^^^^^ //CHANGE THESE ^^^^^^^^^^
@ -120,7 +120,7 @@ modifyFunc(
onKeyDown onKeyDown
); );
replaceLib(".\\libbase.so", "libbase.so") replaceLib(".\\libbase.so", "libbase.so");
build(); build();
@ -129,8 +129,8 @@ fs.renameSync(
`${decompName}_Patched.apk` `${decompName}_Patched.apk`
); );
fs.rmdirSync(`.\\${base}`) fs.rmdirSync(`.\\${base}`);
fs.rmSync(`${base}_out.apk`) fs.rmSync(`${base}_out.apk`);
if (uploadToLitterBox) { if (uploadToLitterBox) {
console.log("Uploading to LitterBox"); console.log("Uploading to LitterBox");
@ -144,6 +144,9 @@ if (uploadToLitterBox) {
); );
} }
//these next 2 functions are taken from
//https://annabelsandford.github.io/rabbit-r1-imeigen/imei_check_v1.html
function calculateChecksum(imeiWithoutChecksum) { function calculateChecksum(imeiWithoutChecksum) {
let imeiArray = imeiWithoutChecksum.split("").map(Number); let imeiArray = imeiWithoutChecksum.split("").map(Number);
let sum = 0; let sum = 0;
@ -190,7 +193,7 @@ function decomp() {
} }
function modifyFunc(path, modifyWith) { function modifyFunc(path, modifyWith) {
let start = -1; //so we know what part to modify let start = -1;
let end = -1; let end = -1;
try { try {
let data = fs.readFileSync(path, "utf8"); let data = fs.readFileSync(path, "utf8");
@ -200,12 +203,10 @@ function modifyFunc(path, modifyWith) {
lineArr.forEach((element) => { lineArr.forEach((element) => {
if (element.includes(modifyWith[0])) { if (element.includes(modifyWith[0])) {
start = lineArr.indexOf(element); start = lineArr.indexOf(element);
//console.log("start ", start);
} }
if (start > 0 && end < 0) { if (start > 0 && end < 0) {
if (element.includes(modifyWith[modifyWith.length - 1])) { if (element.includes(modifyWith[modifyWith.length - 1])) {
end = iter; end = iter;
//console.log("end ", end);
for (let i = start; i <= end; i++) { for (let i = start; i <= end; i++) {
if (modifyWith[i - start] !== undefined) if (modifyWith[i - start] !== undefined)
@ -226,26 +227,16 @@ function modifyFunc(path, modifyWith) {
} }
function replaceLib(newLibLocation, oldLib) { function replaceLib(newLibLocation, oldLib) {
fs.copyFileSync(newLibLocation, `.\\${base}\\root\\lib\\arm64-v8a\\${oldLib}`) fs.copyFileSync(
newLibLocation,
`.\\${base}\\root\\lib\\arm64-v8a\\${oldLib}`
);
} }
function build() { function build() {
execSync(`java -jar APKEditor.jar b -i ${base}`, (err, stdout, stderr) => { execSync(`java -jar APKEditor.jar b -i ${base}`);
if (err) {
console.error(err);
return;
}
console.log(`stdout: ${stdout}`);
});
execSync( execSync(
`java -jar uber-apk-signer-1.2.1.jar -a ${decompName}_decompile_xml_out.apk`, `java -jar uber-apk-signer-1.2.1.jar -a ${decompName}_decompile_xml_out.apk`
(err, stdout, stderr) => {
if (err) {
console.error(err);
return;
}
console.log(`stdout: ${stdout}`);
}
); );
} }