apkutils.dex.jvm package

Submodules

apkutils.dex.jvm.arraytypes module

apkutils.dex.jvm.arraytypes.eletPair(t)[source]
apkutils.dex.jvm.arraytypes.fromDesc(desc)[source]
apkutils.dex.jvm.arraytypes.merge(t1, t2)[source]
apkutils.dex.jvm.arraytypes.narrow(t1, t2)[source]

apkutils.dex.jvm.constantpool module

class apkutils.dex.jvm.constantpool.ConstantPoolBase[source]

Bases: object

class_(s)[source]
double(x)[source]
field(trip)[source]
float(x)[source]
imethod(trip)[source]
insertDirectly(pair, low)[source]
int(x)[source]
long(x)[source]
method(trip)[source]
nat(name, desc)[source]
string(s)[source]
tryGet(pair)[source]
utf8(s)[source]
class apkutils.dex.jvm.constantpool.SimpleConstantPool[source]

Bases: apkutils.dex.jvm.constantpool.ConstantPoolBase

lowspace()[source]
space()[source]
write(stream)[source]
class apkutils.dex.jvm.constantpool.SplitConstantPool[source]

Bases: apkutils.dex.jvm.constantpool.ConstantPoolBase

lowspace()[source]
space()[source]
write(stream)[source]

apkutils.dex.jvm.error module

exception apkutils.dex.jvm.error.ClassfileLimitExceeded[source]

Bases: Exception

apkutils.dex.jvm.genmathops module

apkutils.dex.jvm.ir module

apkutils.dex.jvm.ir.Dup()[source]
apkutils.dex.jvm.ir.Dup2()[source]
class apkutils.dex.jvm.ir.Goto(target)[source]

Bases: apkutils.dex.jvm.ir.LazyJumpBase

calcBytecode(posd, labels)[source]
fallsthrough()[source]
class apkutils.dex.jvm.ir.If(op, target)[source]

Bases: apkutils.dex.jvm.ir.LazyJumpBase

calcBytecode(posd, labels)[source]
class apkutils.dex.jvm.ir.JvmInstruction(bytecode=None)[source]

Bases: object

fallsthrough()[source]
targets()[source]
class apkutils.dex.jvm.ir.Label(id=None)[source]

Bases: apkutils.dex.jvm.ir.JvmInstruction

class apkutils.dex.jvm.ir.LazyJumpBase(target)[source]

Bases: apkutils.dex.jvm.ir.JvmInstruction

targets()[source]
widenIfNecessary(labels, posd)[source]
class apkutils.dex.jvm.ir.Other(bytecode=None)[source]

Bases: apkutils.dex.jvm.ir.JvmInstruction

fallsthrough()[source]
class apkutils.dex.jvm.ir.OtherConstant(bytecode=None)[source]

Bases: apkutils.dex.jvm.ir.JvmInstruction

wide = False
apkutils.dex.jvm.ir.Pop()[source]
apkutils.dex.jvm.ir.Pop2()[source]
class apkutils.dex.jvm.ir.PrimConstant(st, val, pool=None)[source]

Bases: apkutils.dex.jvm.ir.JvmInstruction

cpool_key()[source]
fix_with_pool(pool)[source]
class apkutils.dex.jvm.ir.RegAccess(dreg, st, store)[source]

Bases: apkutils.dex.jvm.ir.JvmInstruction

calcBytecode(local)[source]
static raw(local, stype, store)[source]
class apkutils.dex.jvm.ir.Switch(default, jumps)[source]

Bases: apkutils.dex.jvm.ir.JvmInstruction

calcBytecode(posd, labels)[source]
fallsthrough()[source]
targets()[source]

apkutils.dex.jvm.jvmops module

apkutils.dex.jvm.mathops module

apkutils.dex.jvm.scalartypes module

apkutils.dex.jvm.scalartypes.fromDesc(desc)[source]
apkutils.dex.jvm.scalartypes.iswide(st)[source]
apkutils.dex.jvm.scalartypes.paramTypes(method_id, static)[source]

apkutils.dex.jvm.writebytecode module

apkutils.dex.jvm.writebytecode.finishCodeAttrs(pool, code_irs, opts)[source]
apkutils.dex.jvm.writebytecode.getCodeIR(pool, method, opts)[source]
apkutils.dex.jvm.writebytecode.writeCodeAttributeTail(pool, irdata, opts)[source]

apkutils.dex.jvm.writeclass module

apkutils.dex.jvm.writeclass.classFileAfterPool(cls, opts)[source]
apkutils.dex.jvm.writeclass.toClassFile(cls, opts)[source]
apkutils.dex.jvm.writeclass.writeField(pool, stream, field)[source]
apkutils.dex.jvm.writeclass.writeMethod(pool, stream, method, code_attr_data)[source]
apkutils.dex.jvm.writeclass.writeMethods(pool, stream, methods, opts)[source]

apkutils.dex.jvm.writeir module

class apkutils.dex.jvm.writeir.IRBlock(parent, pos)[source]

Bases: object

add(jvm_instr)[source]
cast(dex, reg, index)[source]
const(val, stype)[source]
const_null()[source]
fillarraydata(op, stype, vals)[source]
fillarraysub(op, cbs, pop=True)[source]
generateExceptLabels()[source]
goto(target)[source]
if_(op, target)[source]
ldc(index)[source]
load(reg, stype, desc=None, clsname=None)[source]
loadAsArray(reg)[source]
newarray(desc)[source]
return_(stype=None)[source]
store(reg, stype)[source]
switch(default, jumps)[source]
u8(op)[source]
u8u16(op, x)[source]
u8u16u8u8(op, x, y, z)[source]
u8u8(op, x)[source]
u8u8u16(op, op2, x)[source]
class apkutils.dex.jvm.writeir.IRWriter(pool, method, types, opts)[source]

Bases: object

addExceptionRedirect(target)[source]
calcInitialArgs(nregs, scalar_ptypes)[source]
calcUpperBound()[source]
createBlock(instr)[source]
flatten()[source]
replaceInstrs(replace)[source]
apkutils.dex.jvm.writeir.visitArrayGet(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitArrayLen(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitArrayPut(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitBinaryOp(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitBinaryOpConst(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitCheckCast(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitCmp(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitConst32(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitConst64(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitConstClass(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitConstString(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitFillArrayData(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitFilledNewArray(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitGoto(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitIf(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitIfZ(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitInstanceGet(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitInstanceOf(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitInstancePut(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitInvoke(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitMonitorEnter(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitMonitorExit(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitMove(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitMoveResult(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitMoveWide(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitNewArray(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitNewInstance(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitNop(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitReturn(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitStaticGet(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitStaticPut(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitSwitch(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitThrow(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.visitUnaryOp(method, dex, instr_d, type_data, block, instr)[source]
apkutils.dex.jvm.writeir.writeBytecode(pool, method, opts)[source]

Module contents