small-packages/luci-app-store/root/etc/init.d/istore
2026-05-10 09:48:30 +08:00

55 lines
1.1 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
# Copyright (C) 2016 OpenWrt.org
START=45
boot() {
local ARCH=`/bin/is-opkg arch`
generate_store_id $ARCH
generate_super_arch $ARCH
}
generate_store_id() {
[ -s /etc/.app_store.id ] && return 0
local ARCH=$1
local iface HASH
for iface in eth0 br-lan; do
if [ -e /sys/class/net/$iface/address ]; then
HASH=`md5sum /sys/class/net/$iface/address | cut -d ' ' -f1`
break
fi
done
if [ -z "$HASH" ]; then
HASH=`dd if=/dev/urandom bs=512 count=1 2>/dev/null | md5sum | cut -d ' ' -f1`
fi
echo "{\"arch\":\"${ARCH}\", \"uid\":\"${HASH}\"}" > /etc/.app_store.id
}
generate_super_arch() {
local ARCH=$1
local super_arch
case "$ARCH" in
arm*)
super_arch="arm"
;;
i386)
super_arch="x86"
;;
x86_64)
super_arch="x86_64"
;;
*)
super_arch="${ARCH%%_*}"
;;
esac
local old=`uci -q get istore.istore.super_arch`
[ "$old" = "$super_arch" ] && return 0
uci -q batch <<-EOF >/dev/null
set istore.istore.super_arch=$super_arch
commit istore
EOF
}