smali icon indicating copy to clipboard operation
smali copied to clipboard

AnalysisException during android Oreo apk deodexing

Open Furniel opened this issue 8 years ago • 0 comments

Tested deodexing on android 8 factory images and got two same errors on Nexus 5X(8.0.0 (OPR4.170623.009, Oct 2017)) and Nexus 6P(8.0.0 (OPR5.170623.007, Oct 2017)) roms. First issue occures with Wallet.odex.

org.jf.dexlib2.analysis.AnalysisException: Could not resolve the field in class Lcom/google/commerce/tapandpay/android/lifecycle/ObservedActivity; at offset 296
        at org.jf.dexlib2.analysis.MethodAnalyzer.analyzeIputIgetQuick(MethodAnalyzer.java:1696)
        at org.jf.dexlib2.analysis.MethodAnalyzer.analyzeInstruction(MethodAnalyzer.java:1038)
        at org.jf.dexlib2.analysis.MethodAnalyzer.analyze(MethodAnalyzer.java:201)
        at org.jf.dexlib2.analysis.MethodAnalyzer.<init>(MethodAnalyzer.java:131)
        at org.jf.baksmali.Adaptors.MethodDefinition.addAnalyzedInstructionMethodItems(MethodDefinition.java:464)
        at org.jf.baksmali.Adaptors.MethodDefinition.getMethodItems(MethodDefinition.java:371)
        at org.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.java:238)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeVirtualMethods(ClassDefinition.java:326)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java:112)
        at org.jf.baksmali.Baksmali.disassembleClass(Baksmali.java:152)
        at org.jf.baksmali.Baksmali.access$000(Baksmali.java:46)
        at org.jf.baksmali.Baksmali$1.call(Baksmali.java:76)
        at org.jf.baksmali.Baksmali$1.call(Baksmali.java:74)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
opcode: iget-object-quick
code address: 87
method: Lcom/google/commerce/tapandpay/android/handsfree/onboarding/ConsentActivity;->onEventMainThread(Lcom/google/commerce/tapandpay/android/settings/AccountScopedSettingsManager$SettingsSyncedEvent;)V

Command used for deodexing: java -jar baksmali.jar x -a 26 -c framework\arm64\boot.oat -d framework\arm64\ -d framework\oat\arm64\ app\Wallet\oat\arm64\Wallet.odex -o Wallet

Second issue occures with PrebuiltGmsCore.odex(classes2.dex):

org.jf.dexlib2.analysis.AnalysisException: Invalid register type (Unknown) for register v1.
	at org.jf.dexlib2.analysis.MethodAnalyzer.checkRegister(MethodAnalyzer.java:1956)
	at org.jf.dexlib2.analysis.MethodAnalyzer.getAndCheckSourceRegister(MethodAnalyzer.java:1941)
	at org.jf.dexlib2.analysis.MethodAnalyzer.analyzeInvokeVirtualQuick(MethodAnalyzer.java:1793)
	at org.jf.dexlib2.analysis.MethodAnalyzer.analyzeInstruction(MethodAnalyzer.java:1040)
	at org.jf.dexlib2.analysis.MethodAnalyzer.analyze(MethodAnalyzer.java:201)
	at org.jf.dexlib2.analysis.MethodAnalyzer.<init>(MethodAnalyzer.java:131)
	at org.jf.baksmali.Adaptors.MethodDefinition.addAnalyzedInstructionMethodItems(MethodDefinition.java:462)
	at org.jf.baksmali.Adaptors.MethodDefinition.getMethodItems(MethodDefinition.java:371)
	at org.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.java:238)
	at org.jf.baksmali.Adaptors.ClassDefinition.writeDirectMethods(ClassDefinition.java:281)
	at org.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java:111)
	at org.jf.baksmali.Baksmali.deoptimizeClass(Baksmali.java:273)
	at org.jf.baksmali.Baksmali.access$100(Baksmali.java:59)
	at org.jf.baksmali.Baksmali$2.call(Baksmali.java:211)
	at org.jf.baksmali.Baksmali$2.call(Baksmali.java:208)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
opcode: invoke-virtual-quick
code address: 41
method: Lcom/google/android/chimera/WebView;->a(Landroid/content/Context;)V

Wallet and PrebuiltGmsCore apks and framework from Nexus 5x factory image: https://github.com/Furniel/bullhead-opr4.170623.009-factory-b9f20abf

Furniel avatar Oct 06 '17 13:10 Furniel