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

Steven Arzt Steven.Arzt at cased.de
Thu Oct 16 09:45:13 EDT 2014


Hi Modhi,


The problem with the duplicate node should have been fixed in one of my last commits from a couple of days ago. Please make sure that you are really using the newest version of the soot-infoflow-android project.

 

Concerning the renaming problem: The ApkHandler class modifies the original APK, i.e., the one you have loaded, and replaces it with the new version with the modified manifest file. Make sure that the original APK file is not write-protected and that you have permission to move / replace the file.

 

Best regards,

  Steven

 

Von: Modhi Alsobiehy [mailto:m99m20 at hotmail.com] 
Gesendet: Donnerstag, 16. Oktober 2014 15:13
An: Steven Arzt
Cc: soot-list at CS.McGill.CA; soot-list at sable.mcgill.ca
Betreff: Re: AW: [Soot-list] Regenerating Androidmanifest.xml file after Instrumenting Android

 

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 <mailto:Steven.Arzt at cased.de> 
Sent: ‎Thursday‎, ‎October‎ ‎16‎, ‎2014 ‎4‎:‎51‎ ‎AM
To: Modhi Alsobeihy <mailto:m99m20 at hotmail.com> 
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 <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/20141016/344ac5b6/attachment-0003.html 


More information about the Soot-list mailing list