If you like BoxMatrix then please contribute Supportdata, Supportdata2, Firmware and/or Hardware (get in touch).
My metamonk@yahoo.com is not reachable by me since years. Please use hippie2000@webnmail.de instead.

0
U

Property:assetsd (avmcmd)

From BoxMatrix


BoxMatrix >> Shell-Commands >> assetsd (avmcmd) @ BoxMatrix   -   IRC-Chat   -   Translate: de es fr it nl pl
News Selectors Models Accessories Components Environment Config Commands System Webif Software Develop Lexicon Community Project Media

Startup-Scr Hotplug-Scr BusyBox-Cmds Bash-Cmds AVM-Cmds Chipset-Cmds Linux-Cmds Shared-Libs Kernel-Mods Research

Info
  
Name-Collision - multiple objects in this wiki use the name assetsd!
assetsd (avmcmd) Asset-Bundles package-management daemon.
assetsd (process) Assets-Bundles management daemon.
assetsd (watchdog) Assets-Bundles management daemon.

AVM-Command

Goto:   Endpoints  -  Source  -  Dependencies   -   Model-Matrix   -   Symbols   -   SMW-Browser

Details

This is research in progress and may be partially or completely wrong.

assetsd is the new AVM Asset-Bundles package-management daemon.
It can install / activate / update / remove software packages which AVM calls Asset-Bundles.

Assets come from the AVM-Cloud and are installed on Internal-Storage or USB-Storage.
They are signed by AVM so there's no risk to execute malware from these storage locations.

Background: The first package AVM ever installed persistent was FHEM in 7390 fw 5.04 - 6.06.
It was delivered as a pseudo Firmware-Update image and installed FHEM and Perl on Internal-Storage.
This project was canceled since the installed files were executed unsigned and offered the
security risk to be replaced by malware.

AVM learned from the past. Assets are gzip compressed tar archives which contain an asset_bundle.mf manifest.
This manifest stores type_id, content_version and the list of each contained file.
asset_bundle.sign contains the signatures.

Execution of an installed bundle requires activation by AVM's API server, which could be temporary or persistent.
Activations are renewed periodically during the update check, allowing AVM to disable bundles if security holes were found.
All activations are per content_version so they could be rejected selectively.

Like all modern AVM-Cloud services the assets manager API uses OAuth 2,0 protected single-sign-on.
Downloads of Asset-Bundles are also OAuth protected and are performed by the new webget command.
All communication uses HTTPS and the avm_root_ca.pem reference certificate stored in the firmware.

This all seems to be a good security concept.

Endpoints

aicmd endpoint(s) provided by assetsd, with these functions: (fw 7.90)

root@fritz:/var/mod/root# aicmd assetsd

# provided by assetsd: - fw 7.90+

HELP                                     - show help
SLABDUMP                                 - show slab allocation
SLABSHOW                                 - show slab information
QUIT                                     - disconnect
 
# provided by libewnwlinux.so: - fw 7.01+

ewnwlinux show csockshell                - show shells running
ewnwlinux show genetlink                 - show gerneric netlink families

# provided by libewnwlinux.so: - fw 7.90+

ewnwlinux netlink show                   - show internal information
ewnwlinux netlink getroute [address]     - get route for inet address
ewnwlinux netlink interfaces             - show interfaces
ewnwlinux netlink routes [ 4 | 6 ]       - show routes

# provided by libavmcsock.so: - fw 7.01+

avmcsock show csock                      - show all csock
avmcsock show dnsconfig                  - show all dns context
avmcsock show timercb                    - show all timer
avmcsock show debughandles               - show all debughandles
avmcsock show cprocess                   - show all processes
avmcsock set debug                       - set debug flags

# provided by libavmcsock.so: - fw 7.29+

avmcsock show cbcontext                  - show all cbdata
avmcsock show daemon                     - show daemon status
avmcsock show cbuf                       - show cbuf status

# provided by libavmcsock.so: - fw 7.39+

avmcsock getsymbol <address>             - get symbol for address
avmcsock show dnsglobal                  - show all dns global values
avmcsock show dnscache                   - show cache
avmcsock show dnsqueries                 - show all pending queries
avmcsock show avmipc [endpoint shmatch]  - show avmipc events and states
avmcsock ctimer show                     - show all timer
avmcsock ctimer overview                 - show ctimer overview
avmcsock iotrace format unctrl|hexdump   - set format for csock iotrace
avmcsock iotrace file                    - enable iotrace to file
avmcsock iotrace enable                  - enable iotrace via debugmsg
avmcsock iotrace disable                 - disable iotrace
avmcsock iotrace match help|<match>      - show allowed matches or set match
avmcsock iotrace reset                   - remove all matches
avmcsock iotrace show                    - show configuration

# provided by libavmcsock.so: - fw 7.90+

avmcsock show signals                    - show signal handler
avmcsock show connector [cache|stats]    - show connector information
avmcsock show clogger                    - show clogger information
avmcsock set clogmod [ <module> [ '.' <submodule ] ... ] [ '=' <level> ]
                                         - set clogmod log level
avmcsock slab check                      - red zone/free check
avmcsock slab reap [heavy]               - call slab_reap/slab_reap_heavy
avmcsock slab dump [long]                - show slab allocation
avmcsock slab show                       - show slab information
avmcsock slab ewma [show|activate|deactivate|reset]
                                         - show average allocates/freed per second
avmcsock avmipc notifier [endpoint shmatch]
                                         - show registered notifier
avmcsock avmipc set [endpoint shmatch]   - show states/events sent
avmcsock avmipc csv [endpoint shmatch]   - show states/events sent and listing as csv

Source

The names of source files compiled into an executable often help to understand function blocks (and show gaps in the docs).
fw 7.90 source files:

$ strings /sbin/assetsd | grep -e '\.c$' -e '\.cpp$'

ar7/assetsd/asset_bundle_manager.cpp  

Dependencies

Daily updated index of all dependencies of this command. Last update: 2024-04-30 07:18 GMT.
A * in the Mod column marks info from Supportdata-Probes, which will always stay incomplete.

Relation Typ Object Mod Firmware Info Origin
Started by serv assetsd.service 12 7.90 supervisor service for assetsd. AVM
Runs as proc assetsd (process) 1* 7.90 Asset-Bundles package-management daemon. AVM
Registers wdog assetsd (watchdog) 1* 7.90 Asset-Bundles package-management daemon. AVM
Serving sock me_LIBOAUTH_IPC_($pid).ctl 15* 7.24 - 7.90 avmipc endpoint of dect_manager, cloudmsgd, device_updatecheck AVM
Serving sock me_asset_bundle_api_server.ctl 1* 7.90 avmipc endpoint of assetsd AVM
Serving sock me_assetsd.ctl 1* 7.90 avmipc_command endpoint of assetsd AVM
Depends on lib ld.so 3 7.90 Dynamic linker / loader Linux
Depends on lib libar7cfg.so 12 7.90 TFFS-Configuration API to ar7.cfg and many more. AVM
Depends on lib libasset_bundle.so 12 7.90 Asset-Bundles helper functions AVM
Depends on lib libavmauth.so 12 7.90 Fritzbox authentification helpers AVM
Depends on lib libavmcipher.so 12 7.90 AES / DES / Rijndael encryption / decryption. AVM
Depends on lib libavmcsock.so 12 7.90 Networking, I/O and helper functions AVM
Depends on lib libavmfbstate.so 12 7.90 IPC fritzbox state notification AVM
Depends on lib libavmhmac.so 12 7.90 HMAC / SHA / MD5 hashing. AVM
Depends on lib libavmwdt.so 12 7.90 AVM-Watchdogs management API AVM
Depends on lib libboxenv.so 12 7.90 API to the rc.conf enhanced Config-Environment AVM
Depends on lib libboxlib.so 12 7.90 Box status, logging and statistics functions AVM
Depends on lib libc.so 12 7.90 Standard C library Linux
Depends on lib libcore.so 12 7.90 Collects the MAC addresses of the device it's running on AVM
Depends on lib libcrypto.so 12 7.90 OpenSSL general crypto and X.509 library Linux
Depends on lib libdl.so 7 7.90 Dynamic linking library Linux
Depends on lib libdputil.so 12 7.90 DataPipe / packet utilities AVM
Depends on lib libewnwjson.so 12 7.90 JSON helper functions AVM
Depends on lib libewnwlinux.so 12 7.90 Linux networking functions AVM
Depends on lib libewnwnet.so 12 7.90 Internet helper functions AVM
Depends on lib libfbconf.so 12 7.90 API to hardcoded fbconf.cfg AVM
Depends on lib libgcc_s.so 12 7.90 GCC low-level runtime library Linux
Depends on lib libjuisclient.so 12 7.90 Update-Search - second generation - JUIS AVM
Depends on lib liblocalize.so 12 7.90 Charset conversion helper functions AVM
Depends on lib libm.so 7 7.90 C math library Linux
Depends on lib liboauth2.so 12 7.90 OAuth v2.0 authentificator Linux
Depends on lib libpthread.so 7 7.90 POSIX threading library Linux
Depends on lib librt.so 7 7.90 POSIX realtime extensions library Linux
Depends on lib libslab_c++.so 12 7.90 C++ slab allocator AVM
Depends on lib libstdc++.so 12 7.90 GNU C++ library Linux
Depends on lib libsvctl.so 12 7.90 supervisor notification library AVM
Depends on lib libtiinterpreter.so 12 7.90 Preprocessor for SSI-Files by TI. AVM
Depends on lib libwebkpiclient.so 12 7.90 KPI sensor for system parts which use HTTP / HTTPS AVM
Depends on lib libwebsrv.so 12 7.90 HTTP / HTTPS webserver and tools. AVM
Depends on lib libyajl.so 12 7.90 Event-driven JSON parser Linux
Depends on lib libz.so 12 7.90 Zlib compressor / decompressor Linux
41 dependencies for this command

Model-Matrix

Daily updated index of the presence, path and size of this command for each model. Last update: 2024-04-30 05:04 GMT.
Showing all models using this command. Click any column header (click-wait-click) to sort the list by the respective data.
The (main/scrpn/boot/arm/prx/atom) label in the Model column shows which CPU is meant for models with multiple Linux instances.
Note that this list is merged from Firmware-Probes of all known AVM firmware for a model, including Recovery.exe and Labor-Files.

Model Firmware Path Size
FRITZ!Box 5590 Fiber (arm) 7.90 /sbin 54.0k
FRITZ!Box 6591 Cable (arm) 7.90 /sbin 62.1k
FRITZ!Box 6591 Cable (atom) 7.90 /sbin 62.1k
FRITZ!Box 6660 Cable (arm) 7.90 /sbin 62.1k
FRITZ!Box 6660 Cable (atom) 7.90 /sbin 62.1k
FRITZ!Box 6690 Cable (arm) 7.90 /sbin 62.1k
FRITZ!Box 6690 Cable (atom) 7.90 /sbin 62.1k
FRITZ!Box 6850 LTE 7.90 /sbin 54.0k
FRITZ!Box 6850 5G 7.90 /sbin 54.0k
FRITZ!Box 7530 AX 7.90 /sbin 50.0k - 54.0k
FRITZ!Box 7590 7.90 /sbin 65.1k - 69.3k
FRITZ!Box 7590 AX 7.90 /sbin 65.1k - 69.3k
12 models use this command

Symbols

Daily updated index of all symbols of this command. Last update: 2024-04-30 07:18 GMT.

Firmware Symbol
7.90 asset_bundle_manager_exit
7.90 asset_bundle_manager_init
7.90 asset_bundle_manager_reconfig
7.90 main
4 symbols for this command

SMW-Browser

Information is currently being retrieved from the backend.