MCPcopy Create free account
hub / github.com/CreditTone/hooker / writeFileAsBase64Content

Function writeFileAsBase64Content

js/rpc.js:9–36  ·  view source on GitHub ↗
(filepath, base64)

Source from the content-addressed store, hash-verified

7}
8
9function writeFileAsBase64Content(filepath, base64) {
10 try {
11 var FileUtilsClz = Java.use("android.os.FileUtils");
12 var StringClz = Java.use('java.lang.String');
13 var Base64Clz = Java.use("android.util.Base64");
14 var ByteArrayInputStreamClz = Java.use("java.io.ByteArrayInputStream");
15 var FileOutputStreamClz = Java.use("java.io.FileOutputStream");
16 var FileClz = Java.use("java.io.File");
17 var distFilepath = FileClz.$new(filepath);
18 mkdirs(distFilepath.getParent());
19 var javaBase64String = StringClz.$new(base64);
20 var getBytesMehtod = StringClz.getBytes.overload('java.lang.String');
21 var bytes = getBytesMehtod.call(javaBase64String, 'UTF-8');
22 var decodeMethod = Base64Clz.decode.overload('[B', 'int');
23 var originalBinary = decodeMethod.call(Base64Clz, bytes, 0);
24 var bais = ByteArrayInputStreamClz.$new(originalBinary);
25 if (FileUtilsClz.copy) {
26 var copyMehtod = FileUtilsClz.copy.overload('java.io.InputStream', 'java.io.OutputStream');
27 var fos = FileOutputStreamClz.$new(distFilepath);
28 copyMehtod.call(FileUtilsClz, bais, fos);
29 } else if (FileUtilsClz.copyToFile) {
30 var copyMehtod = FileUtilsClz.copyToFile.overload('java.io.InputStream', 'java.io.File');
31 copyMehtod.call(FileUtilsClz, bais, distFilepath);
32 }
33 } catch(err) {
34 console.warn(err);
35 }
36};
37
38function checkFile(filepath, checkLength) {
39 var FileClz = Java.use("java.io.File");

Callers 1

rpc.jsFile · 0.70

Calls 1

mkdirsFunction · 0.85

Tested by

no test coverage detected