mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-14 20:48:17 +08:00
⛅ Sync 2026-10-11 13:16:00
This commit is contained in:
1 parent
705dadd362
commit
e6d1b4e2d7
105 files changed
+26511
-50
No files matched your search
@@ -0,0 +1,25 @@
|
||||
# Device identification
|
||||
|
||||
Identification is a display hint, not an authenticated fingerprint. A saved
|
||||
manual device type takes precedence. Specific hostname or custom-name clues
|
||||
come next, followed by a small set of vendor hints and the default group.
|
||||
Names and types never affect routing, firewall rules or DHCP configuration.
|
||||
|
||||
Short English words require token boundaries. A generic `switch` means a
|
||||
network switch; `nintendo-switch` means a console. `gateway` means a router,
|
||||
and `Cambridge-PC` means a computer. Chinese device keywords are also accepted.
|
||||
|
||||
The previous broad OUI tables had no recorded provenance. They were replaced
|
||||
with the 13 documented entries in `oui-hints.json`. Manufacturer assignments
|
||||
were checked against the Wireshark project's automatically generated
|
||||
[manufacturer data](https://www.wireshark.org/download/automated/data/manuf.gz),
|
||||
which incorporates IEEE registration data. The verification source checksum
|
||||
is recorded with the entries. Only assignment facts are retained; the complete
|
||||
database is not bundled.
|
||||
|
||||
A manufacturer assignment identifies an organization, not a product. Apple,
|
||||
Google, HP and other vendors with diverse products therefore have no automatic
|
||||
device type hint. Ubiquiti and H3C use the general network-device category;
|
||||
Espressif and Lumi use the general smart-home category. These remain guesses,
|
||||
and users can override them. Locally administered or randomized MAC addresses
|
||||
never use vendor hints. Hostname and manual identification still work for them.
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"source": "https://www.wireshark.org/download/automated/data/manuf.gz",
|
||||
"verified_on": "2026-10-10",
|
||||
"decompressed_source_sha256": "d542945307e2ab7c11f70c741f41f4a55585088b05da139fe5583154cb60ccc1",
|
||||
"entries": {
|
||||
"001132": {
|
||||
"organization": "Synology Incorporated",
|
||||
"type_hint": "nas"
|
||||
},
|
||||
"4CFCAA": {
|
||||
"organization": "Tesla,Inc.",
|
||||
"type_hint": "car"
|
||||
},
|
||||
"2C2617": {
|
||||
"organization": "Oculus VR, LLC",
|
||||
"type_hint": "vr"
|
||||
},
|
||||
"1012FB": {
|
||||
"organization": "Hangzhou Hikvision Digital Technology Co.,Ltd.",
|
||||
"type_hint": "camera"
|
||||
},
|
||||
"0009BF": {
|
||||
"organization": "Nintendo Co., Ltd.",
|
||||
"type_hint": "game"
|
||||
},
|
||||
"000E58": {
|
||||
"organization": "Sonos, Inc.",
|
||||
"type_hint": "speaker"
|
||||
},
|
||||
"001788": {
|
||||
"organization": "Philips Lighting BV",
|
||||
"type_hint": "light"
|
||||
},
|
||||
"18FE34": {
|
||||
"organization": "Espressif Inc.",
|
||||
"type_hint": "home"
|
||||
},
|
||||
"54EF44": {
|
||||
"organization": "Lumi United Technology Co., Ltd",
|
||||
"type_hint": "home"
|
||||
},
|
||||
"00156D": {
|
||||
"organization": "Ubiquiti Inc",
|
||||
"type_hint": "network"
|
||||
},
|
||||
"000FE2": {
|
||||
"organization": "Hangzhou H3C Technologies Co., Limited",
|
||||
"type_hint": "network"
|
||||
},
|
||||
"000C42": {
|
||||
"organization": "Routerboard.com",
|
||||
"type_hint": "router"
|
||||
},
|
||||
"B827EB": {
|
||||
"organization": "Raspberry Pi Foundation",
|
||||
"type_hint": "computer"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
# Upstream submission
|
||||
|
||||
Target: `openwrt/luci`, branch `master`, directory
|
||||
`applications/luci-app-device-manager/`.
|
||||
|
||||
The independent repository retains development tests, SDK build workflows and
|
||||
SSH deployment tooling. They are not copied to the upstream repository root.
|
||||
The configuration initializer lives under `tools/` for source deployments;
|
||||
packages ship `/etc/config/device_manager` directly. The exported README uses
|
||||
official-feed installation commands, while standalone build instructions stay
|
||||
in the independent repository.
|
||||
Export reviewed package files into a fresh LuCI feature branch:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/openwrt/luci.git /tmp/luci-device-manager-upstream
|
||||
git -C /tmp/luci-device-manager-upstream switch -c add-device-manager
|
||||
git -C /tmp/luci-device-manager-upstream config user.name "zhiyong zhang"
|
||||
git -C /tmp/luci-device-manager-upstream config user.email "zhang747@126.com"
|
||||
python3 -B tools/prepare-upstream.py /tmp/luci-device-manager-upstream
|
||||
git -C /tmp/luci-device-manager-upstream diff --check
|
||||
```
|
||||
|
||||
The exporter refuses an existing application directory and does not change
|
||||
Git history, commit or push. It uses the standard relative `luci.mk` include
|
||||
and exports only package sources, PO files, licenses and package documentation.
|
||||
|
||||
Suggested commit title:
|
||||
|
||||
```text
|
||||
luci-app-device-manager: add LAN device management
|
||||
```
|
||||
|
||||
Suggested commit body:
|
||||
|
||||
```text
|
||||
Add a JavaScript LuCI view for LAN device discovery and metadata management.
|
||||
Combine host hints, DHCP leases, wireless associations and kernel neighbors.
|
||||
Save names, remarks, groups and manual type overrides by MAC address.
|
||||
|
||||
Unlike the existing host list, this application maintains custom device
|
||||
metadata and groups, including saved devices that are currently offline.
|
||||
|
||||
Keep ordinary refreshes passive. Provide an explicit write-authorized scan
|
||||
limited to configured netifd interfaces and their actual IPv4 prefixes.
|
||||
Bound concurrent probes, scan duration and the shared scan cooldown.
|
||||
|
||||
Use native LuCI message extraction and separately built translation packages.
|
||||
Include pinned Material Design Icons attribution and Apache-2.0 notices.
|
||||
|
||||
Signed-off-by: zhiyong zhang <zhang747@126.com>
|
||||
```
|
||||
|
||||
Submission commits use `zhiyong zhang <zhang747@126.com>` for the author,
|
||||
committer and Signed-off-by identity. Configure this identity locally in the
|
||||
LuCI checkout before committing, as shown above. Existing contributor
|
||||
attribution must be preserved; these tools do not rewrite historical commits.
|
||||
|
||||
Suggested PR description:
|
||||
|
||||
```text
|
||||
Add a LAN device manager with MAC-keyed custom names, remarks, groups and
|
||||
manual device types. Discovery combines native LuCI host/lease/wireless RPCs
|
||||
with kernel neighbor data and distinguishes online, offline and unknown.
|
||||
|
||||
Refresh is passive. An explicit Scan LAN operation requires write permission
|
||||
and scopes ICMP probes to configured netifd interfaces and actual prefixes.
|
||||
Chinese translations are built by luci.mk; other languages use native LuCI
|
||||
catalogues and English fallback.
|
||||
|
||||
Validation:
|
||||
- 100 Node and 8 Python regression tests passed.
|
||||
- 33 RPC regressions passed with SDK-native jshn and isolated network inputs.
|
||||
- Official LuCI message extraction, gettext checks and ESLint passed.
|
||||
- Built main and Chinese language APKs in the official x86/64 SNAPSHOT SDK.
|
||||
- Verified official SNAPSHOT and 24.10.4 BusyBox ip/flock compatibility;
|
||||
33 RPC regressions passed with each binary and SDK-native jshn.
|
||||
- Checked resolved dependencies without extra ip or flock packages.
|
||||
- Checked package license texts, configuration preservation metadata and LMO.
|
||||
|
||||
Real-router installation, upgrades, account enforcement, UI acceptance and
|
||||
a stable-release SDK build remain unverified.
|
||||
```
|
||||
|
||||
Review the recorded validation results before sending the PR.
|
||||
Local tests do not certify real-router or upstream acceptance.
|
||||
@@ -0,0 +1,66 @@
|
||||
# Local upstream-readiness validation
|
||||
|
||||
## PR review follow-up: 2026-10-11
|
||||
|
||||
Addressed the dependency, license installation, redundant initializer and
|
||||
in-tree README comments on OpenWrt LuCI PR #9125.
|
||||
|
||||
- Full Node regression suite: 100 passed, 0 failed, 0 skipped.
|
||||
- Python regression suite, including the exported installation instructions:
|
||||
8 passed.
|
||||
- Official LuCI ESLint, native translation extraction, gettext, shell syntax
|
||||
and whitespace checks passed.
|
||||
- Official OpenWrt BusyBox packages tested locally with the SDK musl loader:
|
||||
SNAPSHOT 1.38.0-r3 and 24.10.4 1.36.1-r3. Both support
|
||||
`ip -o -4 addr show dev lo`, `ip neigh show` and `flock -n 9`.
|
||||
The actual RPC helper parsed IPv4 and IPv6 neighbor output from both binaries.
|
||||
- The 33 shell/Ping/scan regressions passed with each official BusyBox binary,
|
||||
its flock applet and SDK-native jshn. Network probes, netifd and UCI inputs
|
||||
were isolated fixtures; no router was modified.
|
||||
- Rebuilt the main and Chinese language APKs in the x86/64 SNAPSHOT SDK.
|
||||
Main-package dependencies are libc, luci-base, rpcd-mod-iwinfo and jshn.
|
||||
ip-tiny, ip-full and util-linux flock were disabled in the SDK configuration.
|
||||
The extra license installation hook and packaged configuration initializer
|
||||
were removed; MIT and Apache-2.0 declarations and source notices remain.
|
||||
|
||||
Compatibility evidence and official binaries: /tmp/device-manager-review-compat/.
|
||||
SDK build log: /tmp/device-manager-review-sdk-build.log.
|
||||
Real-router acceptance and a stable-release SDK build remain unverified.
|
||||
|
||||
## Initial validation: 2026-10-10
|
||||
|
||||
The checks below describe the initial submission snapshot, before the PR review
|
||||
follow-up. No router was modified during that validation.
|
||||
|
||||
## Passed checks
|
||||
|
||||
- Node regression suite: 100 passed, 0 failed, 0 skipped.
|
||||
- Python regression suite: 8 passed.
|
||||
- Official LuCI master ESLint configuration: no errors or warnings.
|
||||
- Native POT extraction: 184 source messages, including menu, ACL and UI.
|
||||
- GNU gettext template/catalogue comparison and PO checks.
|
||||
- SDK-native jshn regression run: 33 passed, 0 skipped. Network and UCI inputs were isolated fixtures.
|
||||
- Workflow YAML parsing and every run block checked with bash -n.
|
||||
- Shell syntax and git diff --check.
|
||||
|
||||
## SDK package validation
|
||||
|
||||
- Official x86/64 SNAPSHOT SDK archive SHA256:
|
||||
60b7182a36d0542810e5564dcf9f7c2531bbbc74546ededcbc619b2939b72127
|
||||
- SDK base source commit: 53ec2d05a487e6011cfa096de9211d15197c501b.
|
||||
- LuCI reference commit: 36720dd716c7f7008af95c0d520edefab621adb7.
|
||||
- SDK download checksum was verified. Official GitHub mirrors were used for feeds, retaining the SDK base commit.
|
||||
- Main package and Chinese language package compiled successfully.
|
||||
- ip-tiny and ip-full dependency variants both built; each main package depends only on its selected IP implementation.
|
||||
- Unpacked the ip-tiny packages and checked executable RPC helper, configuration preservation metadata, both applicable license texts, icon attribution and absence of legacy bundled translations.
|
||||
- The language package LMO matches a fresh compilation of the current PO using SDK po2lmo.
|
||||
|
||||
Local APKs and manifest: /tmp/device-manager-built-packages/. These are local validation builds.
|
||||
The local package version uses the existing source HEAD while compiling this uncommitted working tree.
|
||||
CI builds calculate the version from the checked-out source commit; upstream builds use the LuCI feed revision.
|
||||
|
||||
## Remaining external acceptance
|
||||
|
||||
Real-router installation, upgrades, reboot persistence, account enforcement, packet captures, themes and mobile UI remain to be checked using the README acceptance steps.
|
||||
GitHub Actions was validated locally but has not been triggered remotely.
|
||||
Stable-release SDK/IPK builds have not been rerun in this validation.
|
||||
Reference in new issue
Block a user