Main Site Documentation

Managed application protection


#1

Hello everybody,

I want to use the option for protecting the application from reading but I didn’t find any documentation how to do. I just found the chapter 9.19 Managed Application Protection from the EMX User Manual (Rev. 1.3 March 10, 2011) which says “this functionnality is available through the GHI NETMF library” but I didn’t find any information in the library.

Can you direct me to a documentation ?

Thanks a lot
Lionel


#2

This is available from:
GHIElectronics.NETMF.Hardware.Configuration.TinyBooter.DisableApplicationAccess


#3

Thank for your answer Mike.

One more question : If I enable DisableApplicationAccess, can I disable it later to do an update ? Or it is permanent ?

Lionel


#4

Gus answered me in this post : http://www.tinyclr.com/forum/10/3623/


#5

I have few questions about DisableApplicationAccess.
1.)Will Clearing device and reuploading firmware&application from MFDeploy disable protection or is buying new EMX model only opion?
2.)If you enable protection how can you get your application HEX file from device? Or how we can get HEX file to make infield update?
3.)Will this work:
Make app.hex which only enable protection(DisableApplicationAccess) and put device to managed bootloader. This app.hex together with CLR.HEX, CLR2.HEX, Config.HEX and bootloader.HEX(Which have SD card update option) with MFDeploy deploy to device. Device will go to bootloader and make update from SD card(app.HEX on SD card do not have DisableApplicationAccess). Will device be still protected? If yes then this is good and I can make app.HEX on unsecured device and create application deployement from it…
4.)Is HEX file which I get from Application Deployement secured? Or if customer get it can upload it without .sig or .key files? Can he easily get source from it?

Thanks for all your answers.


#6

1.) You can remove by erasing all from GHI loader (E command)

2.) You can’t

3.) You should use GHI’s in-field update features

4.) Not secure


#7

@ GUS: Thanks for your very usefull answers, but I wan’t clear few things:
1.) Can this be done only by TeraTerm or can be done also with EMX Updater(Erase all data checked) or MFDeploy (Erase button)?
3.) I already using GHI’s in-field update features from Pyxis 2 example which update device from SD card? But I don’t understand how to get application.HEX file when I have enabled DisableApplicationAccess ? Will my procedure which Im decribe in question number 3 work? Or is there any other way to do this?
4.) Do you maybe know some way how to secure this HEX files? Maybe put with XTEA crypted files(Crypt line by line) to HTTP server and then decrypt it line by line on device? Main reason is protect files on HTTP server that user can’t download them and deploy/or get source from them and rebuild it… Storage on device is fixed and can’t be removed easily(BGA chip)…
How your other customers do this?

Thanks for your answers and help.


#8

Hello,

I have been looking for answer to Dejan’s last question.

3.) I already using GHI’s in-field update features from Pyxis 2 example which update device from SD card? But I don’t understand how to get application.HEX file when I have enabled DisableApplicationAccess ?

So my questions are:

  1. How do we go about pulling the hex for a systemupdater, if you can’t pull the hex from the device after DisableApplicationAccess has been set?

  2. Is DisableApplicationAccess available for use on the Panda II?


#9

You can’t.

You should have a master device that I’d not protected for your development.

Welcome to the community.


#10

Gus please corect me:
I have module which I use for developement and is NOT protected. I get from this device HEX files and save them.
Then I have another module which is for sale and would like protect it.
I flash on it firmware. and upload simple app to protect it:


        public static void Main()
        {
            switch (SystemUpdate.GetMode())
            {
                case SystemUpdate.SystemUpdateMode.NonFormatted:
                    Configuration.TinyBooter.DisableApplicationAccess(true);
                    Util.FlushExtendedWeakReferences();
                    SystemUpdate.EnableBootloader();
                    break;
            }
        }

I check if device is not formatted because I don’t want that it get into restart loop.

This code will on new device protect device and splits flash into two regions. After reboot I with MFDeploy “flash” my HEX files which Im get from UNPROTECTED device and this module for sale will stay protected and also after IFU it will stay protected. Except if I complete erase it.

Please confirm me if my assumptions are right.


#11

That sound correct although I haven’t tried to use IFU with formatted device. It is usually one or another.


#12

Gus that leads me to my next question.

If you have read protection set by using the P command. Is the read protection maintained after performing an IFU or is it reset?