All Projects → LyfeOnEdge → Hbupdater

LyfeOnEdge / Hbupdater

Licence: gpl-3.0
A simple python app for keeping your switch apps up-to-date using the github api.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Hbupdater

nx
Userland library for Nintendo Switch homebrew (and other potential purposes), written in pure Rust and some assembly bits
Stars: ✭ 67 (+81.08%)
Mutual labels:  homebrew, nintendo-switch
Jksv
Data Tool For Switch
Stars: ✭ 388 (+948.65%)
Mutual labels:  nintendo-switch, homebrew
Homebrew-Guide
Guide for getting CFW setup on your Nintendo Switch (And Wii U)
Stars: ✭ 104 (+181.08%)
Mutual labels:  homebrew, nintendo-switch
Vba M Nx
WIP full featured port of VBA-M for Nintendo Switch
Stars: ✭ 11 (-70.27%)
Mutual labels:  nintendo-switch, homebrew
Git Peek
git repo to local editor instantly
Stars: ✭ 485 (+1210.81%)
Mutual labels:  github-api, homebrew
sys-clk-Overlay
Editor for your sys-clk configuration using ovl-loader!
Stars: ✭ 53 (+43.24%)
Mutual labels:  homebrew, nintendo-switch
Nxdumptool
Generates XCI/NSP/HFS0/ExeFS/RomFS/Certificate/Ticket dumps from Nintendo Switch gamecards and installed SD/eMMC titles.
Stars: ✭ 345 (+832.43%)
Mutual labels:  nintendo-switch, homebrew
Nx Activity Log
Homebrew application for the Nintendo Switch which displays play activity with more accuracy
Stars: ✭ 197 (+432.43%)
Mutual labels:  nintendo-switch, homebrew
Hb Appstore
Homebrew App Store - GUI for downloading/managing homebrew apps for video game consoles
Stars: ✭ 463 (+1151.35%)
Mutual labels:  nintendo-switch, homebrew
Hub
A command-line tool that makes git easier to use with GitHub.
Stars: ✭ 21,420 (+57791.89%)
Mutual labels:  github-api, homebrew
switch-cmake
CMake toolchain for Nintendo Switch homebrew development
Stars: ✭ 38 (+2.7%)
Mutual labels:  homebrew, nintendo-switch
Nx Shell
A multi-purpose file manager for the Nintendo Switch.
Stars: ✭ 639 (+1627.03%)
Mutual labels:  nintendo-switch, homebrew
NSW-Custom-Game-Icons
Nintendo Switch custom game icons, icon repo for NX-GiC
Stars: ✭ 33 (-10.81%)
Mutual labels:  homebrew, nintendo-switch
sdl-hello-world
Draw "hello world" on the screen of the Nintendo Switch
Stars: ✭ 36 (-2.7%)
Mutual labels:  homebrew, nintendo-switch
libusbhsfs
USB Mass Storage Class Host + Filesystem Mounter static library for Nintendo Switch homebrew applications.
Stars: ✭ 81 (+118.92%)
Mutual labels:  homebrew, nintendo-switch
StarDustCFWPack
StarDust es un Pack con los CFW actuales tipo AIO, Configurado con Atmosphere, SX OS Agrega también las app mas básicas para empezar y no preocuparse por nada
Stars: ✭ 83 (+124.32%)
Mutual labels:  homebrew, nintendo-switch
Brew.js
[WIP] C++ high-level JavaScript API for Nintendo 3DS/Switch
Stars: ✭ 136 (+267.57%)
Mutual labels:  nintendo-switch, homebrew
Amiiswap
Nintendo Switch GUI Amiibo Manager homebrew for emulation with Emuiibo (nfp mitm)
Stars: ✭ 159 (+329.73%)
Mutual labels:  nintendo-switch, homebrew
Switchthemeinjector
Create custom themes for the nintendo switch !
Stars: ✭ 436 (+1078.38%)
Mutual labels:  nintendo-switch, homebrew
Sysdvr
Stream switch games to your PC via USB or network
Stars: ✭ 523 (+1313.51%)
Mutual labels:  nintendo-switch, homebrew

HBUpdater

License Releases LatestVer

About

HBUpdater is a one-stop-shop for managing and updating your Nintendo Switch Homebrew.

Features

  • Downloads packages directly from github
  • Easily install lots of popular Homebrew
  • RCM injector (payloads downloaded from github)
  • Tracks which homebrew and what versions you have installed, compatible with the Homebrew Appstore
  • Content includes tools, emulators, media viewers, games, and more
  • No longer visit 17.53 different places to make sure you have the latest version of everything

View update notes and install old/legacy versions

View update notes and install old/legacy versions

Built-in RCM injector

Built-in RCM injector (Uses fusee-launcher)

Demo

(Goes to youtube) Alt text

Requirements:

Works on: macOS, Windows, Linux
Python 3.6 or greater

How to use:

Windows:
  • Extract HBUpdater.zip
  • Install python
    • If you do a custom installation remember to install tcl/tk, add python to the path, and include pip
  • In a command prompt type pip install -r requirements to install dependencies
  • Double-click startHBUpdater.bat
Macintosh:
  • Extract HBUpdater.zip
  • Mac users may already have a compatible version of python installed, try double-clicking HBUpdater.py --If the file opens in a text reader, close the reader and right-click the file and open it with pylauncher
  • If this still doesn't work, install python
Linux:
  • Extract HBUpdater.zip
  • Navigate to the directory in a terminal
  • Type python HBUpdaterGUI.py
    • If you are missing dependencies do the following:
    • sudo apt install python3 python3-pip python3-tk python3-pil.imagetk
  • If you don't know how to do this you should probably be using Windows.
  • For access to USB functions you must run python with elevated privledges (sudo)

TroubleShooting:

Mac:
  • Error:
    • ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)
  • Solution:
    • Macintosh HD > Applications > Python3.6 folder (or whatever version of python you're using) > double click on "Install Certificates.command" file

How it works:

###NOTICE: I WILL BE MOVING TO A BETTER REPO SYSTEM IN THE FUTURE, DETAILS SOON(tm).

The big picture

repo collection

repo stitiching

repo distribution

repo parsing

package management

Short and sweet: The repository (AKA HBUpdater_packages): A package repository broken out into package.json files with info that can't or shouldn't be gleaned from the github api, these lay out author, package name, releases api link, etc. This repository can be found here: https://github.com/LyfeOnEdge/HBUpdater_packages.

The backend (AKA HBUpdater_API): A script periodically (every 30 minutes) queries the github api with an auth token to grab updated api files for each package at https://api.github.com/repos/__organization__/__repo__, it then bundles the api files, checks them agains a previous version, and if anything has changed releases this bundle at: https://github.com/LyfeOnEdge/HBUpdater_API/releases

The frontend (AKA HBUpdater): Any tool that interacts with the api should be able to grab a github release. The api file is grabbed from https://api.github.com/repos/LyfeOnEdge/HBUpdater_API/releases, the latest release is found, downloaded, and parsed into categories by an intermediate tool.

repo collection

Package entries are found here at HBUpdater_packages.

repo stitching

The repo builder is the repomaker_server.py script located in the source of LyfeOnEdge/HBUpdater_API. It accesses the github api using a github token. The purpose of the token is twofold, it allows the repo builder to exceed the normal 60 api requests / hour as well as make releases in its own repo. This means the "releases" section of the LyfeOnEdge/HBUpdater_API repo source on github acts as an etagged "server" for the repo json. The repo builder goes through each entry in the repo and grabs the api json, it then adds the loaded api json to the info grabbed from the repository.

repo distribution

When each entry has had an updated json object appended the whole object is organized into a larger json object and dumped. If any content in the json has changed it gets pushed as a new release to github, with the tag name incrementing by one.

The receiving app (LyfeOnEdge/HBUpdaterGUI) grabs the repo file by getting the github api releases json at https://api.github.com/repos/LyfeOnEdge/HBUpdater_API/releases, which contains a link to the latest release of the HBUpdater_API repo.

repo parsing

The receiving app (LyfeOnEdge/HBUpdaterGUI) parses the json into mapped lists based on category. Each category is displayed on a page in the app.

package management

HBUpdater uses a heavily modified python rewrite of vgmoose's libget It should be compatible with vgmooses Homebrew Appstore, except packages not also offered by the appstore will not show up in vgmoose's appstore.

Want to contribute? Have ideas? Questions? Great!

You can find me here: 4TU/Switchbru

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].