hwti / G-010S-A

All about Nokia G-010S-A GPON SFP
190 stars 35 forks source link

More Firmware Variants #22

Closed itfan1 closed 2 years ago

itfan1 commented 2 years ago

Many thanks for this wonderful repository. I'm opening this issue in order to provide two more firmware variants that are not yet available here.

The first is firmware version 3FE46398BFIB36 (BUILDDATE=20180706_0545 SOFTWAREVERSION=BFI.B36p08 LATEST_REV=46444). This version came on a used module that I bought from a US-based eBay seller. Here it is: 3FE46398BFIB36.zip

The second version is a variant of firmware version 3FE46398BGCB22 that is DIFFERENT from the version 3FE46398BGCB22 that is currently available in the repository (it has BUILDDATE=20191226_2146 SOFTWAREVERSION=BGC.B22p03). This variant came from a module that was supplied by Bezeq in Israel (the same source of the other version 3FE46398BGCB22). It seems a bit surprising and confusing that apparently different variants come with the exact same version designation. I have no idea what differences (if any) other than the compilation date exist between these two variants. Here it is: 3FE46398BGCB22_20191226.zip

hwti commented 2 years ago

This BGC.B22p03 might just be an older build of the same code, but since not everything was built in a reproducible way it's difficult to be sure.

/lib/librpc.so, /lib/libsal_pm.so : strings are reordered, maybe the code changed (not easy to tell), but perhaps the link order isn't stable

/bin/busybox, /lib/libcrypto.so.1.1, /lib/modules/3.10.49/mod_onu.ko, /opt/lantiq/bin/gexdump, /opt/lantiq/bin/gtop, /opt/lantiq/bin/otop : the only change is the build date (as a string)

/bin/ubus, /lib/libblobmsg_json.so, /lib/libjson_script.so, /sbin/jffs2reset, /sbin/mount_root, /sbin/snapshot_tool, /sbin/validate_data, /usr/bin/jshn : a few sizes/offsets in the dynamic headers, but I don't know why (maybe the build directory was present, but removed as a second step)

/lib/libcgi.so : BGC.B22 vs BGC.B22p03 string, this shifts a lot of things

/lib/libcs_msg.so, /lib/libcs_util.so.1, /lib/libhal_dp.so, /lib/libintl.so.8, /lib/libserial_ctl.so, /lib/libtimer.so, /usr/exe/daemon : different build path in debug information (once stripped the binaries are identical)

/lib/libOmciMoca.so : build timestamps

/lib/libfdb.so, /lib/modules/3.10.49/gpio-button-hotplug.ko, /lib/modules/3.10.49/gpio_mgr.ko, /lib/modules/3.10.49/mod_onu_netdev.ko, /sbin/lcfgmgr, /sbin/omciMgr, /sbin/parser, /sbin/uci, /usr/lib/lua/ubus.so, /usr/lib/lua/uci.so : different build paths

/lib/modules/3.10.49/mod_optic.ko : different build date and build path

kernel : different build date (string and timestamp) and build machine

hwti commented 2 years ago

3FE46398BFIB36 is the only firmware which has a /usr/etc/cfg.signed. This file is referenced by /sbin/detect, /sbin/saferun, /usr/lib/libdetect.so.

3FE46398BGCB22 still has the tools (in a /sbin/secmulti with additional sec_cli and sec_daemon), but not the "config" file.

I don't know if this is useful, maybe only for operators.

hwti commented 2 years ago

I added both firmwares to the repo, even if the BGC.B22p03 is probably the same as the existing BGC.B22.

The BFI.B36p08 could be useful, if if works better than the BGC.B22 in specific cases, but only the later references HWTC in its omciMgr, so it's probably more like older builds without the fixes for Huawei OLTs.