.class public Lorg/lsposed/lspatch/metaloader/LSPAppComponentFactoryStub; .super Landroid/app/AppComponentFactory; .source "SourceFile" # static fields .field public static dex:[B # direct methods .method static constructor <clinit>()V .registers 12 const-string v0, "Cyber" invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V const-string v0, "C" invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V invoke-static {}, La/a;->a()Ljava/util/Map; move-result-object v0 :try_start_e const-class v1, Lorg/lsposed/lspatch/metaloader/LSPAppComponentFactoryStub; invoke-virtual {v1}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader; move-result-object v1 invoke-static {v1}, Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;)Ljava/lang/Object; const-string v2, "dalvik.system.VMRuntime" invoke-static {v2}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class; move-result-object v2 const-string v3, "getRuntime" const/4 v4, 0x0 new-array v5, v4, [Ljava/lang/Class; invoke-virtual {v2, v3, v5}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v3 const/4 v5, 0x1 invoke-virtual {v3, v5}, Ljava/lang/reflect/AccessibleObject;->setAccessible(Z)V const-string v6, "vmInstructionSet" new-array v7, v4, [Ljava/lang/Class; invoke-virtual {v2, v6, v7}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v2 invoke-virtual {v2, v5}, Ljava/lang/reflect/AccessibleObject;->setAccessible(Z)V const/4 v6, 0x0 new-array v7, v4, [Ljava/lang/Object; invoke-virtual {v3, v6, v7}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; move-result-object v3 new-array v6, v4, [Ljava/lang/Object; invoke-virtual {v2, v3, v6}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; move-result-object v2 check-cast v2, Ljava/lang/String; invoke-interface {v0, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/lang/String; const-string v2, "assets/lspatch/config.json" invoke-virtual {v1, v2}, Ljava/lang/ClassLoader;->getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream; move-result-object v2 :try_end_50 .catchall {:try_start_e .. :try_end_50} :catchall_1ab :try_start_50 new-instance v3, Landroid/util/JsonReader; new-instance v6, Ljava/io/InputStreamReader; invoke-direct {v6, v2}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V invoke-direct {v3, v6}, Landroid/util/JsonReader;-><init>(Ljava/io/Reader;)V :try_end_5a .catchall {:try_start_50 .. :try_end_5a} :catchall_19f :try_start_5a invoke-virtual {v3}, Landroid/util/JsonReader;->beginObject()V :goto_5d invoke-virtual {v3}, Landroid/util/JsonReader;->hasNext()Z move-result v6 if-eqz v6, :cond_78 invoke-virtual {v3}, Landroid/util/JsonReader;->nextName()Ljava/lang/String; move-result-object v6 const-string v7, "useManager" invoke-virtual {v6, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v6 if-eqz v6, :cond_74 invoke-virtual {v3}, Landroid/util/JsonReader;->nextBoolean()Z move-result v6 goto :goto_79 :cond_74 invoke-virtual {v3}, Landroid/util/JsonReader;->skipValue()V :try_end_77 .catchall {:try_start_5a .. :try_end_77} :catchall_195 goto :goto_5d :cond_78 move v6, v4 :goto_79 :try_start_79 invoke-virtual {v3}, Landroid/util/JsonReader;->close()V :try_end_7c .catchall {:try_start_79 .. :try_end_7c} :catchall_19f if-eqz v2, :cond_81 :try_start_7e invoke-virtual {v2}, Ljava/io/InputStream;->close()V :try_end_81 .catchall {:try_start_7e .. :try_end_81} :catchall_1ab :cond_81 const-string v2, "/liblspatch.so" const-string v3, "assets/lspatch/loader.dex" const-string v7, "LSPatch-MetaLoader" const/4 v8, -0x1 const/16 v9, 0x2000 if-eqz v6, :cond_133 :try_start_8c const-string v1, "Bootstrap loader from manager" invoke-static {v7, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I const-string v1, "package" invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder; move-result-object v1 invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager; move-result-object v1 sget v6, Landroid/os/Build$VERSION;->SDK_INT:I :try_end_9d .catchall {:try_start_8c .. :try_end_9d} :catchall_1ab const/16 v7, 0x21 const-string v10, "org.lsposed.lspatch" if-lt v6, v7, :cond_c0 :try_start_a3 const-class v6, Landroid/content/pm/IPackageManager; const/4 v7, 0x3 new-array v7, v7, [Ljava/lang/Object; aput-object v10, v7, v4 const-wide/16 v10, 0x0 invoke-static {v10, v11}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object v10 aput-object v10, v7, v5 const/4 v5, 0x2 invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v10 aput-object v10, v7, v5 invoke-static {v6, v1, v7}, Lorg/lsposed/hiddenapibypass/i;->a(Ljava/lang/Class;Landroid/content/pm/IPackageManager;[Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 check-cast v1, Landroid/content/pm/ApplicationInfo; goto :goto_c4 :cond_c0 invoke-interface {v1, v10, v4, v4}, Landroid/content/pm/IPackageManager;->getApplicationInfo(Ljava/lang/String;II)Landroid/content/pm/ApplicationInfo; move-result-object v1 :goto_c4 new-instance v5, Ljava/util/zip/ZipFile; new-instance v6, Ljava/io/File; iget-object v7, v1, Landroid/content/pm/ApplicationInfo;->sourceDir:Ljava/lang/String; invoke-direct {v6, v7}, Ljava/io/File;-><init>(Ljava/lang/String;)V invoke-direct {v5, v6}, Ljava/util/zip/ZipFile;-><init>(Ljava/io/File;)V :try_end_d0 .catchall {:try_start_a3 .. :try_end_d0} :catchall_1ab :try_start_d0 invoke-virtual {v5, v3}, Ljava/util/zip/ZipFile;->getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry; move-result-object v3 invoke-virtual {v5, v3}, Ljava/util/zip/ZipFile;->getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream; move-result-object v3 :try_end_d8 .catchall {:try_start_d0 .. :try_end_d8} :catchall_129 :try_start_d8 new-instance v6, Ljava/io/ByteArrayOutputStream; invoke-direct {v6}, Ljava/io/ByteArrayOutputStream;-><init>()V :try_end_dd .catchall {:try_start_d8 .. :try_end_dd} :catchall_11d :try_start_dd new-array v7, v9, [B :goto_df invoke-virtual {v3, v7}, Ljava/io/InputStream;->read([B)I move-result v9 if-eq v8, v9, :cond_eb invoke-virtual {v6, v7, v4, v9}, Ljava/io/OutputStream;->write([BII)V goto :goto_df :catchall_e9 move-exception v0 goto :goto_114 :cond_eb invoke-virtual {v6}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B move-result-object v4 sput-object v4, Lorg/lsposed/lspatch/metaloader/LSPAppComponentFactoryStub;->dex:[B :try_end_f1 .catchall {:try_start_dd .. :try_end_f1} :catchall_e9 :try_start_f1 invoke-virtual {v6}, Ljava/io/ByteArrayOutputStream;->close()V :try_end_f4 .catchall {:try_start_f1 .. :try_end_f4} :catchall_11d :try_start_f4 invoke-virtual {v3}, Ljava/io/InputStream;->close()V :try_end_f7 .catchall {:try_start_f4 .. :try_end_f7} :catchall_129 :try_start_f7 invoke-virtual {v5}, Ljava/util/zip/ZipFile;->close()V new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V iget-object v1, v1, Landroid/content/pm/ApplicationInfo;->sourceDir:Ljava/lang/String; invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v1, "!/assets/lspatch/so/" invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 :try_end_113 .catchall {:try_start_f7 .. :try_end_113} :catchall_1ab goto :goto_17c :goto_114 :try_start_114 invoke-virtual {v6}, Ljava/io/ByteArrayOutputStream;->close()V :try_end_117 .catchall {:try_start_114 .. :try_end_117} :catchall_118 goto :goto_11c :catchall_118 move-exception v1 :try_start_119 invoke-virtual {v0, v1}, Ljava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V :goto_11c throw v0 :try_end_11d .catchall {:try_start_119 .. :try_end_11d} :catchall_11d :catchall_11d move-exception v0 if-eqz v3, :cond_128 :try_start_120 invoke-virtual {v3}, Ljava/io/InputStream;->close()V :try_end_123 .catchall {:try_start_120 .. :try_end_123} :catchall_124 goto :goto_128 :catchall_124 move-exception v1 :try_start_125 invoke-virtual {v0, v1}, Ljava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V :cond_128 :goto_128 throw v0 :try_end_129 .catchall {:try_start_125 .. :try_end_129} :catchall_129 :catchall_129 move-exception v0 :try_start_12a invoke-virtual {v5}, Ljava/util/zip/ZipFile;->close()V :try_end_12d .catchall {:try_start_12a .. :try_end_12d} :catchall_12e goto :goto_132 :catchall_12e move-exception v1 :try_start_12f invoke-virtual {v0, v1}, Ljava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V :goto_132 throw v0 :cond_133 const-string v5, "Bootstrap loader from embedment" invoke-static {v7, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I invoke-virtual {v1, v3}, Ljava/lang/ClassLoader;->getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream; move-result-object v3 :try_end_13c .catchall {:try_start_12f .. :try_end_13c} :catchall_1ab :try_start_13c new-instance v5, Ljava/io/ByteArrayOutputStream; invoke-direct {v5}, Ljava/io/ByteArrayOutputStream;-><init>()V :try_end_141 .catchall {:try_start_13c .. :try_end_141} :catchall_189 :try_start_141 new-array v6, v9, [B :goto_143 invoke-virtual {v3, v6}, Ljava/io/InputStream;->read([B)I move-result v7 if-eq v8, v7, :cond_14f invoke-virtual {v5, v6, v4, v7}, Ljava/io/OutputStream;->write([BII)V goto :goto_143 :catchall_14d move-exception v0 goto :goto_180 :cond_14f invoke-virtual {v5}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B move-result-object v4 sput-object v4, Lorg/lsposed/lspatch/metaloader/LSPAppComponentFactoryStub;->dex:[B :try_end_155 .catchall {:try_start_141 .. :try_end_155} :catchall_14d :try_start_155 invoke-virtual {v5}, Ljava/io/ByteArrayOutputStream;->close()V :try_end_158 .catchall {:try_start_155 .. :try_end_158} :catchall_189 :try_start_158 invoke-virtual {v3}, Ljava/io/InputStream;->close()V new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V const-string v4, "assets/lspatch/so/" invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-virtual {v1, v0}, Ljava/lang/ClassLoader;->getResource(Ljava/lang/String;)Ljava/net/URL; move-result-object v0 invoke-virtual {v0}, Ljava/net/URL;->getPath()Ljava/lang/String; move-result-object v0 const/4 v1, 0x5 invoke-virtual {v0, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object v0 :goto_17c invoke-static {v0}, Ljava/lang/System;->load(Ljava/lang/String;)V :try_end_17f .catchall {:try_start_158 .. :try_end_17f} :catchall_1ab return-void :goto_180 :try_start_180 invoke-virtual {v5}, Ljava/io/ByteArrayOutputStream;->close()V :try_end_183 .catchall {:try_start_180 .. :try_end_183} :catchall_184 goto :goto_188 :catchall_184 move-exception v1 :try_start_185 invoke-virtual {v0, v1}, Ljava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V :goto_188 throw v0 :try_end_189 .catchall {:try_start_185 .. :try_end_189} :catchall_189 :catchall_189 move-exception v0 if-eqz v3, :cond_194 :try_start_18c invoke-virtual {v3}, Ljava/io/InputStream;->close()V :try_end_18f .catchall {:try_start_18c .. :try_end_18f} :catchall_190 goto :goto_194 :catchall_190 move-exception v1 :try_start_191 invoke-virtual {v0, v1}, Ljava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V :cond_194 :goto_194 throw v0 :try_end_195 .catchall {:try_start_191 .. :try_end_195} :catchall_1ab :catchall_195 move-exception v0 :try_start_196 invoke-virtual {v3}, Landroid/util/JsonReader;->close()V :try_end_199 .catchall {:try_start_196 .. :try_end_199} :catchall_19a goto :goto_19e :catchall_19a move-exception v1 :try_start_19b invoke-virtual {v0, v1}, Ljava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V :goto_19e throw v0 :try_end_19f .catchall {:try_start_19b .. :try_end_19f} :catchall_19f :catchall_19f move-exception v0 if-eqz v2, :cond_1aa :try_start_1a2 invoke-virtual {v2}, Ljava/io/InputStream;->close()V :try_end_1a5 .catchall {:try_start_1a2 .. :try_end_1a5} :catchall_1a6 goto :goto_1aa :catchall_1a6 move-exception v1 :try_start_1a7 invoke-virtual {v0, v1}, Ljava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V :cond_1aa :goto_1aa throw v0 :try_end_1ab .catchall {:try_start_1a7 .. :try_end_1ab} :catchall_1ab :catchall_1ab move-exception v0 new-instance v1, Ljava/lang/ExceptionInInitializerError; invoke-direct {v1, v0}, Ljava/lang/ExceptionInInitializerError;-><init>(Ljava/lang/Throwable;)V throw v1 .end method .method public constructor <init>()V .registers 1 invoke-direct {p0}, Landroid/app/AppComponentFactory;-><init>()V return-void .end method
Write, Run & Share Javascript code online using OneCompiler's JS online compiler for free. It's one of the robust, feature-rich online compilers for Javascript language. Getting started with the OneCompiler's Javascript editor is easy and fast. The editor shows sample boilerplate code when you choose language as Javascript and start coding.
Javascript(JS) is a object-oriented programming language which adhere to ECMA Script Standards. Javascript is required to design the behaviour of the web pages.
var readline = require('readline');
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
terminal: false
});
rl.on('line', function(line){
console.log("Hello, " + line);
});
Keyword | Description | Scope |
---|---|---|
var | Var is used to declare variables(old way of declaring variables) | Function or global scope |
let | let is also used to declare variables(new way) | Global or block Scope |
const | const is used to declare const values. Once the value is assigned, it can not be modified | Global or block Scope |
let greetings = `Hello ${name}`
const msg = `
hello
world!
`
An array is a collection of items or values.
let arrayName = [value1, value2,..etc];
// or
let arrayName = new Array("value1","value2",..etc);
let mobiles = ["iPhone", "Samsung", "Pixel"];
// accessing an array
console.log(mobiles[0]);
// changing an array element
mobiles[3] = "Nokia";
Arrow Functions helps developers to write code in concise way, it’s introduced in ES6.
Arrow functions can be written in multiple ways. Below are couple of ways to use arrow function but it can be written in many other ways as well.
() => expression
const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
const squaresOfEvenNumbers = numbers.filter(ele => ele % 2 == 0)
.map(ele => ele ** 2);
console.log(squaresOfEvenNumbers);
let [firstName, lastName] = ['Foo', 'Bar']
let {firstName, lastName} = {
firstName: 'Foo',
lastName: 'Bar'
}
const {
title,
firstName,
lastName,
...rest
} = record;
//Object spread
const post = {
...options,
type: "new"
}
//array spread
const users = [
...adminUsers,
...normalUsers
]
function greetings({ name = 'Foo' } = {}) { //Defaulting name to Foo
console.log(`Hello ${name}!`);
}
greet() // Hello Foo
greet({ name: 'Bar' }) // Hi Bar
IF is used to execute a block of code based on a condition.
if(condition){
// code
}
Else part is used to execute the block of code when the condition fails.
if(condition){
// code
} else {
// code
}
Switch is used to replace nested If-Else statements.
switch(condition){
case 'value1' :
//code
[break;]
case 'value2' :
//code
[break;]
.......
default :
//code
[break;]
}
For loop is used to iterate a set of statements based on a condition.
for(Initialization; Condition; Increment/decrement){
//code
}
While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.
while (condition) {
// code
}
Do-while is also used to iterate a set of statements based on a condition. It is mostly used when you need to execute the statements atleast once.
do {
// code
} while (condition);
ES6 introduced classes along with OOPS concepts in JS. Class is similar to a function which you can think like kind of template which will get called when ever you initialize class.
class className {
constructor() { ... } //Mandatory Class method
method1() { ... }
method2() { ... }
...
}
class Mobile {
constructor(model) {
this.name = model;
}
}
mbl = new Mobile("iPhone");