On 12/15/2017 7:45 PM, Rafael Machado wrote:
Hi Everyone.I have a limited space problem at a project. To solve this we had an idea, but would like to ask to you before expending time on trying to do it, due to some tight schedule. (We know that the best is to try before ask, but we do not have time for that now. Sorry for that.) The idea is to create a kind of DecompressorApp.efi, that uses EFI_DECOMPRESS_PROTOCOL During the compilation process of the application the tasks would be: - Compile App.efi - Compress App.efi, generating the App.efi.compressed (using tianoCompress.exe) - Compile the Decompressor.efi app (with the App.efi.compressed embedded) - The idea to do this is to add the compressed app as a Binary at the DecompressorApp.efi .inf file using the [Binaries] tag So during the entrypoint of the Decompressor.efi app, the application will need to copy the compressed part of the app (App.efi.compressed), to a buffer, and after that this buffer will be decompressed using the EFI_DECOMPRESS_PROTOCOL. Finally the execution control is passed to the App.efi decompressed (not sure how to do that yet). So the questions we have for know are: - How to detect the App.efi.compressed insyde the loaded app, so we can have an address to decompress
Is your usage case similar to the upx? If the App.efi is compressed and embedded as binary in the application, the application itself should know that the binary should be decompressed and executed.
- How to pass the application executions control to another app, that is in a buffer (not sure if this can be done with the EFI Boot Service LoadImage(), since this buffer does not have a valid file device path)
Yes you could use LoadImage(). The API also accepts a PE buffer to load. Then you could use StartImage() to execute the PE buffer. Make sure you use the correct entrypoint prototype for the PE buffer. typedef EFI_STATUS (EFIAPI *EFI_IMAGE_ENTRY_POINT)( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable );
Could you help us on understanding if this is possible? Thanks and Regards Rafael R. Machado _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel
-- Thanks, Ray _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

