A standalone script to generate product.inf and product.infz files for ATAK update servers. These files tell ATAK clients what plugins and apps are available for download.
This script scans a folder containing APK files and generates:
product.inf- A CSV file containing package metadataproduct.infz- A ZIP file containingproduct.infand icon PNG files
These files are required for ATAK to recognize and download updates from your TAK server.
- Node.js (v14 or higher) - Download here
- APK files in a folder
- Go to the Releases page
- Download the latest release archive (
.tar.gzfor Linux,.zipfor Windows) - Extract the archive
- Open a terminal/command prompt in the extracted
tak-update-builderfolder - Run:
npm install
Linux users: After installation, make the shell script executable:
chmod +x build-update.sh-
Clone this repository:
git clone https://github.com/mjthree/takserverupdate.git cd takserverupdate/tak-update-builder -
Run:
npm install
Linux users: After installation, make the shell script executable:
chmod +x build-update.shOption 1: Using the batch file
- Navigate to the
tak-update-builderfolder - Double-click
build-update.bator run it from command prompt - Or specify a folder:
build-update.bat "C:\path\to\apk\folder"
Option 2: Using Node.js directly
cd tak-update-builder
node build-update.js [folder_path]Option 1: Using the shell script
-
Navigate to the
tak-update-builderfolder -
Important: Before first use, make the script executable:
chmod +x build-update.sh
-
Run the script:
./build-update.sh [folder_path]
Or specify a folder:
./build-update.sh /path/to/apk/folder
Option 2: Using Node.js directly
cd tak-update-builder
node build-update.js [folder_path]Note: If no folder is specified, it will use the current directory.
After running the script, you need to copy all files to your TAK server:
- Copy all APK files to
/opt/tak/webcontent/update/on your TAK server - Copy
product.infzto/opt/tak/webcontent/update/product.infzon your TAK server - Copy
product.infto/opt/tak/webcontent/update/product.infon your TAK server (optional, for reference)
# Copy APK files
scp *.apk user@tak-server:/opt/tak/webcontent/update/
# Copy generated files
scp product.infz user@tak-server:/opt/tak/webcontent/update/
scp product.inf user@tak-server:/opt/tak/webcontent/update/Or if you have direct access to the server:
# On your local machine, after running the script:
cp *.apk /opt/tak/webcontent/update/
cp product.infz /opt/tak/webcontent/update/
cp product.inf /opt/tak/webcontent/update/# Ensure files are readable by the web server
chmod 644 /opt/tak/webcontent/update/*.apk
chmod 644 /opt/tak/webcontent/update/product.inf*After deploying the files to your TAK server, configure ATAK clients to use the update server:
-
Open ATAK on your device
-
Go to Settings → Tool Preferences → Package Management → Gear Icon
-
Enable Update Server
-
Enter the update server URL:
https://serverip:8443/updateReplace
serveripwith your TAK server's IP address or hostname. -
Save the settings
The ATAK client will now check this URL for available plugins and apps. It will download product.infz from this location to see what's available.
Note: The update server URL must use HTTPS. If your TAK server is set up normally, it will be accessible at https://serverip:8443/update.
- Scans the specified folder for
.apkfiles - Extracts metadata from each APK:
- Package name (app ID)
- Display name
- Version information
- Description
- Icon
- File hash (SHA256)
- File size
- Determines package type (app, plugin, or systemplugin)
- Generates the
product.infCSV file - Creates a ZIP file (
product.infz) with the CSV and all icons
1. Prepare your APK files in a folder:
C:\APKs\
├── ATAK-5.4.0.14-f7d8f588-civ-release.apk
├── ATAK-Plugin-datasync-3.5.27.apk
└── ...
2. Navigate to tak-update-builder folder and run:
build-update.bat C:\APKs
3. Output files are created:
C:\APKs\
├── product.inf
├── product.infz
└── (all your APK files)
4. Copy everything to TAK server:
/opt/tak/webcontent/update/
├── product.infz
├── product.inf
└── (all your APK files)
1. Prepare your APK files in a folder:
/home/user/apks/
├── ATAK-5.4.0.14-f7d8f588-civ-release.apk
├── ATAK-Plugin-datasync-3.5.27.apk
└── ...
2. Navigate to tak-update-builder folder and run:
./build-update.sh /home/user/apks
3. Output files are created:
/home/user/apks/
├── product.inf
├── product.infz
└── (all your APK files)
4. Copy everything to TAK server:
/opt/tak/webcontent/update/
├── product.infz
├── product.inf
└── (all your APK files)
- The script uses the APK manifest's
versionCode(integer version code) for proper version comparison - Package types are automatically detected based on app ID patterns
- Icons are extracted from APK files and included in the ZIP
- If an APK cannot be processed, it will be skipped with an error message
- The
product.infzfile must be accessible via HTTP/HTTPS from your TAK server's web content directory - On Linux, ensure the shell script has execute permissions:
chmod +x build-update.sh