My app (UEFI spec 2.7) uses following protocols: 
EFI_BOOT_SERVICES revision EFI_SPECIFICATION_VERSION
EFI_FILE_PROTOCOL revision 0x00020000
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL 0x00010000
EFI_PEI_SERVICES - not found in UEFI specificaion
EFI_PEI_CPU_IO_PPI - not found in UEFI specificaion

UEFI Specification 2.4 protocols:
EFI_BOOT_SERVICES revision EFI_SPECIFICATION_VERSION
EFI_FILE_PROTOCOL revision 0x00020000
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL 0x00010000

So the main services API EFI_BOOT_SERVICES, where I'm using few common functions (OpenProtocol, AllocatePool...) differs from the EFI shell where app is using. Also there are protocols such as EFI_PEI_SERVICES and EFI_PEI_CPU_IO_PPI about which differences I can say nothing, so it is batter to find EDK2 with UEFI spec 2.4.

Thank you,
Sergey