App Feature Library & Firmware Download

Download the latest OAF app feature library for your OpenWrt router.

App Feature Library

This is some app feature library I extracted, which can be used as a reference. You can modify it based on this feature library.

Last updated: 2025/07/03

Download

OpenWrt Firmware (Support OAF)

You can download and install the latest OpenWrt firmware, and then install the OAF plug-in directly. Visit the GitHub project for more details.

Download(OpenWrt24.10.2)

Custom Feature Library Tutorial

Learn how to create and customize your own app feature library

Step 1: Extract Feature Library Files

It is recommended to perform extraction and packaging operations under Linux system to avoid file format compatibility issues that may be caused by Windows system.

mkdir feature
tar -zxvf feature-xxx.tar.gz -C feature

Step 2: Modify Feature Library Files

The feature description file is feature/feature.cfg. You can add APP descriptions in this file.

Format:
$id $name:[$proto;$sport;$dport;$host url;$request;$dict]
  • $id: Unique APP ID (thousands digit indicates type, rest indicates category ID)
  • $name: APP name (e.g., facebook, whatsapp)
  • $proto: Protocol type (tcp/udp)
  • $sport: Source port
  • $dport: Destination port (e.g., 80, 443), supports range notation like 10000-20000
  • $host url: Request host, supports http and https (https uses SNI)
  • $request: Request content, for http protocol, can set URI like /api/v1/xxx
  • $dict: Dictionary content for L7 protocol, hexadecimal format like 00:02|01:03
Common App Reference Features:

Generally, we can block apps through domain names. Below are reference features for common apps:

Chat Apps
#class chat 1 Chat
1101 Facebook:[tcp;;;facebook.com;;]
1102 Whatsapp:[tcp;;;whatsapp;;]
1103 X:[tcp;;;twitter.com;;]
1104 Instagram:[tcp;;;instagram.com;;]
1105 VK:[tcp;;;vk.com;;]
1106 Line:[tcp;;;line;;]
1107 Snapchat:[tcp;;;snapchat.com;;]
1108 Tinder:[tcp;;;tinder.com;;]
Video Apps
#class video 3 Video
3101 YouTube:[tcp;;;youtube;;]
3102 Tiktok:[tcp;;;tiktok;;]
3103 NetFlix:[tcp;;;netflix;;]
3104 Vimeo:[tcp;;;vimeo;;]
3105 DailyMotion:[tcp;;;dailymotion;;]
3106 Hulu:[tcp;;;hulu;;]
3108 Twitch:[tcp;;;twitch;;]
3109 Spotify:[tcp;;;spotify.com;;]
Shopping Apps
#class shopping 4 Shopping
4101 Amazon:[tcp;;;amazon.com;;]
4102 eBay:[tcp;;;ebay.com;;]
4103 Etsy:[tcp;;;etsy.com;;]
4104 Wish:[tcp;;;wish.com;;]
Advanced Protocol Features:

Some apps may not be successfully matched and filtered through domain names. For example, Instagram also uses QUIC protocol internally. We can add filtering through protocol features.

QUIC Protocol Example:
5001 QUIC:[udp;;443;;;]
Game Protocol Example:

Some game apps may have private protocols, usually using UDP. We can match through L7 dictionary. Assuming a game's port is 10000, and the L7 payload header has fixed first 4 bytes: 0x1a 0x2b 0x3c 0x4d

2001 Game:[udp;;10000;;;00:1a|02:2b|03:3c|04:4d]
Port Range Blocking:

If we don't care about specific games, we can use port range blocking. For example, block UDP ports 10000-20000:

2002 Games:[udp;;10000-20000;;;]

In summary, protocol feature description is very flexible. Define according to your needs.

App Icons: If you add a new app, you can also add an icon for the app. Name it ${appid}.png and place it in the feature/app_icons directory.

Step 3: Repackage Feature Library Files

After modification, we need to repackage the feature library for page upgrade. Use tar command directly. Note that feature.cfg file should be in the root directory:

tar -zcvf feature-xxx.tar.gz -C feature .

This will generate a new custom feature library file feature-xxx.tar.gz that can be uploaded and upgraded in the App Feature page.