[Soot-list] Regenerating Androidmanifest.xml file after Instrumenting Android

Steven Arzt Steven.Arzt at cased.de
Mon Oct 13 08:38:41 EDT 2014


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 <mailto:Steven.Arzt at cased.de> 
Sent: ‎Monday‎, ‎September‎ ‎29‎, ‎2014 ‎7‎:‎20‎ ‎AM
To: Modhi Alsobeihy <mailto:m99m20 at hotmail.com> 
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/20141013/15cc637a/attachment-0003.html 


More information about the Soot-list mailing list