I suspect the GSM option will not work based on the size of the drivers required. In a previosu project, we rewrote the bootloader for a PIC32, to also check for a local file in SD and had a function to download the file in pieces during nromal operation and assemble it when ready. Then we woudl remotely reboot the device and if the checksums all matched - it flashed itslef from the SD. It was a HUGE amount of work and does work really well .... perhaps we need to see what the demand is?
Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!