Skip to content

Commit

Permalink
feat: nextgen (#107)
Browse files Browse the repository at this point in the history
* feat: remove updater

* feat: tizenbrew nextgen

TizenBrew Next Generation comes with a new UI and a refactored backend. The backend also has new features.

* feat: tizenbrew device manager guide
  • Loading branch information
reisxd authored Feb 3, 2025
1 parent b5bfe5e commit b1a50d8
Show file tree
Hide file tree
Showing 84 changed files with 9,835 additions and 4,774 deletions.
26 changes: 10 additions & 16 deletions .github/workflows/build-new-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV

- name: Install modules and transpile service
working-directory: tizenbrew-app/TizenBrew/service
working-directory: tizenbrew-app/TizenBrew/service-nextgen/service
run: |
sudo apt install -y expect zip coreutils
sudo curl -Lo /usr/bin/ldid https://github.com/ProcursusTeam/ldid/releases/download/v2.1.5-procursus7/ldid_linux_x86_64
Expand All @@ -30,22 +30,22 @@ jobs:
rm -r node_modules
- name: Build service
working-directory: tizenbrew-app/TizenBrew/service/transpiled
working-directory: tizenbrew-app/TizenBrew/service-nextgen/service/transpiled
run: |
ncc build service.js -o ../dist
rm -r node_modules
- name: Build UI
working-directory: tizenbrew-app/TizenBrew/tizenbrew-ui
run: |
npm install --force
npm run build
rm -r node_modules
- name: Clean up transpiled files
working-directory: tizenbrew-app/TizenBrew/service
working-directory: tizenbrew-app/TizenBrew/service-nextgen/service
run: |
rm -r transpiled
- name: Install modules and build updater service
working-directory: tizenbrew-updater/TizenBrewUpdater/service
run: |
npm install
ncc build service.js
rm -r node_modules
- name: Download Tizen-Studio
run: |
Expand Down Expand Up @@ -88,11 +88,6 @@ jobs:
run: |
wgt-to-usb release/TizenBrewStandalone-Old.wgt
- name: Package Updater for Desktop
working-directory: tizenbrew-updater/TizenBrewUpdater
run: |
pkg -C GZip . --no-bytecode --public
- name: Upload TizenBrew package artifact for Old Tizen
uses: actions/upload-artifact@v4
with:
Expand All @@ -110,4 +105,3 @@ jobs:
tag_name: ${{ env.RELEASE_VERSION }}
files: |
tizenbrew-app/TizenBrew/release/*
tizenbrew-updater/TizenBrewUpdater/dist/*
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,8 @@ node_modules
.sign
.metadata
dist
.buildResult
.buildResult
.vs
bin
obj
TizenBrewService
66 changes: 38 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,49 +1,59 @@
# 🍺 TizenBrew

<p align="center">
<img
width="700px"
src="./.github/assets/TizenBrew_Official_Banner.png">
<img width="700px" src="./.github/assets/TizenBrew_Official_Banner.png">
<br>
<sub> TizenBrew logo, banner and README by <a href="https://github.com/Zyborg777">@Zyborg777</a> </sub>
<sub> TizenBrew logo, banner and README by <a href="https://github.com/Zyborg777">@Zyborg777</a> </sub>
</p>

### Experience your favorite custom apps (such as [TizenTube](https://github.com/reisxd/TizenTube)) in a whole new way! Thanks to TizenBrew, you can install newer apps without having to deal with Tizen Studio multiple times. Just one click and you're done 🎊
### Experience your favorite custom apps (such as [TizenTube](https://github.com/reisxd/TizenTube)) in a whole new way!
Thanks to TizenBrew, you can install newer apps without having to deal with Tizen Studio multiple times. Just one click
and you're done 🎊

<p align="center">
<a href="https://discord.gg/m2P7v8Y2qR">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://reddit.com/r/TizenTube">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://www.youtube.com/@tizenbrew">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" />
</picture>
<picture>
<source height="24px" media="(prefers-color-scheme: dark)"
srcset="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" />
<img height="24px"
src="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://reddit.com/r/TizenTube">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)"
srcset="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" />
<img height="24px"
src="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://www.youtube.com/@tizenbrew">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)"
srcset="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" />
<img height="24px"
src="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" />
</picture>
</a>
</p>


# 🙌 Getting started

### You can read the [guide](./docs/README.md) down below to get started with TizenBrew ⬇️
<p align="left">
<a href="./docs/README.md">
<picture>
<source height="50px" srcset="./.github/assets/TizenBrew_Guide_Button.png" />
<img height="50px" src="./.github/assets/TizenBrew_Guide_Button.png" />
</picture>
</a>
<picture>
<source height="50px" srcset="./.github/assets/TizenBrew_Guide_Button.png" />
<img height="50px" src="./.github/assets/TizenBrew_Guide_Button.png" />
</picture>
</a>
</p>

# 💻 Making a module

You can read the [guide](./docs/MODULES.md) to make a module for TizenBrew.

# 💬 Translations

You can read the [guide](./docs/TRANSLATION.md) to translate TizenBrew into your native language.
You can read the [guide](./docs/TRANSLATION.md) to translate TizenBrew into your native language.
18 changes: 2 additions & 16 deletions docs/MODULES.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ Application modules are simply web pages without any modifications. They are not
- `appName`: The name of the module (user friendly, like "TizenTube").
- `appPath`: The path to the index.html file. (like `app/index.html`)
- `keys`: The keys that should be registered using the [TVInputDevice](https://developer.samsung.com/smarttv/develop/api-references/tizen-web-device-api-references/tvinputdevice-api.html) API.
- `serviceFile`: The main JavaScript file of the service (NodeJS).

## Site Modification Modules

Expand All @@ -21,22 +22,7 @@ Site modification modules are basically the same as application modules, but the
- `serviceFile`: The main JavaScript file of the service. Used if exists.
- `main`: The JavaScript file to be injected to the website.
- `keys`: The keys that should be registered using the [TVInputDevice](https://developer.samsung.com/smarttv/develop/api-references/tizen-web-device-api-references/tvinputdevice-api.html) API.
- `tizenAppId`: The Tizen application ID of the application that should be modified. Will be used if it exists.

## Service Modules

Service modules are ran in the background using Node.js. They can be used to interact with the TV in the background.

Service modules is also an application module, but with a special property called `serviceFile`. This property should contain the path to the main JavaScript file of the service.

The module should contain a `package.json` file with the following properties:

- `packageType`: The type of the module. Should be `service`.
- `appName`: The name of the module (user friendly, like "TizenTube").
- `serviceFile`: The main JavaScript file of the service.
- `appPath`: The path to the index.html file. (like `app/index.html`)
- `keys`: The keys that should be registered using the [TVInputDevice](https://developer.samsung.com/smarttv/develop/api-references/tizen-web-device-api-references/tvinputdevice-api.html) API.

- `serviceFile`: The main JavaScript file of the service (NodeJS).

## Examples

Expand Down
18 changes: 10 additions & 8 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,27 @@ TizenBrew is a modular system, meaning you can install new modded websites and a

To install TizenBrew, you need to have a Samsung TV (Tizen) device that has at least Tizen 3.0 (2017 or newer). There are four ways to install TizenBrew.

### Using TizenBrew Updater
### Using TizenBrew Device Manager

This method is easier than any other method and works on all Tizen versions.
This method is easier than any other method and works on all Tizen versions, unless you're on Tizen 7 or above, which you'll need to resign TizenBrew.

1. Change the Host PC IP address to your PC's IP address by following [this](https://developer.samsung.com/smarttv/develop/getting-started/using-sdk/tv-device.html#Connecting-the-TV-and-SDK)

2. Download the latest TizenBrew Updater for your OS from the [releases page](https://github.com/reisxd/TizenBrew/releases/latest).
2. Download the latest TizenBrew Device Manager for your OS from the [releases page](https://github.com/reisxd/tizenbrew-device-manager/releases/latest).

3. Run the TizenBrew Updater and follow the instructions.
3. Install / Run TizenBrew Device Manager, go into "Connect Device" page and connect to your TV.

4. Change the Host PC IP address to `127.0.0.1` by following [this](https://developer.samsung.com/smarttv/develop/getting-started/using-sdk/tv-device.html#Connecting-the-TV-and-SDK)
4. Download the latest TizenBrew widget package from the [releases page](https://github.com/reisxd/TizenBrew/releases/latest).

5. You can now launch the TizenBrew app on your TV.
5. After connecting to your TV, go into "Apps" page and click "Install App" button, select the widget package you've selected and then click "Install". You should see an alert showing the logs. The logs should say that the app has been installed now.

Note that you can't install TizenBrew to your TV if your TV is Tizen 8 (or 7) or newer (2024+ [2023+]). You'll have to resign TizenBrew to install it on newer TVs.
6. Change the Host PC IP address to `127.0.0.1` by following [this](https://developer.samsung.com/smarttv/develop/getting-started/using-sdk/tv-device.html#Connecting-the-TV-and-SDK)

7. You can now launch the TizenBrew app on your TV.

### Using TizenBrew Installer

This method is easier than the USB Demo Package method, but it works only on Tizen 3.0 to 6.0 (2017 to 2021). If you have a newer TV, use the TizenBrew Updater or the USB Demo Package method or the Command Line method.
This method is easier than the USB Demo Package method, but it works only on Tizen 3.0 to 6.0 (2017 to 2021). If you have a newer TV, use the TizenBrew Device Manager or the USB Demo Package method or the Command Line method.

1. Change the Host PC IP address to `127.0.0.1` by following [this](https://developer.samsung.com/smarttv/develop/getting-started/using-sdk/tv-device.html#Connecting-the-TV-and-SDK)

Expand Down
1 change: 1 addition & 0 deletions docs/TRANSLATION.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Translating TizenBrew

If you'd like to help translate TizenBrew into your language, you can do so by following these steps:
# Outdated, TODO

## Fork the Repository

Expand Down
16 changes: 10 additions & 6 deletions tizenbrew-app/TizenBrew/config.xml
Original file line number Diff line number Diff line change
@@ -1,25 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns:tizen="http://tizen.org/ns/widgets" xmlns="http://www.w3.org/ns/widgets" id="https://tizentube.vercel.app" version="1.4.5" viewmodes="maximized">
<widget xmlns:tizen="http://tizen.org/ns/widgets" xmlns="http://www.w3.org/ns/widgets" id="https://tizenbrew.vercel.app" version="2.0.0" viewmodes="maximized">
<access origin="*" subdomains="true"></access>
<tizen:app-control>
<tizen:src name="index.html" reload="disable"/>
<tizen:src name="tizenbrew-ui/dist/index.html" reload="disable"/>
<tizen:operation name="http://samsung.com/appcontrol/operation/eden_resume"/>
</tizen:app-control>
<tizen:application id="xvvl3S1bvH.TizenBrewStandalone" package="xvvl3S1bvH" required_version="3.0"/>
<author href="https://tizentube.vercel.app">Reis Can</author>
<content src="index.html"/>
<author href="https://tizenbrew.vercel.app">Reis Can</author>
<content src="tizenbrew-ui/dist/index.html"/>
<feature name="http://tizen.org/feature/screen.size.all"/>
<feature name="http://tizen.org/feature/web.service"/>
<icon src="icon.png"/>
<tizen:metadata key="http://samsung.com/tv/metadata/prelaunch.support" value="true"/>
<tizen:metadata key="http://tizen.org/metadata/app_ui_type/base_screen_resolution" value="4k_only"/>
<tizen:metadata key="http://samsung.com/tv/metadata/floating.navigation" value="false"/>
<tizen:metadata key="http://samsung.com/tv/metadata/use.game.mode" value="true"/>
<tizen:metadata key="http://samsung.com/tv/metadata/use.uwe" value="true"/>
<tizen:metadata key="http://samsung.com/tv/metadata/no_use_process_pool" value="true"/>
<tizen:metadata key="multiview_support" value="true"/>
<tizen:metadata key="multiview_min_resource" value="FHD+"/>
<tizen:metadata key="http://samsung.com/tv/metadata/html5.4k.support" value="true"/>
<tizen:metadata key="http://samsung.com/tv/metadata/prelaunch.support" value="true"/>
<tizen:metadata key="http://samsung.com/tv/metadata/microphone.support" value="1"/>
<tizen:metadata key="http://samsung.com/tv/metadata/microphone.area" value="open"/>
<name>TizenBrewStandalone</name>
<name>TizenBrewNextGeneration</name>
<tizen:privilege name="http://tizen.org/privilege/internet"/>
<tizen:privilege name="http://developer.samsung.com/privilege/network.public"/>
<tizen:privilege name="http://tizen.org/privilege/tv.inputdevice"/>
Expand All @@ -29,7 +33,7 @@
<tizen:privilege name="http://tizen.org/privilege/application.launch"/>
<tizen:profile name="tv-samsung"/>
<tizen:service id="xvvl3S1bvH.StandaloneService">
<tizen:content src="service/dist/index.js"/>
<tizen:content src="service-nextgen/service/dist/index.js"/>
<tizen:name>TizenBrewService</tizen:name>
<tizen:description>TizenBrewService</tizen:description>
</tizen:service>
Expand Down
Loading

0 comments on commit b1a50d8

Please sign in to comment.