Sui - Modern super user interface implementation on Android.

Related tags

Spring Boot riru
Overview

Sui

Modern super user interface (SUI) implementation on Android. The name, Sui, also comes from a character.

Introduction

Sui provides Java APIs, Shizuku API, for root apps. It mainly provides the ability to use Android APIs directly (almost in Java as the identity of the root, and start app's own AIDL-style Java service under root. This will make root app development much more comfortable.

Another advantage is that Sui does not add binaries to PATH and does not install a manager app. This means we no longer need to spend a huge amount of time to fight with apps that detect them.

To be clear, the full implementation of "root" is far more than "su" itself, there is a lot of hard work to be done before. Sui is not a full root solution, it requires Magisk to run.

Why "su" is unfriendly for app development

The "su", a "shell" runs as root, is too far from the Android world.

To explain this, we need to talk about how system API works. For example, we can use PackageManager#getInstalledApplications to get the app list. This is actually an interprocess communication (IPC) process of the app process and system server process, just the Android framework did the inner works for us. Android uses Binder to do this type of IPC. Binder allows the server-side to learn the uid and pid of the client-side so that the system server can check if the app has the permission to do the operation.

Back to "su", there are commands provided by the Android system. In the same example, to get the app list with "su", we have to use pm list. This is too painful.

  1. Text-based, this means there is no structured data like PackageInfo in Java. You have to parse the output text.
  2. It is much slower because run a command means at least one new process is started. And PackageManager#getInstalledApplications is used inside pm list.
  3. The possibility is limited to how the command can do. The command only covers a little amount of Android APIs.

Although it is possible to use Java APIs as root with app_process (there are libraries like libsu and librootjava), transfer binder between app process and root process is painful. If you want the root process to run as a daemon. When the app process restarts, it has no cheap way to get the binder of the root process.

In fact, for Magisk and other root solutions, makes the "su" to work is not that easy as some people think (let "su" itself work and the communication between the "su" and the manager app have a lot of unhappy work behind).

User guide

Note, the behavior of existing apps that only supports "su" will NOT change.

Install

You can download and install Sui from Magisk directly. Or, download the zip from release and use "Install from storage" in Magisk.

Management UI

  • (Android 8.0+, Sui 12.1+) Long press system settings from the home app, you will find the shortcut of Sui
  • (Android 8.0+, Sui 12+) Enter "Developer options" in system settings, the system will ask you to add the shortcut of Sui
  • Enter *#*#784784#*#* in the default dialer app

Note, the shortcut way requires your home app supports shortcut APIs that adds from Android 7.0 and 8.0. Unless you are using a old home app, you can the shortcut with no problem.

Interactive shell

Sui provides interactive shell.

Since Sui does not add files to PATH, the files need to be copied manually. See /data/adb/sui/post-install.example.sh to learn how to do this automatically.

After the files are correctly copied, use rish as 'sh'.

Application development guide

https://github.com/RikkaApps/Shizuku-API

Build

Clone with git clone --recurse-submodules.

Gradle tasks:

Flavor could be Riru and Zygisk, and BuildType could be Debug and Release.

  • :module:assemble<Flavor><BuildType>

    Generate Magisk module zip to out.

  • :module:push<Flavor><BuildType>

    Push the zip with adb to /data/local/tmp.

  • :module:flash<Flavor><BuildType>

    Install the zip with adb shell su -c magisk --install-module.

  • :module:flashAndReboot<Flavor><BuildType>

    Install the zip and reboot the device.

Internals

Sui requires Magisk (and Riru for non-Zygisk version). Magisk allows us to run processes as uid 0 and a "do anything" SELinux context. Riru or Zygisk allows us to inject into system server process and app processes.

In short, there are four parts:

  • Root process

    This is a root process started by Magisk. This process starts a Java server that implements Shizuku API and private APIs used by other parts.

  • SystemServer inject

    • Hooks Binder#execTransact and finally allow us to handle an unused binder call
    • Implements "get binder", "set binder" logic in that binder call, so taht root process can send its binder to the system server, and the apps can acquire root process's binder
  • SystemUI inject

    • Acquire the fd of our apk from the root server, create a Resource instance from it
    • Show confirmation window with our Resource and ClassLoader when recevied callback from the root server
  • Settings inject

    • Acquire the fd of our apk from the root server, create a Resource instance from it
    • Publish shortcut which targets an existing Acitivty but with a special intent extra
    • Replace ActivityThread#mInstrumentation to intervene the Acitivty instantiate process, if the intent has the speical extra, create our Activity which uses our Resource and ClassLoader
Comments
  • v11.6.0 causes bootloop

    v11.6.0 causes bootloop

    on op6t with latest os, magisk, latest riru core + some other modules installed, updating sui to v. 11.6.0 causes reproducable bootloops. reinstalling v11.5.0 solved the problem

    invalid 
    opened by petmarb 30
  • [Zygisk] (276479e) (Module #62) Sui does not run properly

    [Zygisk] (276479e) (Module #62) Sui does not run properly

    Running https://github.com/RikkaApps/Sui/commit/276479e026496af1e521f7448dd87efdeae5a062 (https://github.com/RikkaApps/Sui/actions/runs/1421584576)

    The "Sui" entry in the system settings, long-press menu just takes me to Internet properties.

    Screenshot_20211105-074410

    #Screenshot_20211105-074435

    I can see that Sui's post-fs-data.sh has ran from the magisk log.

    Apps that use Shizuku (WADB in this case) prompt me using the usual MagiskSU prompt and not Sui's.

    /data/adb/sui exists and there are two files that are in it (sui.db & sui.db-journal), sui.db-journal is blank.

    Magisk log: https://github.com/RikkaApps/Sui/files/7481161/magisk_log_2021-11-05T07_46_24Z.log

    upstream 
    opened by phorcys420 15
  • 在其他终端中运行rish不起作用

    在其他终端中运行rish不起作用

    已按照post-install.example.sh的说明,导出sui.dex/librish.so/rish三个文件到其他终端(例如Termux)的数据目录中,并移动到环境变量中,同时Sui给予授权,但此时运行"rish"仍然不起作用,返回"killed"。

    opened by DevilDisguise 8
  • Sui在LG设备上无法进入管理界面

    Sui在LG设备上无法进入管理界面

    本人是韩版U+的LG V50 ThinQ,面具版本为25.1,LSPose版本为1.8.3 (6581) - Zygisk,安卓10。在安装了sui-zygisk-v12.6.3模块后,无法正常进入管理界面,但可以对App Ops等进行授权。 通过拨号和快捷方式进入的是关于手机页面。 PS:这里附上开机日志文件(不知道对不对) [email protected]

    opened by ahetor 7
  • Error while installing

    Error while installing

    Redmi 10X Pro MIUI V11.0.5 Magisk21.4 Riru v25.4.4 Redownloaded many times but still failed

    The magisk installation log is as follow

    • Copying zip to temp directory
    • Installing sui-v12.2.1-release.zip
    • Device is system-as-root Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: module.prop Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: customize.sh mkdir: can't create directory '/data/adb/sui': File exists

    Sui by Rikka



    Powered by Magisk


    Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: verify.sh Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: riru.sh Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: riru.sh.sha256sum Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: module.prop Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: module.prop.sha256sum Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: post-fs-data.sh Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: post-fs-data.sh.sha256sum

    • Device platform: arm64
    • Extracting verify.sh
    • Verified riru.sh
    • Load /sbin/.magisk/modules/riru-core/util_functions.sh
    • Riru: v25.4.4.r426.05efc94 (API 25)
    • Installing from Magisk app
    • Extracting module files
    • Verified module.prop Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: uninstall.sh Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: uninstall.sh.sha256sum Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: sepolicy.rule Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: sepolicy.rule.sha256sum
    • Verified post-fs-data.sh
    • Verified uninstall.sh
    • Verified sepolicy.rule
    • Extracting arm libraries Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: libsui.so Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: libsui.so.sha256sum Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: libsui.so Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: libsui.so.sha256sum
    • Verified lib/armeabi-v7a/libsui.so
    • Extracting arm64 libraries Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: libmain.so Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: libmain.so.sha256sum Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: libadbd_wrapper.so Archive: /data/user/0/com.topjohnwu.magisk/cache/flash/install.zip inflating: libadbd_wrapper.so.sha256sum
    • Verified lib/arm64-v8a/libsui.so
    • Verified lib/arm64-v8a/libmain.so
    • Verified lib/arm64-v8a/libadbd_wrapper.so unzip: can't change directory to '/data/adb/modules_update/riru-sui/lib': No such file or directory

    ! lib/arm64-v8a/libadbd_preload.so not exists ! This zip may be corrupted, please try downloading again


    ! Installation failed

    opened by wzy19950000 6
  • Android 11 v11.6.0

    Android 11 v11.6.0

    Hello, there were problems after updating to version 11.6.0 The device freezes on the lock screen and does not even allow the device to be unlocked, but not the whole system is just the lock screen interface. Sometimes it allows you to unlock, but it still does not allow you to enter the system settings.

    Latest working version 11.5.0 Android 11 Samsung OneUI 3.1

    I also have a samsung device with android 10 and OneUI 2.5 and 11.6.0 works fine there. If you need any logs tell me how to get them without unlocking since device cannot be unlocked due to a bug.

    opened by BlueCat300 6
  • Question about the goal of this project

    Question about the goal of this project

    Root itself is a concept in Linux, coincidentally, Android is running on Linux.

    The goal of this project is to replace the "su" executable and call for the root community to switch to the correct way.

    The purpose of this project seems to be to call system APIs in an efficient way.

    It is not related to su, no need to replace it.

    The result is, everyone suffers from "su".

    「su」 is very convenient in some simple scenarios, such as move or delete certain files, set permissions

    By the way, this is a very interesting project, I love it. It can be of great help in complicated situations.😉

    opened by gtf35 5
  • 授权弹窗不显示

    授权弹窗不显示

    • 设备:小米平板 5 (nabu)
    • 系统:MIUI 13.0.5, Android 11
    • Sui: v12.4.0 release + Zygisk
    • Magisk: 24.1

    WADB 中点击启动「无线 adb」之后,对应菜单项置灰,但是授权弹窗不显示。必须手动在 Sui 管理器中设置成「允许」之后才能授权成功。

    Screenshot_2022-02-15-13-35-31-963_moe haruue wadb

    MaterialFiles 同理,打开「根目录」之后无限转圈,需要手动授权。

    相关日志:

    02-15 13:41:48.406  4083  4328 E Logger  : No available log folder
    02-15 13:41:48.691  2784  3102 D GestureInputHelper: onInputEvent action=0
    02-15 13:41:48.691  2784  3102 W RecentsModel: getRunningTaskContainHome
    02-15 13:41:48.699  2784  3102 D GestureInputHelper: onInputEvent, lastGestureMode=com.miui.home.recents.GestureModeHome@dc36ea8, newGestureMode=com.miui.home.recents.GestureModeApp@2887be0
    02-15 13:41:48.700  2784  3073 E StateBroadcastUtils: sendFsStateBroadCast state=taskSnapshot   channel=gesture
    02-15 13:41:48.722  2784  3102 D GestureInputHelper: onInputEvent action=1
    02-15 13:41:48.722  2784  3102 D GestureTouchEventTracker: stopTailCatcher
    02-15 13:41:48.722  2784  3102 D GestureTouchEventTracker: mUpType=10
    02-15 13:41:48.733   820  1212 E Service : manager is null
    

    查看 PID 820 的命令行,可以确认是 Sui 守护进程:

    nabu:/ $ cat /proc/820/cmdline
    sui
    
    opened by Kazurin-775 4
  • Sui and Shizuku running at the same time?

    Sui and Shizuku running at the same time?

    Should I uninstall shizuku if I installed sui (and vice versa) or they can safely run together on the same device? If not, is it recommended to use one over another?

    opened by Jnss98b 3
  • Won't boot after magisk SUI installation

    Won't boot after magisk SUI installation

    Moto G Power 2020 (sofia) running android 10 magisk with riru and edxposed (latest magisk repo versions). Upon installing the version found here sui-v11.6.0.zip or the newer version from the magisk repo the phone will not boot past the motorolla logo, I am unable to capture any debug info or logcat with the debug version of sui. I have to delete the module from recovery to boot again.

    Any ideas what could be wrong and how to further investigate the issue? Thanks.

    invalid 
    opened by tazer4 3
  • Problem with Sui in tablets running A12L+

    Problem with Sui in tablets running A12L+

    It took me a long time to find out that it was Sui was causing this problem, and it's even a little tricky to explain... With Sui module enable/installed, opening Settings intents is buggy on tablets running A12L+.

    In the screen recording below, when opening App Info page without Sui, "Settings dual panel" opens normally with App Info on the right and Settings categories on the left.

    https://user-images.githubusercontent.com/14058427/190726207-c8aac6b1-61eb-4bb0-86b4-821c5565e0cd.mp4

    But notice what happens when Sui is enabled: Settings is opened completely with the first category selected (Network and Internet) and using back gesture is displayed App Info page stretched.

    https://user-images.githubusercontent.com/14058427/190726232-6f132778-c350-4d78-9c57-61c8a840cbf6.mp4

    This happens with literally any shortcut that launches some page in the settings. App Info from launcher was just the example used in the video.

    opened by rodrigoswz 2
  • adbd root 无法调试 App

    adbd root 无法调试 App

    开启 adbd root 并 adb root 后,Android Studio 无法找到任何可调试的 app ,一些调试功能无法正常使用。

    原因似乎是 app 无法连接到 jdwp-control ,推测是 adbd root 后位于 magisk domain ,而 appdomain 无法连接 magisk 的 socket 。

    image

    参考修复实现:hook selinux_android_setcon ,在其后向 /proc/self/attr/sockcreate 写入 u:r:adbd:s0

    https://github.com/5ec1cff/Sui/commit/a81035b23188bcbb35baa1b007a05e4efde5e7f1

    opened by 5ec1cff 1
  • [HELP] About interactive shell

    [HELP] About interactive shell

    This is not a bug or something about that.

    i trying to read post-install.example.sh but still don't understand. and so i try to manual method copy file, but i don't know what are file to copy and to where i copy that file. can u help me to mention folder location and that all files i need to copy. im sorry and thanks. :D

    opened by danufebriy 0
  • BinderWrapper 遇到 IBinder.FLAG_ONEWAY 导致鉴权错误

    BinderWrapper 遇到 IBinder.FLAG_ONEWAY 导致鉴权错误

      该 Demo 的功能是设置 MIUI 的进程白名单,成功时会输出如下日志:

    D/ProcessManager: update CL:[com.netease.cloudmusic]
    

      使用 Shizuku 时功能正常,输出如下日志:

    D/Service: transact: uid=10527, descriptor=miui.IProcessManager, code=8
    

      使用 Sui 时发生鉴权错误,找到如下日志:

    W/Service: Permission Denial: transactRemote from pid=0 is not an attached client
    

      已在多台设备上进行测试,均产生此问题。

      定位到打日志的位置,发现该错误由 clientRecord == null 引起,向上继续定位到 ClientManager#findClient(int uid, int pid)

    public ClientRecord findClient(int uid, int pid) {
        for (ClientRecord clientRecord : clientRecords) {
            if (clientRecord.pid == pid && clientRecord.uid == uid) {
                return clientRecord;
            }
        }
        return null;
    }
    

      可能是由于 oneway 导致此处 获取到的 pid 为 0,导致没有匹配到正确的 clientRecord

      不知道我的猜想是否正确,还请开发者帮忙看看。

    opened by Mufanc 2
  • adb root 功能不支持不带版本号的 apex

    adb root 功能不支持不带版本号的 apex

    • 系统:Android 11 (ArrowOS)
    • 设备:小米 6X (wayne)
    • Magisk: v24.3
    • Sui: 当前 CI 最新版 (f8eee8c) v12.6.1-release

    在手机上创建 enable_adb_root 文件并重启后,adb root 仍然提示 adbd cannot run as root in production builds

    日志关键部分:

    01-08 07:03:35.164   704   704 I Sui     : Setup adb root support: /dev/PwR6B9/.magisk/modules/zygisk-sui
    01-08 07:03:35.168   704   704 I Sui     : Use adbd from /apex
    01-08 07:03:35.169   704   704 I Sui     : /apex/com.android.adbd/bin/adbd is dynamically linked
    01-08 07:03:35.170   704   704 V Sui     : /apex/com.android.adbd/bin/adbd: uid=0, gid=2000, mode=100755, context=u:object_r:adbd_exec:s0
    01-08 07:03:35.170   704   704 V Sui     : /apex/com.android.adbd/bin: uid=0, gid=2000, mode=40751, context=u:object_r:system_file:s0
    01-08 07:03:35.180   704   704 E Sui     : Cannot find versioned apex
    01-08 07:03:35.195   706   706 I Sui     : Exited with 13
    

    完整开机日志:logcat-coldboot.txt

    通过 adb 检查 /apex 发现所有项目都不带版本号:

    wayne:/ # ls /apex
    com.android.adbd           com.android.i18n           com.android.neuralnetworks  com.android.sdkext
    com.android.art            com.android.ipsec          com.android.os.statsd       com.android.tethering
    com.android.cellbroadcast  com.android.media          com.android.permission      com.android.tzdata
    com.android.conscrypt      com.android.media.swcodec  com.android.resolv          com.android.vndk.v30
    com.android.extservices    com.android.mediaprovider  com.android.runtime         com.android.wifi
    wayne:/ #
    

    检查 /system/apex 发现所有 apex 都是未压缩的「扁平化 apex」,不是 .capex 格式的压缩包:

    wayne:/ # ls -l /system/apex
    total 80
    drwxr-xr-x 6 root root 4096 2009-01-01 08:00 com.android.adbd
    drwxr-xr-x 7 root root 4096 2009-01-01 08:00 com.android.art.release
    drwxr-xr-x 3 root root 4096 2009-01-01 08:00 com.android.cellbroadcast
    ...
    wayne:/ # ls -la /system/apex/com.android.adbd/
    total 32
    drwxr-xr-x  6 root root  4096 2009-01-01 08:00 .
    drwxr-xr-x 22 root root  4096 2009-01-01 08:00 ..
    -rw-r--r--  1 root root   218 2009-01-01 08:00 apex_manifest.pb
    -rw-r--r--  1 root root  1032 2009-01-01 08:00 apex_pubkey
    drwxr-x--x  2 root shell 4096 2009-01-01 08:00 bin
    drwxr-xr-x  2 root root  4096 2009-01-01 08:00 etc
    drwxr-xr-x  2 root root  4096 2009-01-01 08:00 lib
    drwxr-xr-x  2 root root  4096 2009-01-01 08:00 lib64
    
    opened by Kazurin-775 2
  • Permission request prompt does not pop up properly on WSA / 权限请求弹窗在WSA上无法正常显示

    Permission request prompt does not pop up properly on WSA / 权限请求弹窗在WSA上无法正常显示

    Windows Subsystem for Android Windows 11 (10.0.22000 Build 22000) Sui v12.6.1 (Zygisk version) Magisk v24.1 (Zygisk)

    When using "App Ops", the little pop-up window that is supposed to ask for elevated permission simply does not show on WSA. The only way around this issue is to install a launcher (WSA does not come with one), and go into the Sui settings through the shortcut on the Settings app. In addition, entering "Developer options" in system settings does not prompt a Sui shortcut on desktop either.

    使用“App Ops”的时候,要求提升权限的小弹窗在WSA上完全不显示。曲线救国的办法只有安装一个launcher(WSA不自带launcher),然后通过设置app上的快捷方式进入Sui设置界面。另外还有一点,进入“开发者选项”也并不会提示创建Sui桌面快捷方式。

    opened by foxhatleo 0
Releases(v12.7.2)
Owner
Rikka apps
Rikka apps
Super simple deploy using spring boot, docker, k8s and kind

Target Target of this repository is show how to build spring boot application Docker image and deploy it with kind and k8s at least in local. Prerequi

Max 4 Aug 22, 2021
Super Configuration Management System (SCMS)

Super Configuration Management System (SCMS) Intro Este es un servicio web REST que permite administrar la configuración de distintas aplicaciones en

Gastón Pini 1 Feb 5, 2022
Fazendo Super Mario Bros com minha engine

?? Super Mario Bros •Completo• Linguagem utilizada: JAVA Mario Bros Provavelmente todo mundo conhece e já jogou a história de Mario Bros, o famoso enc

lailaz 3 Jan 6, 2022
Android Application for a user’s favorite Movies, TV shows and Anime while keeping up to date with the latest releases.

MovieDroid Native Android Application for organized and categorized list of a user’s favorite movies and TV shows while keeping up to date with the la

PEC ACM CSS 20 Dec 26, 2022
libraw4j - Java interface to the libraw library

libraw4j (1.0.0-SNAPSHOT) This is heavily W.I.P. Help is welcome! Java interface to the libraw library. Used for reading data from raw images. src/mai

Jacob Andersen 2 Apr 18, 2022
Restler is a library that automatically generates a client for a web service at run time, by analyzing the respective annotated Spring controller interface

Restler Overview Restler is a library that automatically generates a client for a web service at run time, by analyzing the respective annotated Sprin

Excelsior LLC 29 Oct 24, 2022
The Apache Commons CSV library provides a simple interface for reading and writing CSV files of various types.

Apache Commons CSV The Apache Commons CSV library provides a simple interface for reading and writing CSV files of various types. Documentation More i

The Apache Software Foundation 307 Dec 26, 2022
The Download Manager uses a simple yet effective GUI interface built with java’s Swing libraries

The Download Manager uses a simple yet effective GUI interface built with java’s Swing libraries.The use of Swing gives the interface a crisp, modern look and feel. The GUI maintains a list of downloads that are currently being managed.

Manish Kumar Mahawar 2 Jan 2, 2022
An easy-to-use Spigot library that implements a GUI interface within offhand maps.

MiniMapGUI An easy-to-use Spigot library that implements a GUI interface within offhand maps. Maven/Gradle Dependencies Replace Tag with the latest ve

byteful 10 Oct 17, 2022
Spring Initializr interface over Discord

Spring Initializr interface over Discord. Initialize your new Spring Boot project right in the app

Mikhail Titov 1 Mar 7, 2022
A fun mini project in Java. Uses Interface, Inheritance, and other OOP concepts

Sequences---Arithmetic-and-Geometric A fun mini project in Java. Uses Interface, Sorting, Inheritance, and other OOP concepts About this project: This

Urjit Aich 2 Feb 18, 2022
Critter Chronologer a Software as a Service application that provides a scheduling interface for a small business that takes care of animals

Critter Chronologer a Software as a Service application that provides a scheduling interface for a small business that takes care of animals. This Spring Boot project will allow users to create pets, owners, and employees, and then schedule events for employees to provide services for pets.

Rasha Omran 1 Jan 28, 2022
A plugin that open the GC command execution interface for third-party clients

gc-opencommand-plugin 中文 | English 一个为第三方客户端开放GC命令执行接口的插件 服务端安装 在 Release 下载 jar 放入 plugins 文件夹即可 控制台连接 首次启动时,会在 plugins 目录下生成一个 opencommand-plugin 目录

筱傑 222 Jan 1, 2023
A web interface for viewing market data from Project Serum, on the Solana blockchain.

serum-data A web interface for viewing market data from Project Serum, on the Solana blockchain. Building Requirements (if not using Docker) Java 17 M

Michael Morrell 36 Jan 1, 2023
Um sistema de hospital feito em Spring Boot, contendo alguns CRUD's, e utilizando algumas famosas dependências, como o Hibernate. Vale destacar a interface inspirada no jogo Minecraft.

Introdução ✏ Esse projeto é uma atividade da disciplina de Design, Arquitetura e Construção de Software [DACS]. O objetivo do projeto é simular um sis

Ramon Victor Cardoso 12 Nov 6, 2022
Piranha - a modern cloud runtime

Piranha Project The Piranha Project delivers you with Cloud ready containers and useful add-on / integration modules. Getting Started To get started w

Piranha Cloud 161 Dec 24, 2022
Free and 100% open source Progressive Java Runtime for modern Java™ deployments supported by a leading OpenJDK contributor

BellSoft Liberica JDK is a build of OpenJDK that is tested and verified to be compliant with the Java SE specification using OpenJDK Technology Compat

null 195 Dec 22, 2022
MockNeat - the modern faker lib.

Mockneat is an arbitrary data-generator open-source library written in Java. It provides a simple but powerful (fluent) API that enables developers to

Andrei Ciobanu 506 Dec 26, 2022
The goal of the project is to create a web application using Java EE and database (PostgreSQL) without connecting a modern technology stack like spring boot and hibernate

About The Project SignIn page SignUp page Profile page The goal of the project is to create a web application using Java EE and database (PostgreSQL)

Islam Khabibullin 2 Mar 23, 2022