[Soot-list] Regenerating Androidmanifest.xml file after Instrumenting Android
Modhi Alsobiehy
m99m20 at hotmail.com
Thu Oct 16 09:13:03 EDT 2014
Hi Steven,
-- Thank you for your fast reply!
-- Something I forgot to mention, is it necessary to call:
axmlh.getRoot().addChild(newAXmlNode);
because when I checked the new manifest, I found that the permission was added twice- I believe the first addition because of referencing the parent node-!!
-- This is the code I used after doing the required changes in the axmlhandler,
byte[] axmlBA = axmlh.toByteArray();
FileOutputStream fileOuputStream = new FileOutputStream(".\\AndroidManifest.xml");
fileOuputStream.write(axmlBA);
fileOuputStream.close();
List<File> fileList = new ArrayList<File>();
File newManifest = new File(".\\AndroidManifest.xml");
fileList.add(newManifest);
ApkHandler apkH = new ApkHandler(apk);
apkH.addFilesToApk(fileList);
and it is generating the following exception:
Exception in thread "main" java.lang.RuntimeException: could not rename the file D:\apks\location.apk to C:\Users\owner\AppData\Local\Temp\location.apk8599660687333204456.tmp
at soot.jimple.infoflow.android.axml.ApkHandler.addFilesToApk(Unknown Source)
at soot.jimple.infoflow.android.axml.ApkHandler.addFilesToApk(Unknown Source)
Thank you!
Sent from Windows Mail
From: Steven Arzt
Sent: Thursday, October 16, 2014 4:51 AM
To: Modhi Alsobeihy
Cc: soot-list at CS.McGill.CA, soot-list at sable.mcgill.ca
Hi Modhi,
I am glad to hear that your original problem has been resolved.
What do you mean by “no luck”? What exactly happens? What exactly are you trying (i.e. give me the code)?`
Best regards,
Steven
Von: soot-list-bounces at CS.McGill.CA [mailto:soot-list-bounces at CS.McGill.CA] Im Auftrag von Modhi Alsobiehy
Gesendet: Donnerstag, 16. Oktober 2014 07:32
Cc: soot-list at CS.McGill.CA; soot-list at sable.mcgill.ca
Betreff: Re: [Soot-list] Regenerating Androidmanifest.xml file after Instrumenting Android
Hi Steven,
I updated the jars and the problem resolved! Thank you!
Another thing please!
I have been trying to add the new manifest into the apk using the apkhandler but no luck!
I would really appreciate any help!!
-Best,
Modhi
On Oct 13, 2014, at 7:38 AM, "Steven Arzt" <Steven.Arzt at cased.de> wrote:
Hi Modhi,
I cannot reproduce your problem with the newest version of FlowDroid. I have fixed some issues with the XML manipulation classes over the last week, so please try again. This is my code:
AXmlNode newAXmlNode = new AXmlNode("uses-permission", null, axmlh.getRoot());
newAXmlNode.addAttribute(new AXmlAttribute<String>("name", "android.permission.READ_LOGS",
"http://schemas.android.com/apk/res/android"));
axmlh.getRoot().addChild(newAXmlNode);
Make sure to get the namespace right, that was wrong in your code.
Best regards,
Steven
Von: soot-list-bounces at CS.McGill.CA [mailto:soot-list-bounces at CS.McGill.CA] Im Auftrag von Modhi Alsobiehy
Gesendet: Montag, 13. Oktober 2014 00:42
An: Steven Arzt
Cc: soot-list at CS.McGill.CA; soot-list at sable.mcgill.ca
Betreff: Re: [Soot-list] Regenerating Androidmanifest.xml file after Instrumenting Android
Your quick response is highly appreciated!
-Thank you!
Modhi
On Oct 9, 2014, at 12:34 AM, "Modhi Alsobiehy" <m99m20 at hotmail.com> wrote:
Hi Steven,
I'm getting the following exception from the line calling toByteArray() and I couldn’t figure out how to fix it or what I have done wrong!!
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at pxb.android.axml.AxmlWriter$NodeImpl.write(AxmlWriter.java:238)
at pxb.android.axml.AxmlWriter$NodeImpl.write(AxmlWriter.java:254)
at pxb.android.axml.AxmlWriter.toByteArray(AxmlWriter.java:388)
at soot.jimple.infoflow.android.axml.AXmlHandler.toByteArray(Unknown Source)
this is the code responsible for a regenerating the manifest file, the axmlhandler instance is updated with the new axmlnode
File apkFile = new File(apk);
ProcessManifest pm = new ProcessManifest(apkFile);
AXmlHandler axmlh = pm.getAXml();
AXmlNode newAXmlNode = new AXmlNode("uses-permission", null, axmlh.getRoot());
newAXmlNode.addAttribute(new AXmlAttribute("name", "android.permission.READ_LOGS", null));
AXmlNode temp = axmlh.getRoot().addChild(newAXmlNode);
byte[] axmlBA = axmlh.toByteArray();
FileOutputStream fileOuputStream = new FileOutputStream(".\\AndroidManifest.xml");
fileOuputStream.write(axmlBA);
fileOuputStream.close();
Thank you,,
Modhi
From: Steven Arzt
Sent: Monday, September 29, 2014 7:20 AM
To: Modhi Alsobeihy
Cc: soot-list at sable.mcgill.ca, soot-list at CS.McGill.CA
_______________________________________________
Soot-list mailing list
Soot-list at CS.McGill.CA
https://mailman.CS.McGill.CA/mailman/listinfo/soot-list
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20141016/124dae59/attachment-0003.html
More information about the Soot-list
mailing list