@kromatv/installer 0.0.0-stage → 0.1.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +91 -2
  3. package/cli.js +12597 -0
  4. package/package.json +38 -4
package/README.md CHANGED
@@ -1,3 +1,92 @@
1
- # Temporary Holding Version
1
+ # @kromatv/installer
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Install [KROMA](https://kroma.tv) on the TVs on your network, from a Mac or a
4
+ Linux computer:
5
+
6
+ ```bash
7
+ npx @kromatv/installer
8
+ ```
9
+
10
+ The command finds the Samsung, LG and Android TV sets on your network, downloads
11
+ the KROMA app for each one from the
12
+ [latest release](https://github.com/kromatv/kroma/releases/latest), and installs
13
+ it on the sets you choose. Run it again to update KROMA.
14
+
15
+ ## Before you begin
16
+
17
+ - [Node.js](https://nodejs.org) 22 or later, on macOS or Linux.
18
+ - The computer and the TV on the same network.
19
+ - One step on the TV itself. It is done once, and no tool can do it over the
20
+ network:
21
+
22
+ | TV | What to do once | Guide |
23
+ | --- | --- | --- |
24
+ | Samsung | Turn on developer mode, and create a Samsung certificate for the TV with Tizen Studio | [Samsung TV](https://kroma.tv/docs/samsung-tv) |
25
+ | LG | Install the Dev Mode app, turn on Dev Mode and its key server | [LG TV](https://kroma.tv/docs/lg-tv) |
26
+ | Android TV, Google TV | Turn on network debugging in the developer options | [Android TV](https://kroma.tv/docs/android-tv) |
27
+ | Apple TV | Nothing to do here: KROMA for Apple TV comes from TestFlight | [Apple TV](https://kroma.tv/docs/apple-tv) |
28
+
29
+ ## What it puts on your computer
30
+
31
+ - For a Samsung TV, nothing. The installer signs the app with your Samsung
32
+ certificate and sends it to the TV itself.
33
+ - For an LG TV, LG's command-line tools, installed with npm into
34
+ `~/.kroma/tools`.
35
+ - For an Android TV, Google's `adb`, downloaded into `~/.kroma/tools`. An
36
+ Android SDK you already have is used instead.
37
+ - The KROMA apps it downloads, in `~/.kroma/downloads`. Each download is
38
+ checked against the SHA-256 that the release lists.
39
+
40
+ ## Commands
41
+
42
+ <!-- usage:start -->
43
+
44
+ | command | what it does |
45
+ | --- | --- |
46
+ | `npx @kromatv/installer` | Find the televisions on this network and put KROMA on them. With no command it opens the picker. |
47
+ | `npx @kromatv/installer scan` | List what answered and stop, the picker without the picking. |
48
+ | `npx @kromatv/installer install <target>` | Put KROMA on one set, or on all of them, without the picker. |
49
+ | `npx @kromatv/installer probe <host>` | Ask a Samsung set what it is over sdb, installing nothing. |
50
+ | `npx @kromatv/installer certificate` | Generate a Samsung author certificate and the profile the tools sign with. |
51
+ | `npx @kromatv/installer tools <platform>` | Install the toolchain a platform needs, which the picker does on its own. |
52
+ | `npx @kromatv/installer doctor` | Show which toolchains this computer already has. |
53
+
54
+ | option | what it does |
55
+ | --- | --- |
56
+ | `--host <ip>` | Probe this address instead of sweeping the network, repeatable |
57
+ | `--package <path>` | The .wgt, .ipk, .apk or .app to install, instead of the newest built here |
58
+ | `--source <local\|stable\|canary\|build>` | Where the package comes from, instead of the newest build in this checkout |
59
+ | `--launch`, `--no-launch` | Start the app once it is installed |
60
+ | `--json` | Print what answered as JSON |
61
+
62
+ <!-- usage:end -->
63
+
64
+ `--source canary` installs the newest development build instead of the latest
65
+ release.
66
+
67
+ ## Troubleshooting
68
+
69
+ ### The scan finds no TV
70
+
71
+ On macOS, the terminal needs the **Local Network** permission: **System
72
+ Settings** > **Privacy & Security** > **Local Network**. Without it, every
73
+ connection fails and the scan finds nothing.
74
+
75
+ A TV also stays hidden until its one-time step is done: an LG without the Dev
76
+ Mode app running and an Android TV without network debugging do not answer.
77
+
78
+ ### A Samsung TV refuses the certificate
79
+
80
+ The app must be signed with a certificate that Samsung issued for that TV. See
81
+ [Create a certificate for your TV](https://kroma.tv/docs/samsung-tv#create-a-certificate-for-your-tv).
82
+ The error message gives the ID of the TV, called a DUID, to put in the
83
+ certificate.
84
+
85
+ ### `GitHub did not list the stable release`
86
+
87
+ The computer has no connection to GitHub, or it has used the 60 requests that
88
+ GitHub allows each hour without an account. Wait, or download the app from
89
+ [kroma.tv/download](https://kroma.tv/download) and pass it with `--package`.
90
+
91
+ More answers are in the
92
+ [package notes](https://github.com/kromatv/kroma/tree/main/packages/tv-installer#when-it-goes-wrong).