using img2simg/simg2img is fine. It’s not a ‘trick’. If you want to do simple things like drop new files or do a bit of linux config, it is definitely the simple thing to do. But if you start doing packages manipulations such as package upgrade, package modifications, … then it will start to become really error prone. In that case rebuilding a full image with FAI will be more appropriate.
make_ext4fs is a tool that we used before, it takes a “folder” and create an image with an EXT4 file system with the folder content. However we found issues with this tool when using e2fsprogs tools (to resize the file system), that’s why we switched to make.ext4fs which is the tools from e2fsprogs to create EXT4 file system. The good thing with make_ext4fs is that it knew about the ext4 file system structure and used this information to generate ‘better’ sparse images, so in theory sparse images with make_ext4fs were more optimized than with img2simg which uses a very naive implementation. img2simg does not know about the file system structure and creates a ‘dumb’ sparse file.
Right now we use FAI to generate the rootfs, which will use make.ext4 to generate an EXT4 image (see https://git.linaro.org/ci/fai.git/tree/disk_config/RAW), and then we use img2simg to sparse it.