рдЪреВрдВрдХрд┐ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреИрдорд░реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдмрд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЙрд╕ рд╕реНрдерд╛рди рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдмрд╛рдж рдореЗрдВ рд╕реНрдкрд░реНрд╢ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдХреИрдорд░реЗ рдХреЗ рдХрд┐рдирд╛рд░реЗ рд╕реЗ рдареАрдХ рдХрд░реЗрдВрдЧреЗред
рдмреНрд░рд┐рдЬрд╣реЗрдб рдЕрдзреНрдпрдпрди
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдирд╡реАрдирддрдо рдлрд░реНрдорд╡реЗрдпрд░ рд▓реЗрддреЗ рд╣реИрдВ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ - рдлрд░реНрдорд╡реЗрдпрд░_TS38ABFG031-ONVIF-P2P-V2.5.0.6_20140126120110.bin), рдФрд░ рдкрддрд╛ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИ:
$ рдлрд╝рд╛рдЗрд▓ рдлрд░реНрдорд╡реЗрдпрд░_TS38ABFG006-ONVIF-P2P-V2.5.0.6_201401261210.bin рдлрд░реНрдорд╡реЗрдпрд░_TS38ABFG006-ONVIF-P2P-V2.5.0.6_20140126120110.bin: рдбреЗрдЯрд╛ $ du -b рдлрд░реНрдорд╡реЗрдпрд░_TS38ABFG006-ONVIF-P2P-V2.5.0.6_20140126120110.bin 15222724 рдлрд░реНрдорд╡реЗрдпрд░_TS38ABFG006-ONVIF-P2P-V2.5.0.6_20140126120110.bin $ xxd рдлрд░реНрдорд╡реЗрдпрд░_TS38ABFG006-ONVIF-P2P-V2.5.0.6_20140126120110.bin | рд╕рд┐рд░ 0000000: 4649 524d 5741 5245 6481 db15 c447 e800 FIRMWAREd .... редред 0000010: 0300 0000 1406 0000 b0f1 1b00 4c21 815d ............ Lред] 0000020: 5453 3338 4f45 4d41 4246 475f 4c49 4e55 TS38OEMABFG_LINU 0000030: 5800 0000 0000 0000 0000 0000 0000 X ..............ред 0000040: 0000 0000 0000 0000 0000 0000 0000 ................ 0000050: 0000 0000 0000 0000 0000 0000 0000 ................ 0000060: 0000 0000 0000 0000 0000 0000 0000 ................ 0000070: 0000 0000 0000 0000 0000 0000 0000 ................ 0000080: 0000 0000 0000 0000 0000 0000 0000 ................ 0000090: 0000 0000 0000 0000 0000 0000 0000 ................ $ Binwalk рдлрд░реНрдорд╡реЗрдпрд░_TS38ABFG006-ONVIF-P2P-V2.5.0.6_20140126120110.bin рдбреЗрдорд▓ рд╣реЗрдХреНрд╕ рдбреЗрд╕реНрдХ -------------------------------------------------- -------------------------------------------------- --- 1556 0x614 uImage рд╣реЗрдбрд░, рд╣реЗрдбрд░ рдХрд╛ рдЖрдХрд╛рд░: 64 рдмрд╛рдЗрдЯреНрд╕, рд╣реЗрдбрд░ CRC: 0xB21E2C9F, рдмрдирд╛рдпрд╛ рдЧрдпрд╛: Sun Sep 22 11:07:02 2013, рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░: 1831280 рдмрд╛рдЗрдЯреНрд╕, рдбреЗрдЯрд╛ рдкрддрд╛: 0x80008000, рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯ: 0x80008000, рдбреЗрдЯрд╛ CRC: 0x1F4EFBAB.03ред : рд▓рд┐рдирдХреНрд╕, рд╕реАрдкреАрдпреВ: рдПрдЖрд░рдПрдо, рдЫрд╡рд┐ рдкреНрд░рдХрд╛рд░: рдУрдПрд╕ рдХрд░реНрдиреЗрд▓ рдЫрд╡рд┐, рд╕рдВрдкреАрдбрд╝рди рдкреНрд░рдХрд╛рд░: рдХреЛрдИ рдирд╣реАрдВ, рдЫрд╡рд┐ рдХрд╛ рдирд╛рдо: "рд▓рд┐рдирдХреНрд╕-2.6.18_pro500-davinci_IPNC" 14468 0x3884 gzip рд╕рдВрдХреБрдЪрд┐рдд рдбреЗрдЯрд╛, рдпреВрдирд┐рдХреНрд╕ рд╕реЗ, рдЕрдВрддрд┐рдо рдмрд╛рд░ рд╕рдВрд╢реЛрдзрд┐рдд: Sun Sep 22 11:07:02 2013, рдЕрдзрд┐рдХрддрдо рд╕рдВрдкреАрдбрд╝рди 1832900 0x1BF7C4 CramFS рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо, рдереЛрдбрд╝рд╛ рдПрдВрдбрд┐рдпрди рдЖрдХрд╛рд░ 13389824 рд╕рдВрд╕реНрдХрд░рдг # 2 рд╕реЙрд░реНрдЯ рдХрд┐рдП рдЧрдП_рдбрд┐рд╕реНрдХ CRC 0xc832a8c3, рд╕рдВрд╕реНрдХрд░рдг 0, 7334 рдмреНрд▓реЙрдХ, 2607 рдлрд╛рдЗрд▓реЗрдВ
рддреЛ, рдЗрд╕рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдЕрдЬреНрдЮрд╛рдд рд╣реИ, рд╕реНрдЯрд╛рд░реНрдЯ рд▓реЗрдмрд▓ "FIRMWARE" рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЙрджреНрдШрд╛рдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдХреБрдЫ рд╣реИ, uImage рдХреЗ рдЕрдВрджрд░ рдПрдХ рдХрд░реНрдиреЗрд▓ рдФрд░ cramfs рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рд▓рд╛рдЗрди TS38OEMABFG_LINUX рдХреА рдореМрдЬреВрджрдЧреА рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдХреБрдЫ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рд╡рд╛рд▓рд╛ рднреА рд╣реИред
рдЪреВрдБрдХрд┐ рдЕрдм рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдпрд╣ рджреЗрдЦрдирд╛ рд╣реИ рдХрд┐ рдХрд╣рд╛рдБ рджреЗрдЦрдирд╛ рд╣реИ - рдмрд╕ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╡рд╣рд╛рдБ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓реЗрдВ, рдФрд░ рдЕрдкрд░рд╛рдзреА рдореЙрдбреНрдпреВрд▓ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВ:
$ dd if = рдлрд░реНрдорд╡реЗрдпрд░_TS38ABFG006-ONVIF-P2P-V2.5.0.6_20140126120110.bin bs = 1832900 Skip = 1 of = cramfs 7 + 1 рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ 7 + 1 рд░рд┐рдХреЙрд░реНрдб рднреЗрдЬрд╛ рдЧрдпрд╛ 13389824 рдмрд╛рдЗрдЯреНрд╕ (13 рдПрдордмреА) рдХреЙрдкреА рдХрд┐рдП рдЧрдП, 0.161755 рдПрд╕, 82.8 рдПрдордмреА / рдПрд╕ $ fakeroot cramfsck -x fs cramfs $ grep LIVE555 -R fs / Fs / opt / topsee / rtsp_streamer рдмрд╛рдЗрдирд░реА рдореИрдЪ $ рддрд╛рд░ fs / рдСрдкреНрдЯ / рдЯреЙрдкрд╕реА / rtsp_streamer | grep рдЯреАрд╕реАрдкреА sendRTPOverTCP 12RTCPInstance sendRTPOverTCP рд╡рд┐рдлрд▓, рдЬреБрд░реНрд░рд╛рдм:% d, chn:% d рдЖрд░рдЯреАрд╕реАрдкреА рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИ RTCPInstance :: RTCPInstance error: totSessionBW рдкреИрд░рд╛рдореАрдЯрд░ рд╢реВрдиреНрдп рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП! рдЖрд░рдЯреАрдкреА / рдПрд╡реАрдкреА / рдЯреАрд╕реАрдкреА % sTransport: RTP / AVP / TCP; рдпреВрдирд┐рдХреИрд╕реНрдЯ; рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди =% s; рд╕реЛрд░реНрд╕ =% рдбреА; рдЗрдВрдЯрд░рд▓реЗрдпрд░реНрдб =% d-% d / рдЯреАрд╕реАрдкреА; рдпреВрдирд┐рдХрд╕реНрдЯ RTCP рд╕реЙрдХреЗрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ (рдкреЛрд░реНрдЯ% d) MediaSession :: рдЖрд░рдВрдн (): RTP рдФрд░ RTCP рд╕реЙрдХреЗрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде RTCP рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рдкреНрд░рд╛рдкреНрдд RTCP "BYE" рдкрд░ " 18RTCPMemberDatabase
Hohoho! "SendRTPOverTCP рд╡рд┐рдлрд▓ рд╣реБрдЖ, рдЬреБрд░реНрд░рд╛рдм:% d, chn:% d" рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдХрд╛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдкреНрд░рд┐рдВрдЯ рдХреЗ рд╕рд╛рде рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкрд░рд┐рдорд╛рдг рдХреЗ рдЖрджреЗрд╢реЛрдВ рд╕реЗ рдХрд╛рд░реНрдп рдХреА рдорд╛рддреНрд░рд╛ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ!
рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рддреНрд░реБрдЯрд┐ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдПрдХ рдореЙрдбреНрдпреВрд▓ рдЬрд┐рд╕рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдХрд╛рд░ рджреЗрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред
рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдФрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░реЗрдВ
рд╣рдо рдореЙрдбреНрдпреВрд▓ рдХреЛ рдПрдХ рдбрд┐рд╕реНрд╕реЗрдореНрдмрд▓рд░ рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдбреАрдмрдЧ рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдУрд╡рд░рдЯреЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЗ рд▓рд┐рдП рдкреНрд░рд┐рдВрдЯ рдЖрдЙрдЯ => рд╣рдореЗрдВ рд╕реЗрдВрдб рдЖрд░рдЯреАрдУрдУрдУрдЯреАрдЯреАрд╕реАрдкреА рдлрд╝рдВрдХреНрд╢рди рдорд┐рд▓рд╛ред
рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдо рдЬрд▓реНрджреА рд╕реЗ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдХреЙрд▓ рджреЗрдЦрддреЗ рд╣реИрдВ () рдлрд╝рдВрдХреНрд╢рди - 4 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ, рдЗрдирдкреБрдЯ рдХреЗ рдкрд╛рд╕ рдПрдХ рдмрдлрд░ рдХреЗ рд╕рд╛рдеред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╡рд╣ рд╕рдВрд╕реНрдХрд░рдг рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рд╕рдмрд╕реЗ рдкреБрд░рд╛рдирд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдлрд░ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░ рдЪреБрдХреЗ рдереЗ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЕрднреА рддрдХ SendDataOverTCP рдлрд╝рдВрдХреНрд╢рдВрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ (рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдЕрдВрддрд┐рдо <рдкреЛрд╕реНрдЯ рджреЗрдЦреЗрдВ) ред
рдЕрдм рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдмрдЧ рдХреЛ рдмрд╛рдЗрдирд░реА рдлреЙрд░реНрдо рдореЗрдВ рдХреИрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬрдм рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рдорд╛рд░реНрдЬрд┐рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рдХреЛрдИ рдЦрд╛рд▓реА рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИ)ред
рд╣рдо рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдКрдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ sendDataOverTCP - sendPacket рдХрд╣рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдХреЛрдб рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓рд╛, рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕рдорд╛рди рд╣реИ - foreach (рд╕реНрдЯреНрд░реАрдо) {sendDataOverTCP (рдкреИрдХреЗрдЯ, рд╕реНрдЯреНрд░реАрдо)}ред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдХреЛрдб рдЙрджрд╛рд░рддрд╛ рд╕реЗ рдбреАрдмрдЧрд┐рдВрдЧ рдлрд╝реНрд░реАрдкреНрд░рд┐рдВрдЯреНрд╕ рдХреЗ рд╕рд╛рде crammed рдерд╛, рдФрд░ рдЬреЛ рд╣рдореЗрдВ рдмрдЪрд╛рддрд╛ рд╣реИ! рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд▓реВрдк рдмрд╛рдЗрдирд░реА рдлреЙрд░реНрдо рдореЗрдВ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
loop_next_5FAE4: LDR R4, [R4,#4] CMP R4, #0 BEQ loc_5FB68 loop_body_5FAF0: MOV R3, R4 MOV R1, R5 MOV R2, R7 MOV R0, R6 BL sendRTPOverTCP CMP R0, #0 BGE loop_next_5FAE4 MOV R1, #0 LDR R2, =aS_10 ; "%s(): " LDR R3, =aSendpacket ; "sendPacket" MOV R0, #STDERR_FILENO BL fprintf_0 LDRB R12, [R4,#0xC] LDR R3, [R4,#8] MOV R1, #7 LDR R2, =aSendrtpovert_0 ; "sendRTPOverTCP failed, sock: %d, chn: %"... MOV R0, #STDERR_FILENO STR R12, [SP,#0x350+var_350] BL fprintf_0 ......
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдореЛрдХреНрд╖ рд╣реИ! рдбрд┐рдмрдЧ рдкреАрд╕ рдХреЛ рдХрд╛рдЯрдиреЗ рд╕реЗ рд╣рдореЗрдВ 12 рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЬрдЧрд╣ рдорд┐рд▓рддреА рд╣реИ (ARM рдореЗрдВ рд╕рднреА рдирд┐рд░реНрджреЗрд╢ рдмрд┐рд▓реНрдХреБрд▓ 4 рдмрд╛рдЗрдЯреНрд╕ рд╣реИрдВ, рдЬреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ)ред
рдЗрд╕рд▓рд┐рдП, рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 12 рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдПрдХ рдЬрдЧрд╣ рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпрд╛? рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ sendDataOverTCP рдХреЛрдб рдХреЛ рдпрд╣рд╛рдВ рдзрдХреЗрд▓рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ ...
рд╣рд╛рд▓рд╛рдВрдХрд┐ рд░реБрдХ тАЛтАЛрдЬрд╛рддреЗ рд╣реИрдВред рдФрд░ рдХреНрдпреЛрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╕рд╣реА sendDataOverTCP рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрднреА рднреА рдмреБрд░рд╛ рд╣реИ ... рдФрд░ рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдВрддрд░ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╕рд┐рд░реНрдл рдХреЙрд▓ рдХреЛ рдореЗрдХ рд╕реЙрдХреЗрдЯ рдореЗрдВ рдХреНрдпреЛрдВ рди рд▓рдкреЗрдЯреЗрдВ () .. makeSocketNonBoning ()?
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрдЧрд░ рд╕рд┐рд╕реНрдЯрдо рдмрдлрд░ рдореЗрдВ рдПрдХ рдЬрдЧрд╣ рд╣реИ, рддреЛ рднреЗрдЬреЗрдВ () рддреБрд░рдВрдд рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдЧрд╛ред рдпрджрд┐ рдХреЛрдИ рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИ, рддреЛ рдЙрдирдХреЗ рднреЗрдЬрдиреЗ рдХрд╛ рдХрд╛рд░реНрдпDadOverTCP рдЕрднреА рднреА рдЪрд┐рдкрдХ рдЬрд╛рдПрдЧрд╛ (рдпрд╣ рдХреНрдпреЛрдВ рдЪрд┐рдкрдХ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде рддреБрд░рдВрдд рдмрд╛рд╣рд░ рдирд╣реАрдВ рдирд┐рдХрд▓реЗрдЧрд╛ - рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рджреЗрдЦреЗрдВ)ред
рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! Fcntl рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд░рд┐рд╡рд╛рдЗрдВрдб рдХрд░рдиреЗ рд╕реЗ, рд╣рдо рдореЗрдХ рд╕реЙрдХреЗрдЯрдмреНрд▓реЙрдХрд┐рдВрдЧ рдФрд░ рдореЗрдХ рд╕реЙрдХреЗрдЯрдиреЙрдирдмреНрд▓реЙрдХрд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рдбреНрд░реЙ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕ рдХреЛрдб рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
loop_next_5FAE4: LDR R4, [R4,#4] CMP R4, #0 BEQ loc_5FB68 loop_body_5FAF0: ; LDR R0, [R4,#8] BL makeSocketBlocking ; MOV R3, R4 MOV R1, R5 MOV R2, R7 MOV R0, R6 BL sendRTPOverTCP ; STMFD SP!, {R0} ; LDR R0, [R4,#8] BL makeSocketNonBlocking ; LDMFD SP!, {R0} ; CMP R0, #0 BGE loc_5FAE4 ; NOP NOP NOP NOP NOP NOP
рдкреИрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рддреЛ рдмрд╛рдВрд╣ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдЦреЛрд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдВ, рдпрд╛ рдПрдХ рдЕрд▓рдЧ рдлрд╛рдЗрд▓ рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦреЗрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдВ (рдУрдЖрд░рдЬреА рдХреЗ рд╕рд╛рде рд╕рдЯреАрдХ рдкрддреЗ рд╕реЗрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ рддрд╛рдХрд┐ рд╕рднреА рд╕рдВрдХреНрд░рдордг (рдмреАрдПрд▓ / рдмреАрдЬреАрдИ / рдЖрдИрдЯреАрдбреА рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЧрд┐рдиреЗ рдЬрд╛рдПрдВ), рдФрд░ рдореБрдЭреЗ рдХреЛрдб рдореЗрдВ рдХреЗрд╡рд▓ рдЙрдЪрд┐рдд рдирд┐рд░реНрджреЗрд╢ рдорд┐рд▓реЗ рдФрд░ рдЙрдирдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореИрдВрдиреЗ рдЖрд╡рд╢реНрдпрдХ рдСрдкрдХреЛрдб рдХреА рдЧрдгрдирд╛ рдХреА (рдкрд╣рд▓реА рдмрд╛рд░ рдПрдЖрд░рдПрдо рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ)ред
рдирддреАрдЬрддрди, рд╣рдореЗрдВ rtsp_streamer рдПрдХ рдкреИрдЪ рдХреЗ рд╕рд╛рде рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреЛ рдЙрд╕ рдкрд░ рдЖрд░реЛрдкрд┐рдд рд╣реИ рдЬреЛ рдЯреАрд╕реАрдкреА рд╕реНрдЯреНрд░реАрдо рдХреЛ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред
рдмреНрд▓рд╛рд╕реНрдЯ рд╕реЛрд▓реНрдбрд░рд┐рдВрдЧ, рд╕реЛрдмрд░ рдЕрд╕реЗрдВрдмрд▓реА
рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдирдпрд╛ rtsp_streamer рд╣реИ, рдФрд░ рдлрд░реНрдорд╡реЗрдпрд░ рд╣реИ ... рдмрд┐рди рдЬрд┐рд╕рдореЗрдВ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдареАрдХ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ: рдЖрдкрдХреЛ cramfs рдХреЛ рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрджрд▓реЗрдВ, рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдкреИрдХ рдХрд░реЗрдВ, рдЗрд╕реЗ рдмрд┐рди рдХреЗ рдЕрдВрджрд░ рдмрджрд▓реЗрдВ:
$ fakeroot -s .fakeroot cramfsck -x repack cramfs $ cp rtsp_streamer рд░рд┐рдкреИрдХ / рдСрдкреНрдЯ / рдЯреЙрдкрд╕реА / $ fakeroot -i .fakeroot mkcramfs рдХреЛ newcramfs рд░рд┐рдкреИрдХ рдХрд░рддреЗ рд╣реИрдВ $ dd if = рдлрд░реНрдорд╡реЗрдпрд░_TS38ABFG006-ONVIF-P2P-V2.5.0.6_20140126120110.bin = = рдлрд░реНрдорд╡реЗрдпрд░_рдиреНрдпреВ.рдмреАрди bs = 1832900 рдЧрд┐рдирддреА = 1 $ рдмрд┐рд▓реНрд▓реА newcramfs >> рдлрд░реНрдорд╡реЗрдпрд░_рдиреНрдпреВ.рдмрд┐рди
рдкреНрд░рд╛рдкреНрдд рдлрд░реНрдорд╡реЗрдпрд░_рдиреНрдпреВ.рдмрд┐рди рдХреЛ рдХреИрдорд░реЗ рдореЗрдВ рдбрд╛рд▓реЗрдВ ... 0 рдкреНрд░рднрд╛рд╡ред рдХреИрдорд░рд╛ рдлрд░реНрдорд╡реЗрдпрд░ рдЦрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЕрдкреНрд░рд┐рдпред рддреЛ, рдЖрдкрдХреЛ рдЗрд╕ .bin рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЗрд╕реЗ рд╣реЗрдХреНрд╕ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЦреЛрд▓реЗрдВ, рдФрд░ рдХреБрдореЗрдХреВ рд╢реБрд░реВ рдХрд░реЗрдВ:
(0) "FIRMWARE" - 100% рд╣реЗрдбрд░, 8 рдмрд╛рдЗрдЯреНрд╕ред
(() ремрек DBрез рдбреАрдмреА резрел - рек рдмрд╛рдЗрдЯреНрд╕, рдЙрджреНрджреЗрд╢реНрдп рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдЧрдВрдз рджреНрд╡рд╛рд░рд╛ - рдЪреЗрдХрд╕рдо
(12) 0x00E847C4 = 15222724 - рд╣рд╛рдБ, 4 рдмрд╛рдЗрдЯреНрд╕, рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдХрд╛ рдЖрдХрд╛рд░ред рд╣рдо _new.bin рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ - рдирд╣реАрдВ, рдЖрдХрд╛рд░ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЗрд╕рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред
(16) 0x00000003 - 4 рдмрд╛рдЗрдЯреНрд╕ xs рдХреНрдпрд╛ред рд╣реЗрдбрд░ рд╕рдВрд╕реНрдХрд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
(реиреж) режxрежрежрежрежремрезрек = резрелрелрем - рддреЛ, тАЛтАЛрдФрд░ рдпрд╣ рдЕрдВрджрд░ рдХреЗ рдореВрд▓ рдХрд╛ рд╡рд┐рд╕реНрдерд╛рдкрди рд╣реИ
(24) 0x001BF1B0 = 1831344 - рдФрд░ рдпрд╣ рдХреЛрд░ рдХрд╛ рдЖрдХрд╛рд░ (1831344 + 1556 = 1832900) рд╣реИ
(реи () рек рд╕реА реирез 5рез рел рдбреА - рд╣рдореНрдоред рдлрд┐рд░ рд╕реЗ рдПрдХ рдЪреЗрдХрд╕рдо рдХреЗ рд╕рдорд╛рди рдХреБрдЫред
(32) "TS38OEMABFG_LINUX" рдФрд░ рд╢реВрдиреНрдп рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ - рдмрд╛рдж рдореЗрдВ 100h рдмрд╛рдЗрдЯреНрд╕, рдЬрд╛рд╣рд┐рд░ рддреМрд░ рдкрд░ рдЕрдиреБрднрд╛рдЧ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЧрд╣
(288) 0x001BF7C4 = 1832900 - рд╣рд╛рдБ, рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдСрдлрд╕реЗрдЯ рдХрд░реЗрдВ
(292) 0x00CC5000 = 13389824 - рд╣рд╛рдБ, рдЕрдиреБрднрд╛рдЧ рдЖрдХрд╛рд░
(реи реп рем) "TS38OEMABFG_V2.5.0.6" рдФрд░ рд╢реВрдиреНрдп рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╣реИрдВред 100h рдмрд╛рдЗрдЯреНрд╕, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрднрд╛рдЧ рдирд╛рдо рдХреЗ рддрд╣рддред
рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╕рд╛рдордиреЗ рдХреЛрдИ рдЪреЗрдХрд╕рдо рдирд╣реАрдВ рд╣реИ O_O
(552-1556) - рдЕрдЬреНрдЮрд╛рдд рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдХреБрдЫред
рддреЛ, рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдмрд┐рдВрджреБ рд╕реНрдкрд╖реНрдЯ рд╣реИред рд╣рдорд╛рд░реЗ cramfs рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпреЗ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЪреЗрдХрд╕рдоред
рд╣рдо рдХрд░реНрдиреЗрд▓ рдХреЛ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреА рд▓рдВрдмрд╛рдИ рдореЗрдВ 4 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдЪреЗрдХрд╕рдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ:
$ dd if = рдлрд░реНрдорд╡реЗрдпрд░_TS38ABFG006-ONVIF-P2P-V2.5.0.6_20140126120110.bin = рдХрд░реНрдиреЗрд▓ рдмреАрдПрд╕ = 1 рд╕реНрдХрд┐рдк = 1556 рдХрд╛рдЙрдВрдЯ = 1831344 $ crc32 рдХрд░реНрдиреЗрд▓ 5d81214c
рдареАрдХ рд╣реИ, рдареАрдХ рд╣реИ ... рдСрдлрд╕реЗрдЯ рдкрд░ рд╕рд┐рд░реНрдл 0x5D81214Cред рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдорд╛рдирдХ CRC32 рд╣реИред рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдорд╛рдирдХ рдЙрдкрдХрд░рдг рдХреЗрд╡рд▓ рдпрд╣ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдЧрд┐рдирдирд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдореБрдЭреЗ рдЕрдЬрдЧрд░ рдХреЛ рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "рдЕрдзрд┐рдХ рдХрдард┐рди" рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ :)
рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬреЛ рдЪреЗрдХрд╕рдо рд╣реИрдВ рд╡реЗ crc32 рд╣реИрдВред рдФрд░ рдореВрд▓ cramfs рдХрд╛ рдЪреЗрдХрд╕рдо рдХреНрдпрд╛ рд╣реИ? .. 37499eefред рддреЛ-рддреЛ-рддреЛред рдСрдлрд╕реЗрдЯ 552 рдкрд░, 0x37499eef рдЕрднреА рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рддреЛ, рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдЪреЗрдХрд╕рдо рд╡рд┐рднрд╛рдЬрди рд╡рд┐рднрд╛рдЬрди рдирд╛рдо рд▓рд┐рдЦрд╛ рд╣реИред рдЕрдЪреНрдЫрд╛ рдареАрдХ рд╣реИ, рд╣рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП, рд╣рдореЗрдВ рдЧрд░реНрд╡ рдирд╣реАрдВ рд╣реИред рдкреНрд▓реЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛:
(28) 0x5D81214C - crc32 рдХрд░реНрдиреЗрд▓ рд╡рд┐рднрд╛рдЬрди
(552) 0x37499eef - crc32 рдкрд╛рд░реНрдЯреАрд╢рди FS
(556-1556) - рдЕрдЬреНрдЮрд╛рдд рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдХреБрдЫ
рд╣рдо crc32 newcramfs рдХрд╛ рдкреБрдирд░рд╛рд╡рд░реНрддрди рдХрд░рддреЗ рд╣реИрдВ, рд╕рдВрдкрд╛рджрдХ рдХреЗ рд╕рд╛рде рд╣реЗрдХреНрд╕, рдЗрд╕реЗ рдмрд┐рдирд╛рд░ рдореЗрдВ рдСрдлрд╕реЗрдЯ 552 рдкрд░ рджрд░реНрдЬ рдХрд░реЗрдВ, рдЗрд╕реЗ рдХреИрдорд░реЗ рдореЗрдВ рднрд░реЗрдВред
рдФрд░ ... рдХреБрдЫ рдирд╣реАрдВ O_Oред рддреЛ, рд╕реНрд╡рднрд╛рд╡ рдирд┐рд░рд╛рд╢ рдирд╣реАрдВ рдерд╛ - рдСрдлрд╕реЗрдЯ 8 рдкрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ crc32 рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╕реЗ?
рдпрд╣рд╛рдБ рд╣рдо рд╕рд░рд▓рддрд╛ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ - рд╣рдо рдкрд╛рд╢рд╡рд┐рдХ рдмрд▓ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
$ рдЕрдЬрдЧрд░ >>> zlib рдЖрдпрд╛рдд crc32 рд╕реЗ >>> d = рдЦреБрд▓рд╛ ("рдлрд░реНрдорд╡реЗрдпрд░_TS38ABFG006-ONVIF-P2P-V2.5.0.6_20140126120110.bin", "r")ред () рдкрдврд╝реЗрдВ >>> рд╣реЗрдХреНрд╕ (crc32 (d [12:])) '-0x781aca29' # рдирдВ >>> рд╣реЗрдХреНрд╕ (crc32 (d [12: 1556])) '-0x6f8f1744' # рдирдВ >>> рд╣реЗрдХреНрд╕ (crc32 (d [0: 8] + d [12: 1556]) '0x6d29f056' # рдирдВ >>> рд╣реЗрдХреНрд╕ (crc32 (d [0: 8] + d [12:])) '-0x652ac4fd' # рд╕рдВ >>> рд╣реЗрдХреНрд╕ (crc32 (d [0: 8] + "\" \ 0 \ 0 \ 0 \ 0 "+ d [12: 1556])) '0x15db8164' # рдЙрдлрд╝! рдпрд╣ рд╣реИ!
рдЬрд▓реНрджреА рд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд┐рдпрд╛ред рддреЛ, рд╣рдо рдкреНрд▓реЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:
(8) 0x15DB8164 - CRC32 рд╣реЗрдбрд░ (рдкрд╣рд▓реЗ 1556 рдмрд╛рдЗрдЯреНрд╕), рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдкрд╣рд▓реА рдмрд╛рд░
рддреЛ, рд╡рд╣реАрдВ, рдЕрдЬрдЧрд░ рдореЗрдВ рд╣рдо рд╣реЗрдбрд░ рдлрд░реНрдорд╡реЗрдпрд░_рдиреНрдпреВ.рдмрд┐рди рд╕реЗ crc32 рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд░рд┐рдХрд╡рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реЗрдХреНрд╕ рдПрдбрд┐рдЯрд░ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВред
рдХреИрдорд░реЗ рдореЗрдВ рдбрд╛рд▓реЛ ... рд╡рд╣ рд░рд┐рдмреВрдЯ рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддрд╛ ... рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддрд╛ ... рдПрдХ рдФрд░ рдИрдВрдЯ ... рдУрд╣! рдкрд┐рдВрдЧ рдЪрд▓рддреЗ рд╣реИрдВ! Fuuuhред
рд╣рдо cam-resync.py рд▓реЗрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╕реЗ рд╣рдо рдЕрдкрдиреЗ рдХреИрдорд░реЗ рдХреЛ рдПрдХ рдЫрдбрд╝реА рдХреЗ рд╕рд╛рде рдЪрд┐рдкрдХрд╛ рджреЗрддреЗ рд╣реИрдВред рдФрд░ ... рдФрд░ рдзрд╛рд░рд╛ рдирд╣реАрдВ рдЯреВрдЯрддреА! рд╡рд╣реАрдВ, рдкрд╣рд▓реА рдХреЛрд╢рд┐рд╢ рдкрд░! Wiiii :)
рдпрд╣ рд░реЛрдЯреА рдкрд░ рд▓рд┐рдкреНрдд рд╣реИ, рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ
рдЗрд╕ рдмреАрдЪ, рдкрд╣рд▓реЗ рд╕реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЖрдВрджреНрд░реЗрдИ рд╕рд┐рдореЛрдХреЛрдХрд┐рди, рдЕрдкрдиреЗ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ rtsp_streamer I рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХреИрдорд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдХрдИ рдмреНрд░реЗрдХ рдереЗред рдирддреАрдЬрддрди, рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдзрд╛рд░рд╛ рдирд╣реАрдВ рдЯреВрдЯрддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реАрдбрд┐рдпреЛ рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдВ рд╢реБрд░реВ рд╣реБрдИрдВ, рдпреВрдбреАрдкреА рдкрд░ рдкреИрдХреЗрдЯ рдЦреЛрдиреЗ рдХреЗ рджреМрд░рд╛рдиред рдЪреВрдВрдХрд┐ рдореИрдВрдиреЗ рдРрд╕рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрддреНрд╕реБрдХ рдерд╛ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИ - рдореБрдЭреЗ рдлрд┐рд░ рд╕реЗ рдХреЛрдб рдХреЛ рджреЗрдЦрдирд╛ рдкрдбрд╝рд╛ред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддрд╛рд░ рджреЗрдЦреЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдбрд┐рдмрдЧрд┐рдВрдЧ рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИред "% D рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП CheckBufferTimeout !!!", "% d ms рд╕реЗ рдЕрдзрд┐рдХ рдмрдлрд╝рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛, рд╕рднреА рдмрдлрд╝рд░реНрдб рдбреЗрдЯрд╛ рдбреНрд░реЙрдк рдХрд░реЗрдВ"ред
рдЕрд╣рд╛! рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрдорд╛рддрд╛рдУрдВ рдиреЗ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рд╕рдВрд░рдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ! рдФрд░ рдЕрдЧрд░ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╕реЗрдВрдб () рдЕрднреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ - 1 рд╕реЗрдХрдВрдб), рддреЛ рдпрд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛ рдЧрд┐рд░рд╛ рджреЗрддрд╛ рд╣реИред рдпрд╣ OOM рдФрд░ рд╡реАрдбрд┐рдпреЛ рд▓реИрдЧ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИ рдЕрдЧрд░ рдпрд╣ рдПрдХ рдкрддрд▓реЗ рдЪреИрдирд▓ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЧреИрд░-рдмреНрд▓реЙрдХрд┐рдВрдЧ рд╕реЙрдХреЗрдЯ рдФрд░ рднреЗрдЬрдиреЗ () рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдХрд╛рд░рдг рдХреЛрдб рдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд╣рд▓реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ред
рдмреНрд▓реЙрдХрд┐рдВрдЧ рдореЗрдВ рд░реИрдк рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж ... рдиреЙрдирдмреНрд▓реЙрдХрд┐рдВрдЧ - рдХреЛрдб рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ :)
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реИ: 1 рд╕реЗрдХрдВрдб рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЪреИрдирд▓ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░реНрдпрд╛рдкреНрдд рдореЛрдЯрд╛ рд╣реИ, рддреЛ рдПрдХ рдмреВрдВрдж рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдордЬрдмреВрдд рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рдХрд┐рд╕реА рднреА рдЧрд┐рд░рд╛рд╡рдЯ рдХреЗ рдмрд╛рдж, рд╡реАрдбрд┐рдпреЛ рдХреЛ рдХреАрдлреНрд░реЗрдо рдХреЗ рдмрд╛рдж рд╣реА рдмрд╣рд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдХреАрдлрд╝реНрд░реЗрдо рдХрд╛рдлреА рджреБрд░реНрд▓рдн рд╣реЛрддрд╛ рд╣реИ (рдкреНрд░рддреНрдпреЗрдХ 5-10 рд╕реЗрдХрдВрдб рдореЗрдВ рдПрдХ рдмрд╛рд░) ... рдФрд░ рдпрд╣ рдПрдХ рдЕрдкреНрд░рд┐рдп рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ - рдпрджрд┐ рдХреЛрдИ рд╡рд┐рдлрд▓рддрд╛ рдереА, рддреЛ рдЖрдкрдХреЛ рдЕрдЧрд▓реЗ рдХреАрдлрд╝реНрд░реЗрдо рд╕реЗ рдкрд╣рд▓реЗ 5-10 рд╕реЗрдХрдВрдб рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реАрдбрд┐рдпреЛ рдХреА рдорд░рдореНрдордд рд╣реЛред рдпрджрд┐ рдЖрдк рдХреАрдлреНрд░реЗрдо рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреАрдлреНрд░реЗрдо рдХрд╛рдлреА рдореЛрдЯреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдЪреИрдирд▓ рдорд░рдиреЗ рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред рджреБрд╖реНрдЪрдХреНрд░ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдмрдлрд╝рд░рд┐рдВрдЧ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ 10 рд╕реЗрдХрдВрдб рддрдХ рдмрдврд╝рд╛ рджрд┐рдпрд╛ - рдпрд╣ рдУрдУрдПрдо рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЧреИрд░-рдЕрдВрдзрд╡рд┐рд╢реНрд╡рд╛рд╕реА рдЪреИрдирд▓реЛрдВ рдкрд░ рд╢рд╛рдВрддрд┐ рд╕реЗ рд░рд┐рдЯреНрд░реЗрд╕рдорд┐рдЯреНрд╕ рдФрд░ рд▓реИрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рд╡реИрд╕реЗ, "рдЪрд╛рд▓рд╛рдХ" рдЙрдкрдЪрд╛рд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо
рдЕрдкрдиреЗ рдЖрдЦрд┐рд░реА рд▓реЗрдЦ рдореЗрдВ рдореИрдВрдиреЗ рдпрд╣ рдмрддрд╛рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдХрд┐ рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИред рд╕рдорд╛рдзрд╛рди рд╕рд┐рд░реНрдл рдорд╣рд╕реВрд╕ рдХрд┐рдП рдЧрдП рдЬреВрддреЗ рдХреА рддрд░рд╣ рд╣реИ - рдЪреВрдВрдХрд┐ рд╣рдо рдЖрд░рдЯреАрдкреА рдкреИрдХреЗрдЯ рднреЗрдЬрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдкрд╛рд╕ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╣реИред рдкреИрдХреЗрдЯ рдЬреАрд╡рдирдХрд╛рд▓ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ sendRTPorRTCPPacketOverTCP рдореЗрдВ рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдФрд░ рдпрджрд┐ рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╕реЗ рдХрдо рд╣реИ (рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 1 рд╕реЗрдХрдВрдб рдЯреАрд╕реАрдкреА рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ 6-10 рд╕реЗрдХрдВрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) рдЗрд╕реЗ рднреЗрдЬреЗрдВ, рдЕрдиреНрдпрдерд╛ рдпрд╣ рдЪреБрдкрдЪрд╛рдк рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИред
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрд╕реЗрдВрдмрд▓реА-рдбрд┐рд╕реИрд╕рдлрд╝реЙрд░реНрдо
рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдмрдЪреА рд╣реБрдИ рд╣реИ, рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рдЕрд╕реЗрдВрдмрд▓реА-рдбрд┐рд╕рдПрд╕реНрдкреЗрд╢рди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
unpack.sh
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
fw=${1?Please give firmware bin as argument} if [ -e $fw.unpack ]; then echo "Already exists: $fw.unpack" exit 1 fi # Check format if [ "$(dd if=$1 bs=8 count=1 2>/dev/null)" != "FIRMWARE" ]; then echo "Wrong file" exit 1 fi mkdir -p $fw.unpack echo "Extract header..." dd if=$1 of=$fw.unpack/00header bs=1556 count=1 2>/dev/null echo "Extract kernel..." ksize=$(dd if=$1 bs=1 count=4 skip=24 2>/dev/null | perl -e 'print unpack("l", <>);') dd if=$1 of=$fw.unpack/01kernel bs=1 skip=1556 count=$ksize 2>/dev/null echo "Extract filesystem..." foff=$(dd if=$1 bs=1 count=4 skip=288 2>/dev/null | perl -e 'print unpack("l", <>);') dd if=$1 of=$fw.unpack/02cramfs bs=$foff skip=1 2>/dev/null echo "Unpack filesystem..." cd $fw.unpack fakeroot -s .fakeroot cramfsck -x root 02cramfs chmod +r -R root/ echo "Done"
рдЪреВрдБрдХрд┐ рд╣рдо рд╢реАрд░реНрд╖рдХ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХрд╛ рдЕрд░реНрде рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдордирдорд╛рдиреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдХреИрдорд░реЗ рдХреЛ рди рдорд╛рд░реЗрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рднреА рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рд╡реЗ рд╣реИрдВред
рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рдЕрдВрджрд░ рдмреНрд▓реЙрдХ рдФрд░ рдЕрдиреНрдп рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдлреЗрдХрдХреВрдЯ рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИ, рдЬреЛ рд░рд╛рдЬреНрдп рдХреЛ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, fakeroot рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЕрдирдкреИрдХ рдХрд░реЗрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рдорд╛рдЗрдХреНрд░реЛ-рд╕рдорд╕реНрдпрд╛ рд╣реИ - рдЕрдВрдд рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рдПрдХ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рд░реВрдЯ рд╣реИрдВ, рддреЛ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рд╡рд╣ "chmod -r" рд╣реЛред рд▓реЗрдХрд┐рди рдРрд╕реА рдлрд╛рдЗрд▓ рдкрд░ рдлрд╝реЗрдХрд░реВрдЯ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рдореИрдВ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд░реАрдб рдХреА рдЕрдиреБрдорддрд┐ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди, рд╕рд╣реА рдкрд╣реБрдВрдЪ рдЕрдзрд┐рдХрд╛рд░ fakeroot рд░рд╛рдЬреНрдп рдбрдВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд░рд┐рд╡рд░реНрд╕ рдЕрд╕реЗрдВрдмрд▓реА рдПрдХ рдзрдорд╛рдХреЗ рдХреЗ рд╕рд╛рде рдмрдВрдж рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдмрд╛рдХреА рдЕрдирдкреИрдХрд┐рдВрдЧ рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдк рдмрд┐рдВрджреБ рдирд╣реАрдВ рд╣реИред
pack.sh
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
dir=${1?Please give path to a directory with unpacked firmware} nfw=${2?Please give name for a newly packed firmware} if [ ! -e $dir ]; then echo "Directory not exists: $dir" exit 1 fi if [ -e $nfw ]; then echo "Firmware already exists: $nfw" exit 1 fi # repack cramfs if [ ! -e $dir/02cramfs.bak ]; then mv $dir/02cramfs $dir/02cramfs.bak 2>/dev/null fi fakeroot -i $dir/.fakeroot mkcramfs $dir/root/ $dir/02cramfs # construct new firmware dd if=$dir/00header bs=1556 of=$nfw conv=notrunc 2>/dev/null # remove old header crc32 dd if=/dev/zero bs=1 seek=8 count=4 of=$nfw conv=notrunc 2>/dev/null # save kernel size if [ $(stat -c %s $dir/01kernel) -ge 2097152 ]; then echo "WARN: size of kernel is more than 0x200000. FW probably will not flash" fi perl -e 'print pack("l", -s "'$dir/01kernel'")' | dd bs=1 seek=24 count=4 of=$nfw conv=notrunc 2>/dev/null # save kernel crc32 crc32 $dir/01kernel | perl -e 'print pack("l", oct("0x".<>));' | dd bs=1 seek=28 count=4 of=$nfw conv=notrunc 2>/dev/null # save fs offset perl -e 'print pack("l", 1556+(-s "'$dir/01kernel'"))' | dd bs=1 seek=288 count=4 of=$nfw conv=notrunc 2>/dev/null # save fs size if [ $(stat -c %s $dir/02cramfs) -lt 8388608 ]; then echo "WARN: size of filesystem is less than 0x800000. FW probably will not flash" fi if [ $(stat -c %s $dir/02cramfs) -ge 15728640 ]; then echo "WARN: size of filesystem is more than 0xF00000. FW probably will not flash" fi perl -e 'print pack("l", -s "'$dir/02cramfs'")' | dd bs=1 seek=292 count=4 of=$nfw conv=notrunc 2>/dev/null # save fs crc32 crc32 $dir/02cramfs | perl -e 'print pack("l", oct("0x".<>));' | dd bs=1 seek=552 count=4 of=$nfw conv=notrunc 2>/dev/null # save full FW size perl -e 'print pack("l", 1556+(-s "'$dir/02cramfs'")+(-s "'$dir/01kernel'"))' | dd bs=1 seek=12 count=4 of=$nfw conv=notrunc 2>/dev/null # Update header crc32 crc32 $nfw | perl -e 'print pack("l", oct("0x".<>));' | dd bs=1 seek=8 count=4 of=$nfw conv=notrunc 2>/dev/null # concat rest cat $dir/01kernel >> $nfw cat $dir/02cramfs >> $nfw echo "Done"
рд▓реЗрдХрд┐рди рдкреИрдХреЗрдЬрд┐рдВрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рд╣рдореЗрдВ рд╡рд╛рдкрд╕ cramfs рдкреИрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡реНрдпрдХреНрддрд┐рдЧрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рдФрд░ рд╣реЗрдбрд░ рдореЗрдВ рдХреБрд▓ рд▓рдВрдмрд╛рдИ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ; рд╣реЗрдбрд┐рдВрдЧ рд╕рд╣рд┐рдд рдЪреЗрдХрдЖрдЙрдЯ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рд╕рдм рдХреБрдЫ рдПрдХ рд╕рд╛рде рдорд┐рд▓рд╛ рджреЗрдВред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреИрдорд░рд╛ рд╕реНрд╡рдпрдВ рд╕реАрдорд╛ рдореВрд▓реНрдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдХрд░реНрдиреЗрд▓ рдЖрдХрд╛рд░реЛрдВ рдХреА рд╕реАрдорд╛рдУрдВ рдкрд░ рдПрдХ рдЪреЗрдХ рдЬреЛрдбрд╝рд╛, рддрд╛рдХрд┐ рдпрджрд┐ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рджреМрд░рд╛рди рдЗрд╕рдХреЗ рдЖрдХрд╛рд░ рдХрдо рд╣реЛ рдЬрд╛рдПрдВ, рддреЛ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдлрд╝рд░реНрдорд╡реЗрдпрд░ рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреВрдВрдЫ рд╣рдЯрд╛ рджреЗрдВред
рд╢реНрд░рдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо
рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг 2.5.0.6 рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрдЪ рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдПрдХрддреНрд░ рдХрд┐рдП:
- firmware_TS38ABFG006-ONVIF-рдкреА 2 рдкреА-V2.5.0.6_20140126120110- TCPFIX.bin
- firmware_TS38CD-ONVIF-рдкреА 2 рдкреА-V2.5.0.6_20140126121011- TCPFIX.bin
- firmware_TS38HI-ONVIF-рдкреА 2 рдкреА-V2.5.0.6_20140126121444- TCPFIX.bin
- firmware_TS38LM-ONVIF-рдкреА 2 рдкреА-V2.5.0.6_20140126121913- TCPFIX.bin
- firmware_HI3518C-V4-ONVIF-V2.5.0.6_20140126124339- TCPFIX.bin
рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдЪрд╛рдирдХ рдЙрд╕реА рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдкрд░ рдлрд┐рдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВ, рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╕рдВрднрд╡ рд╣реИред
ps: рд╣рд░ рдХреЛрдИ, рдЬрд┐рд╕реЗ рдЗрди рдлрд░реНрдорд╡реЗрдпрд░ рд╕реЗ рдХреБрдЫ рдФрд░ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЬрдЧрд╣ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ - рдЬреАрдердм рдкрд░ ред