This is an old revision of the document!
This page is a bit of an experiment. Over time, many people have asked “Can we do 32ch and FCC on a P4p”. Based on the previous files, the answer was no. But, I have always intended to go back and look at this to see if it is possible.
What I propose to do is to look at the 32ch file, and the FCC file, and the source code that parses these files, and come to a conclusion.
Below, we can see the data contained in each of these files. It is easy to see the individual bits that change for power and frequency tweaks. What is not so obvious at the moment is what part of this file does the 32 channel mod. If anyone has that detail, it would be useful information.
00000000 44 4a 49 20 53 4f 46 54 57 41 52 45 20 43 4f 4e |DJI SOFTWARE CON| 00000010 46 49 47 20 3a 20 44 4f 20 4e 4f 54 20 44 45 4c |FIG : DO NOT DEL| 00000020 45 54 45 21 00 00 00 01 11 11 11 11 11 11 11 11 |ETE!............| 00000030
00000000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................| 00000010 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................| 00000020 01 01 01 01 01 01 01 01 00 00 00 00 00 00 00 22 |..............."| 00000030 22 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |""..............| 00000040 00 00 00 00 00 00 00 |.......|
00000000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................| 00000010 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................| 00000020 01 01 01 01 01 01 01 01 00 00 00 00 00 00 00 66 |...............f| 00000030 66 66 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |ff..............| 00000040 00 00 00 00 00 00 00 |.......|
00000000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................| 00000010 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................| 00000020 01 01 01 01 01 01 01 01 00 00 00 00 00 00 00 aa |...............?| 00000030 aa aa 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |??..............| 00000040 00 00 00 00 00 00 00 |.......| 00000047
00000000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................| 00000010 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................| 00000020 01 01 01 01 01 01 01 01 00 00 00 00 00 00 00 44 |...............D| 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000040 00 00 00 00 00 00 00 |.......| 00000047
00000000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................| 00000010 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................| 00000020 01 01 01 01 01 01 01 01 00 00 00 00 00 00 00 44 |...............D| 00000030 44 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |DD..............| 00000040 00 00 00 00 00 00 00 |.......| 00000047
00000000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................| 00000010 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................| 00000020 01 01 01 01 01 01 01 01 00 00 00 00 00 00 00 88 |................| 00000030 88 88 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000040 00 00 00 00 00 00 00 |.......| 00000047
00000000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................| 00000010 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................| 00000020 01 01 01 01 01 01 01 01 00 00 00 00 00 00 00 11 |................| 00000030 11 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000040 00 00 00 00 00 00 00 |.......| 00000047
00000000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................| 00000010 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................| 00000020 01 01 01 01 01 01 01 01 00 00 00 00 00 00 00 55 |...............U| 00000030 55 55 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |UU..............| 00000040 00 00 00 00 00 00 00 |.......| 00000047
00000000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................| 00000010 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................| 00000020 01 01 01 01 01 01 01 01 00 00 00 00 00 00 00 99 |................| 00000030 99 99 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000040 00 00 00 00 00 00 00 |.......| 00000047
if ((an unsigned __int64) objc_msgSend(v9, "the length") > = 0x29) { v11 = (void * ) objc_retainAutorelease(v10); if ( * ((_ BYTE * ) objc_msgSend(v11, "bytes") + 39) == 1) v2 - > NSObject_opaque[OBJC_IVAR ___ DJIAppSettings__canUseIllegalChannels] = 1; } If((unsigned __int64) objc_msgSend(v10, "length") > = 0x2A) { v12 = (void * ) objc_retainAutorelease(v10); if ( * ((_ BYTE * ) objc_msgSend(v12, "bytes") + 40) == 1) v2 - > NSObject_opaque[OBJC_IVAR ___ DJIAppSettings__mfiDisable] = 1; } If((unsigned __int64) objc_msgSend(v10, "length") > = 0x2D) { v13 = (void * ) objc_retainAutorelease(v10); V14 = * ((unsigned __int8 * ) objc_msgSend(v13, "bytes") + 43); if ((_DWORD) v14 == 2) * (DWORD * _) & v2 - > NSObject_opaque[OBJC_IVAR ___ DJIAppSettings__firmwareServiceType] = 2; Else * (_ DWORD * ) & v2 - > NSObject_opaque[OBJC_IVAR ___ DJIAppSettings__firmwareServiceType] = v14 == 1; } If((unsigned __int64) objc_msgSend(v10, "length") > = 0x2E) { v15 = (void * ) objc_retainAutorelease(v10); if ( * ((_ BYTE * ) objc_msgSend(v15, "bytes") + 44) == 1) v2 - > NSObject_opaque[OBJC_IVAR ___ DJIAppSettings__limitCameraRecordingTime] = 0; } If((unsigned __int64) objc_msgSend(v10, "length") > = 0x2F) { v16 = (void * ) objc_retainAutorelease(v10); If( * ((_ BYTE * ) objc_msgSend(v16, "bytes") + 45) == 1) v2 - > NSObject_opaque[OBJC_IVAR ___ DJIAppSettings__simulatorInternalDisable] = 1; } If((unsigned __int64) objc_msgSend(v10, "length") > = 0x31) { v17 = (void * ) objc_retainAutorelease(v10); V18 = * ((_ BYTE * ) objc_msgSend(v17, "bytes") + 48); If(v18 & 1) objc_msgSend(v2, " setSdr_force_fcc :", 1 LL); if (v18 & 2) objc_msgSend(v2, "setSdr_force_boost:", 1 LL); if (v18 & 4) objc_msgSend(v2, "setSdr_force_2_3_G:", 1 LL); if (v18 & 8) objc_msgSend(v2, "setSdr_force_2_5_G:", 1 LL);