If your system uses BusyBox init, and it doesn't have
/etc/inittab, then it runs
/etc/init.d/rcS at boot time. If this is a shell script, just add the environment definitions you want there. If this isn't a shell script, you can change your build to rename
/etc/init.d/rcS.bin, and create a shell script
/etc/init.d/rcS that ends with
exec /etc/init.d/rcS.bin. Of course, if you've changed the path
/etc/init.d/rcS in the build configuration, adapt for that. Environment variables defined there will apply to all daemons, but not to shells started on consoles.
If you have
/etc/inittab, check what it contains. The documentation is in the sample file. You can replace entries that run
/usr/bin/env TZ=GMT-1 somecommand .
That's the quick-and-dirty way, but in most cases you'd want to allow the end user to configure the timezone, so it should be stored in a separate file. In that case, go through a shell wrapper (or the
rcS script) and use some code like
export TZ="$(cat /etc/TZ.txt)"
Note that depending on your libc, there may or may not be a better way of setting the timezone, e.g. writing the timezone rules in
/etc/TZ for uClibc.