kuter007 / android-apktool

Automatically exported from code.google.com/p/android-apktool
Other
0 stars 0 forks source link

error in decompiling the huawei emui 3.0 framework and app #727

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1.Extract /system directory from HUAWEI EMUI 3.0(with honor 3c wcdma version)
2.install framework-res.apk framework-res-hwext.apk and mediatek-res.apk with 
apktool if
3.try to hack HwLauncher6.apk using apktool if mediatek-res.apk

What is the expected output? What do you see instead?
we want to the tools can repack all res and smali files, but get some exception 
in step 2 and 3

apktool if framework-res.apk 
W: Config flags size > 38. Exceeding bytes: 0x2400.
W: Invalid config flags detected: string-ERR0
W: Config flags size > 38. Exceeding bytes: 0x9C00.
W: Invalid config flags detected: string-ERR1
W: Config flags size > 38. Exceeding bytes: 0x2A02.
W: Invalid config flags detected: string-ERR2
W: Config flags size > 38. Exceeding bytes: 0x9C00.
W: Invalid config flags detected: string-ERR3
W: Config flags size > 38. Exceeding bytes: 0x8801.
W: Invalid config flags detected: string-ERR4
W: Config flags size > 38. Exceeding bytes: 0xE703.
W: Invalid config flags detected: string-ERR5
W: Config flags size > 38. Exceeding bytes: 0xAA00.
W: Invalid config flags detected: string-ERR6
W: Config flags size > 38. Exceeding bytes: 0xDE00.
W: Invalid config flags detected: string-ERR7
W: Config flags size > 38. Exceeding bytes: 0x5401.
W: Invalid config flags detected: string-ERR8
W: Config flags size > 38. Exceeding bytes: 0xE401.
W: Invalid config flags detected: string-ERR9
W: Config flags size > 38. Exceeding bytes: 0x4F00.
W: Invalid config flags detected: string-ERR10
W: Config flags size > 38. Exceeding bytes: 0x4803.
W: Invalid config flags detected: string-ERR11
W: Config flags size > 38. Exceeding bytes: 0x9C00.
W: Invalid config flags detected: string-ERR12
W: Config flags size > 38. Exceeding bytes: 0x4803.
W: Invalid config flags detected: string-ERR13
Exception in thread "main" brut.androlib.AndrolibException: Multiple resources: 
spec=0x0104005f string/needPuk, config=[DEFAULT]
    at brut.androlib.res.data.ResConfig.addResource(ResConfig.java:63)
    at brut.androlib.res.data.ResConfig.addResource(ResConfig.java:56)
    at brut.androlib.res.decoder.ARSCDecoder.readEntry(ARSCDecoder.java:186)
    at brut.androlib.res.decoder.ARSCDecoder.readConfig(ARSCDecoder.java:157)
    at brut.androlib.res.decoder.ARSCDecoder.readType(ARSCDecoder.java:125)
    at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:100)
    at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:78)
    at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:47)
    at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:39)
    at brut.androlib.res.AndrolibResources.installFramework(AndrolibResources.java:657)
    at brut.androlib.Androlib.installFramework(Androlib.java:649)
    at brut.apktool.Main.cmdInstallFramework(Main.java:256)
    at brut.apktool.Main.main(Main.java:92)

apktool if framework-res-hwext.apk 
W: Config flags size > 38. Exceeding bytes: 0x9C00.
W: Invalid config flags detected: string-ERR0
W: Config flags size > 38. Exceeding bytes: 0x4803.
W: Invalid config flags detected: string-ERR1
Exception in thread "main" brut.androlib.AndrolibException: Multiple resources: 
spec=0x03020001 string/enterPuk, config=[DEFAULT]
    at brut.androlib.res.data.ResConfig.addResource(ResConfig.java:63)
    at brut.androlib.res.data.ResConfig.addResource(ResConfig.java:56)
    at brut.androlib.res.decoder.ARSCDecoder.readEntry(ARSCDecoder.java:186)
    at brut.androlib.res.decoder.ARSCDecoder.readConfig(ARSCDecoder.java:157)
    at brut.androlib.res.decoder.ARSCDecoder.readType(ARSCDecoder.java:125)
    at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:100)
    at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:78)
    at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:47)
    at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:39)
    at brut.androlib.res.AndrolibResources.installFramework(AndrolibResources.java:657)
    at brut.androlib.Androlib.installFramework(Androlib.java:649)
    at brut.apktool.Main.cmdInstallFramework(Main.java:256)
    at brut.apktool.Main.main(Main.java:92)

apktool d -f HwLauncher6.apk 
I: Using Apktool 2.0.0-dirty on HwLauncher6.apk
I: Loading resource table...
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /home/zangcf/apktool/framework/1.apk
W: Config flags size > 38. Exceeding bytes: 0x2400.
W: Invalid config flags detected: string-ERR0
W: Config flags size > 38. Exceeding bytes: 0x9C00.
W: Invalid config flags detected: string-ERR1
W: Config flags size > 38. Exceeding bytes: 0x2A02.
W: Invalid config flags detected: string-ERR2
W: Config flags size > 38. Exceeding bytes: 0x9C00.
W: Invalid config flags detected: string-ERR3
W: Config flags size > 38. Exceeding bytes: 0x8801.
W: Invalid config flags detected: string-ERR4
W: Config flags size > 38. Exceeding bytes: 0xE703.
W: Invalid config flags detected: string-ERR5
W: Config flags size > 38. Exceeding bytes: 0xAA00.
W: Invalid config flags detected: string-ERR6
W: Config flags size > 38. Exceeding bytes: 0xDE00.
W: Invalid config flags detected: string-ERR7
W: Config flags size > 38. Exceeding bytes: 0x5401.
W: Invalid config flags detected: string-ERR8
W: Config flags size > 38. Exceeding bytes: 0xE401.
W: Invalid config flags detected: string-ERR9
W: Config flags size > 38. Exceeding bytes: 0x4F00.
W: Invalid config flags detected: string-ERR10
W: Config flags size > 38. Exceeding bytes: 0x4803.
W: Invalid config flags detected: string-ERR11
W: Config flags size > 38. Exceeding bytes: 0x9C00.
W: Invalid config flags detected: string-ERR12
W: Config flags size > 38. Exceeding bytes: 0x4803.
W: Invalid config flags detected: string-ERR13
W: Could not decode attr value, using undecoded value instead: ns=android, 
name=versionCode, value=0x0000f242
I: Loading resource table from file: /home/zangcf/apktool/framework/1.apk
Cleaning up unclosed ZipFile for archive /home/zangcf/apktool/framework/1.apk
W: Config flags size > 38. Exceeding bytes: 0x2400.
W: Invalid config flags detected: string-ERR14
W: Config flags size > 38. Exceeding bytes: 0x9C00.
W: Invalid config flags detected: string-ERR15
W: Config flags size > 38. Exceeding bytes: 0x2A02.
W: Invalid config flags detected: string-ERR16
W: Config flags size > 38. Exceeding bytes: 0x9C00.
W: Invalid config flags detected: string-ERR17
W: Config flags size > 38. Exceeding bytes: 0x8801.
W: Invalid config flags detected: string-ERR18
W: Config flags size > 38. Exceeding bytes: 0xE703.
W: Invalid config flags detected: string-ERR19
W: Config flags size > 38. Exceeding bytes: 0xAA00.
W: Invalid config flags detected: string-ERR20
W: Config flags size > 38. Exceeding bytes: 0xDE00.
W: Invalid config flags detected: string-ERR21
W: Config flags size > 38. Exceeding bytes: 0x5401.
W: Invalid config flags detected: string-ERR22
W: Config flags size > 38. Exceeding bytes: 0xE401.
W: Invalid config flags detected: string-ERR23
W: Config flags size > 38. Exceeding bytes: 0x4F00.
W: Invalid config flags detected: string-ERR24
W: Config flags size > 38. Exceeding bytes: 0x4803.
W: Invalid config flags detected: string-ERR25
W: Config flags size > 38. Exceeding bytes: 0x9C00.
W: Invalid config flags detected: string-ERR26
W: Config flags size > 38. Exceeding bytes: 0x4803.
W: Invalid config flags detected: string-ERR27
W: Could not decode attr value, using undecoded value instead: ns=android, 
name=versionName, value=0x00000021
I: Loading resource table from file: /home/zangcf/apktool/framework/1.apk
Cleaning up unclosed ZipFile for archive /home/zangcf/apktool/framework/1.apk
W: Config flags size > 38. Exceeding bytes: 0x2400.
W: Invalid config flags detected: string-ERR28
W: Config flags size > 38. Exceeding bytes: 0x9C00.
W: Invalid config flags detected: string-ERR29
W: Config flags size > 38. Exceeding bytes: 0x2A02.
W: Invalid config flags detected: string-ERR30
W: Config flags size > 38. Exceeding bytes: 0x9C00.
W: Invalid config flags detected: string-ERR31
W: Config flags size > 38. Exceeding bytes: 0x8801.
W: Invalid config flags detected: string-ERR32
W: Config flags size > 38. Exceeding bytes: 0xE703.
W: Invalid config flags detected: string-ERR33
W: Config flags size > 38. Exceeding bytes: 0xAA00.
W: Invalid config flags detected: string-ERR34
W: Config flags size > 38. Exceeding bytes: 0xDE00.
W: Invalid config flags detected: string-ERR35
W: Config flags size > 38. Exceeding bytes: 0x5401.
W: Invalid config flags detected: string-ERR36
W: Config flags size > 38. Exceeding bytes: 0xE401.
W: Invalid config flags detected: string-ERR37
W: Config flags size > 38. Exceeding bytes: 0x4F00.
W: Invalid config flags detected: string-ERR38
W: Config flags size > 38. Exceeding bytes: 0x4803.
W: Invalid config flags detected: string-ERR39
W: Config flags size > 38. Exceeding bytes: 0x9C00.
W: Invalid config flags detected: string-ERR40
W: Config flags size > 38. Exceeding bytes: 0x4803.
W: Invalid config flags detected: string-ERR41
W: Could not decode attr value, using undecoded value instead: ns=android, 
name=versionCode, value=0x0000f242
I: Loading resource table from file: /home/zangcf/apktool/framework/1.apk
Cleaning up unclosed ZipFile for archive /home/zangcf/apktool/framework/1.apk
W: Config flags size > 38. Exceeding bytes: 0x2400.
W: Invalid config flags detected: string-ERR42
W: Config flags size > 38. Exceeding bytes: 0x9C00.
W: Invalid config flags detected: string-ERR43
W: Config flags size > 38. Exceeding bytes: 0x2A02.
W: Invalid config flags detected: string-ERR44
W: Config flags size > 38. Exceeding bytes: 0x9C00.
W: Invalid config flags detected: string-ERR45
W: Config flags size > 38. Exceeding bytes: 0x8801.
W: Invalid config flags detected: string-ERR46
W: Config flags size > 38. Exceeding bytes: 0xE703.
W: Invalid config flags detected: string-ERR47
W: Config flags size > 38. Exceeding bytes: 0xAA00.
W: Invalid config flags detected: string-ERR48
W: Config flags size > 38. Exceeding bytes: 0xDE00.
W: Invalid config flags detected: string-ERR49
W: Config flags size > 38. Exceeding bytes: 0x5401.
W: Invalid config flags detected: string-ERR50
W: Config flags size > 38. Exceeding bytes: 0xE401.
W: Invalid config flags detected: string-ERR51
W: Config flags size > 38. Exceeding bytes: 0x4F00.
W: Invalid config flags detected: string-ERR52
W: Config flags size > 38. Exceeding bytes: 0x4803.
W: Invalid config flags detected: string-ERR53
W: Config flags size > 38. Exceeding bytes: 0x9C00.
W: Invalid config flags detected: string-ERR54
W: Config flags size > 38. Exceeding bytes: 0x4803.
W: Invalid config flags detected: string-ERR55
W: Could not decode attr value, using undecoded value instead: ns=android, 
name=versionName, value=0x00000021
Exception in thread "main" java.lang.NullPointerException
    at java.io.Writer.write(Writer.java:157)
    at brut.androlib.res.util.ExtMXSerializer.writeAttributeValue(ExtMXSerializer.java:38)
    at org.xmlpull.mxp1_serializer.MXSerializer.attribute(MXSerializer.java:696)
    at org.xmlpull.v1.wrapper.classic.XmlSerializerDelegate.attribute(XmlSerializerDelegate.java:106)
    at org.xmlpull.v1.wrapper.classic.StaticXmlSerializerWrapper.writeStartTag(StaticXmlSerializerWrapper.java:267)
    at org.xmlpull.v1.wrapper.classic.StaticXmlSerializerWrapper.event(StaticXmlSerializerWrapper.java:211)
    at brut.androlib.res.decoder.XmlPullStreamDecoder$1.event(XmlPullStreamDecoder.java:83)
    at brut.androlib.res.decoder.XmlPullStreamDecoder.decode(XmlPullStreamDecoder.java:141)
    at brut.androlib.res.decoder.XmlPullStreamDecoder.decodeManifest(XmlPullStreamDecoder.java:153)
    at brut.androlib.res.decoder.ResFileDecoder.decodeManifest(ResFileDecoder.java:131)
    at brut.androlib.res.AndrolibResources.decode(AndrolibResources.java:295)
    at brut.androlib.Androlib.decodeResourcesFull(Androlib.java:123)
    at brut.androlib.ApkDecoder.decode(ApkDecoder.java:102)
    at brut.apktool.Main.cmdDecode(Main.java:170)
    at brut.apktool.Main.main(Main.java:86)

What version of the product are you using? On what operating system?
Apktool v2.0.0-dirty - a tool for reengineering Android apk files
with smali v2.0.3-dev and baksmali v2.0.3-dev
I compiled it from iBotPeaches-apktool-a21cb84961bb.zip
I work with Ubuntu 10.04 and java veriosn is 1.7.0_67

Please provide any additional information below.
if I comment off the exception throw code in ResConfig.java(Line 63) and 
ResResSpec.java(Line 112), the install framework file will be finished. But I 
don't it is correct or not?

also, I try delete exption and null pointer in process of apktool d, and it can 
be finished with some warning. however get only a small part of res files.

Original issue reported on code.google.com by zangcf.s...@gmail.com on 13 Dec 2014 at 2:33

Attachments:

GoogleCodeExporter commented 9 years ago
These apks have non-standard qualifiers. (opta## & optb###).

There is no source for these changes and blackbox research for a 3rd party OEM 
is not on my list of things to do. You are welcome to research these qualifiers 
for Huawei and make a pull request.

Original comment by connor.tumbleson on 15 Dec 2014 at 12:22