По сути, когда пользователь загружает файл .apk, мне нужно его декодировать и извлечь некоторую информацию из файла AndroidManifest.xml внутри apk.Когда я запускаю эту команду из командной строки apktool decode BluetoothChat.apk
все в порядке.Вывод:
I: Baksmaling...
I: Loading resource table...
I: Loaded.
I: Loading resource table from file: /home/tashax/apktool/framework/1.apk
I: Loaded.
I: Decoding file-resources...
I: Decoding values*/* XMLs...
I: Done.
I: Copying assets and libs...
Однако, если я пытаюсь выполнить его из веб-кода с помощью функции php exec()
, я получаю сообщение об ошибке.Это не удается на I: Loading resource table from file: /home/tashax/apktool/framework/1.apk
, я думаю, что он не может найти файл framework / 1.apk.Кажется, это проблема установки, кто-нибудь делал что-то подобное или знает, что мне не хватает?Вот ошибки из apktool при запуске из сети:
I: Baksmaling...
I: Loading resource table...
I: Loaded.
W: Could not decode attr value, using undecoded value instead: ns=android, name=versionCode, value=0x00000001
W: Could not decode attr value, using undecoded value instead: ns=android, name=versionName, value=0x0000000d
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:673)
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.decode(XmlPullStreamDecoder.java:46)
at brut.androlib.res.decoder.ResStreamDecoderContainer.decode(ResStreamDecoderContainer.java:34)
at brut.androlib.res.decoder.ResFileDecoder.decode(ResFileDecoder.java:100)
at brut.androlib.res.AndrolibResources.decode(AndrolibResources.java:114)
at brut.androlib.Androlib.decodeResourcesFull(Androlib.java:93)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:98)
at brut.apktool.Main.cmdDecode(Main.java:128)
at brut.apktool.Main.main(Main.java:65)
Спасибо!