dynamic package management for AVM routers
Shell PowerShell C C++ Lua Python Other
Switch branches/tags
Nothing to show
Latest commit 67abdee Sep 19, 2017 @PeterPawn PeterPawn workaround for unknown '--' argument while calling 'expr' from BusyBox
- a patch will be suggested to the BusyBox mailing list to skip the
  'end of options' marker according to POSIX specifications, if it's
  the first argument to 'expr'

- this problem may be solved with additional parentheses around the
  regexp match, too - this way the string with unknown contents as
  arg1 can't be misinterpreted as an option
Failed to load latest commit information.
addons add a new Shell-in-a-Box image with a GPG signature as first add-on p… May 15, 2017
autoupdate rename installed image, if all work was done Nov 17, 2016
avm_kernel_config Atom plugin wants 'vim' as marker and it doesn't matter for 'vi' Jun 4, 2017
bootmanager new bootmanager script (used by modfs), changes needed by new archite… May 15, 2017
customconfig did fail with tffs major ids < 100 Aug 16, 2017
encryption Atom plugin wants 'vim' as marker and it doesn't matter for 'vi' Jun 4, 2017
eva_tools they'll never learn ... Aug 5, 2017
export one more mistake, which was really hard to track Sep 28, 2016
first_aid add description for new image May 25, 2017
helpers switch references to the new 'scriptlib' directory Apr 30, 2017
luavar add another example in Lua to control a VPN connection Jun 15, 2016
reported_threats typos Jun 4, 2017
scriptlib workaround for unknown '--' argument while calling 'expr' from BusyBox Sep 19, 2017
signimage change temp file-name creation a little bit Aug 14, 2017
squashfs destination directory will be removed from devices file Aug 22, 2017
tffs use STDIN for 'decode_secrets', if anybody uses the new SHELL script … Sep 15, 2017
toolbox did fail with tffs major ids < 100 Aug 16, 2017
tools 'if/else' was shortened Aug 14, 2017
update_yaffs2 changed formatting to use tabs instead of blanks May 1, 2016
.gitattributes .tar files are binary content Jun 15, 2016
LICENSE clarify license by adding the GPLv2 text May 10, 2017
PeterPawn.asc add PGP public key to verify binary packages in the future Apr 17, 2016
README.md there was a forgotten change to test a special case Jun 23, 2016
mitmproxy-ca.pem change inclusion of library files to a more general solution Nov 18, 2016



The final target of this project is to provide a really dynamic package management for SOHO/consumer IADs built by well-known vendor (at least known in Germany) AVM from Berlin.

These devices integrate various functions into a single device and - even due to grant-aided sales over some bigger providers in Germany - they're used widely in many (non-professional) installations in Germany (some sources speak about a market share of 50-60 percent here), Austria and Switzerland.

Maybe there's a little active community using FRITZ!Box devices in Australia too ... sometimes you may find some (mostly older) bulletin board conversations from this country regarding AVM routers.

The firmware for these devices is built on-top of Linux with many proprietary components. AVM states, they would publish a package with the open source files used to build their system, but since they switched to kernel version 3.10.73, these source packages are very incomplete (at least I think, they are ... I'm unable to compile a running kernel from these sources and I'm not the only one with such problems).

This repository contains (yet) some smaller shell scripts and files supporting their use ... it's growing and each new script is created with the intention to support the future target - they are the building blocks, which will be put together sometime in the future to form a single integrated solution.

Currently I'm the only one working on this project, any fellows are very welcome.

The modfs project is a spin-off from this (earlier) project, it's a solution to change the firmware supplied by the vendor on the FRITZ!Box device itself without the needs to use an own Linux installation with a complete toolchain built by the Freetz project. It's only a command line based solution, created from some proof-of-concept shell scripts, but it got some attention since it's a really simple solution to customize the stock firmware for your own needs. Because it may be used to create incremental changes and it contains a "boot manager" solution to switch a FRITZ!Box router between two different systems, each installed in its own partitions in the NAND flash of modern devices, there's little or no risk to damage the router and even the risk to be forced to recover such a device is practically non-existant.

Why should anybody need such a solution?

Because most users of FRITZ!OS devices are missing only an OpenVPN server/client and a SSH server for secure access to the command shell of the devices, these packages are (according to my experiences in the support forum for the Freetz project from the IPPF BBS - www.ip-phone-forum.de) the most used extensions to the stock firmware and a solution providing these additions as modular packages could save many people from the needs to make further changes to their devices, as the use of a "full-blown" Freetz image would do. Meanwhile the extensive changes made by the vendor to the GUI of the devices (it's now a "responsive design" :-)) renders some important Freetz packages useless and while Freetz is a really big solution, changing many aspects of the system and containing an own GUI (even if it's rather old and - meanwhile - unsecure compared with the stock firmware), some users want only smaller changes and prefer a solution, which can make them more "under the hood" without interferences with the original firmware.

It's not possible to implement the final solution in one fell swoop ... but the building blocks are growing step by step and meanwhile I think, we should be able to test the first integrated version during this year.