Script

Automated Application Wrapping

Automated Application Wrapping

If you are deploying and/or managing Citrix XenMobile Environments one small part of work you have to deal with is the Application Wrapping. If you do have to do this often because of new Application Versions or you have to wrap the Applications for multiple Customers you will be quite quickly annoyed by the Citrix MDX Toolkit GUI. Because of that (and because the GUI does not work on virtualized Macs running on Windows. Why does the GUI need OpenGL?! WindowServer: _CGXGLDisplayContextForDisplayDevice: No matching context for device – disabling OpenGL) i started to use to MDX Toolkit CLI. Since May the MDX Toolkit is very well documented!  XenMobile MDX Toolkit Documentation

But let´s get to the point. I created two little bash scripts for Automated Application Wrapping. One for iOS and one for Android.

 

Android Version:

######################################################################################################
# Purpose:
# Automatically wrap Android Applications for XenMobile
#
# Scriptname:
# Android-wrapping.sh
#
# $ScriptVersion = “0.000.0002
#
# Comments:
#
# Prerequisites:
# – Citrix MDXToolkit
# – Java JDK 1.6 or 1.7
# – Android SDK 19.0.0 or later
# – Valid User Generated Keystore
#
# Author(s):
# Jens Trendelkamp, Jens.Trendelkamp@sepago.de, sepago GmbH
#
# Change history:
# 21.05.2014, Jens Trendelkamp, Jens.Trendelkamp@sepago.de
# – Initial version
# 24.08.2014, Jens Trendelkamp, Jens.Trendelkamp@sepago.de
# – Updated CLI Commands to work with the latest MDX Toolkit
#
#######################################################################################################
#
# KEYSTORE = Keystore Path
# ALIAS = Key Alias
# STOREPASS = Keystore Password
# KEYPASS = Private Key Password
# APKDIR = Path to the unwrapped Android Applications
#######################################################################################################
#!/bin/sh
KEYSTORE=~/Keystore_path/appwrapping.keystore
ALIAS=appwrapping
STOREPASS=password
KEYPASS=password
APKDIR=/User/Jens/APKs

APKS=`ls -r $APKDIR/*.apk`
rm -rf $APKDIR/wrapped && mkdir -p $APKDIR/wrapped

for i in $APKS ; do
bname=`basename -s .apk $i`
java -jar -Xmx1024M /Applications/Citrix/MDXToolkit/ManagedAppUtility.jar wrap \
-in $i \
-keystore $KEYSTORE \
-keyalias $ALIAS \
-keypass $KEYPASS \
-storepass $STOREPASS \
-out $APKDIR/wrapped/$bname.mdx
done

iOS Version:

######################################################################################################
# Purpose:
# Automatically wrap iOS Applications for XenMobile
#
# Scriptname:
# iOS-wrapping.sh
#
# $ScriptVersion = “0.000.0002”
#
# Comments:
#
# Prerequisites:
# – Citrix MDXToolkit
# – Xcode 5.0+
# – Xcode Command Line Tools 
# – Valid Certificate and Provisioning Profile
#
# Author(s):
# Jens Trendelkamp, Jens.Trendelkamp@sepago.de, sepago GmbH
#
# Change history:
# 21.05.2014, Jens Trendelkamp, Jens.Trendelkamp@sepago.de
# – Initial version
# 24.08.2014, Jens Trendelkamp, Jens.Trendelkamp@sepago.de
# – Updated CLI Commands to work with the latest MDX Toolkit
#
#######################################################################################################
#
# CERT = Name of the signing certificate
# PROFILE = Path to the Provisioning Profile
# IPADIR = Path to the unwrapped iOS Applications
#
#######################################################################################################
#!/bin/sh
CERT=”iPhone Distribution: some company”
PROFILE=/Users/Jens/provisioning_profile.mobileprovision
IPADIR=/User/Jens/IPAs

IPAS=`ls -r $IPADIR/*.ipa`
rm -rf $IPADIR/wrapped && mkdir -p $IPADIR/wrapped

for i in $IPAS ; do
bname=`basename -s .ipa $i`
/Applications/Citrix/MDXToolkit/CGAppCLPrepTool Wrap \
-in $i \
-Cert “$CERT” \
-Profile $PROFILE \
-out $IPADIR/wrapped/$bname.mdx
done

 

If you modified the setting and start the script you will see something like this:

App Wrapping OS XOf Course these bash scripts are pretty simple but it´s a good way to start using the MDX Toolkit CLI :)

About Jens

My name is Jens Trendelkamp. I currently work as an IT Consultant at sepago GmbH. My fields of specialty are Application Delivery, SBC\VDI Solutions and Enterprise Mobility based on Products from Microsoft and Citrix.

How to change/modify Android WorxApp Icons

How to change/modify Android WorxApp Icons

Last week I explained how to modify WorxApp Icons on iOS Devices. This time I want to show you how to do this for the Android Apps since the necessary steps are slightly different.

For Android we need to decompile the .apk files before we can edit them. To accomplish this we need the apktool. You can download the tool here. After you finished installing the apktool we can directly start with decompiling the .apk file. In this example I moved the .apk to the same folder as the apktool and run the following command: ./apktool d applicationname.apk After the decompiling is finished you´ll find a new directory within your apktool folder.

Android WorxApp

Android WorxApp

In this folder you can edit the Icons as you wish. Since the .png for different resolutions are spread across several folders I searched for launcher which will show all relevant files. As you can see I spent a lot of time to customize the files 😉

Android WorxApp

Android WorxApp

After you are done you have to rebuild the .apk file. This will also be done by the apktool. You can start this process with the following command: ./apktool b applicationfolder applicationname.apk

Android WorxApp

Android WorxApp

Now you can wrap the newly created .apk as you are used to with the MDX Toolkit.

About Jens

My name is Jens Trendelkamp. I currently work as an IT Consultant at sepago GmbH. My fields of specialty are Application Delivery, SBC\VDI Solutions and Enterprise Mobility based on Products from Microsoft and Citrix.

How to change/modify iOS WorxApp Icons

How to change/modify iOS WorxApp Icons

I was asked how to modify the WorxApp Icons to match the Cooperate Identity Policy. To accomplish this you will need a Mac with XCode installed, an Image Editor like Gimp and of course the .ipa file you want to modify.

Let´s start with extracting the icons from the .ipa file. If you do this by simply extracting the images from the .ipa file you will get the following error in Gimp and similar Programs.

iOS WorxApp

iOS WorxApp

This is absolutely normal since these Images have been optimized. To undo this we need to “uncrush” them. I found a nice script by Peter Boctor which “uncrushes” whole .ipa files. The script can be found here.

Start the script with the .ipa file you want to edit.

iOS WorxApp

iOS WorxApp

After the script successful ended you will find a new folder named like the .ipa file and an Images at the end.

For a better overview I move the files i need to edit to a separate folder. Now you can now start to edit/replace the images as you wish.

iOS WorxApp

iOS WorxApp

After we have finished editing or replacing the images we want to “crush” them again. Since I ‘am a lazy guy I created a little script which “crushes” a whole directory.

#!/bin/sh

for png in `find $1 -name “*.png”`;

do

echo “crushing $png”

pngcrush -rem allb -brute “$png” temp.png

mv -f temp.png $png

done;

I also added the path to pngcrush binary to my Environment Variable

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/

iOS WorxApp

iOS WorxApp

You´ll start the script with the following command: ./crush.sh foldername

iOS WorxApp

iOS WorxApp

iOS WorxApp

iOS WorxApp

Your folder (in my example it´s called “png”) now contains “crushed” .png files which need to be moved to your original .ipa file. To do this I extracted the WorxMail Application folder from the .ipa/Payload folder. After that I opened the WorxMail Package by clicking “Show Package Contents”. Copy the modified Icons from your folder to the WorxMail Package and make sure you replace the files.

iOS WorxApp

iOS WorxApp

iOS WorxApp

iOS WorxApp

Of course you need to put the WorxMail Application back to the .ipa file. In my case I used WinZip and simply dragged the file to the correct place.

iOS WorxApp

iOS WorxApp

Now it´s time to wrap the app as usual with the MDX Toolkit and upload it to your AppController. If all worked well you can now install/update the customized app which hopefully looks better than mine J

iOS WorxApp

iOS WorxApp

About Jens

My name is Jens Trendelkamp. I currently work as an IT Consultant at sepago GmbH. My fields of specialty are Application Delivery, SBC\VDI Solutions and Enterprise Mobility based on Products from Microsoft and Citrix.

By continuing to use the site, you agree to the use of cookies. More information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close