A sample project for building Zygisk modules

Overview

Developing Zygisk Modules

This repository hosts a template zygisk module for developers to start developing Zygisk modules. Before developing Zygisk modules, you should first check out the official documentation for Magisk Modules. Do not fork this repository for your new module; either manually clone this repository, or press the "Use this template" button in the GitHub UI.

This repository is archived because it is meant to be read-only; the project is not abandoned. For any issues, please report them to the main Magisk repository.

API

  • The canonical URL of the public Zygisk API is module/jni/zygisk.hpp.
  • The header file is self documented; directly refer to the header source code for all Zygisk API details.
  • Magisk is committed to maintain backwards compatibility forever. That is, whenever there is an API update for Zygisk in a newer Magisk version, Magisk can always load Zygisk modules built for an older Zygisk API.

Notes

  • This repository can be opened with Android Studio.
  • Developing Zygisk modules requires a modern C++ compiler. Please use NDK r21 or higher.
  • All the C++ code is in the module/jni folder.
  • DO NOT modify the default configurations in Application.mk unless you know what you are doing.

C++ STL

  • The APP_STL variable in Application.mk is set to none. DO NOT use any C++ STL included in NDK.
  • If you'd like to use C++ STL, you have to use the libcxx included as a git submodule in this repository. Zygisk modules' code are injected into Zygote, and the included libc++ is setup to be lightweight and fully self contained that prevents conflicts with the hosting program.
  • If you do not need STL, link to the system libstdc++ so that you can at least call the new operator.
  • Both configurations are demonstrated in the example Android.mk.

Building

  • In the module folder, call ndk-build to compile your modules.
  • Your module libraries will be in libs/<abi>/lib<module_name>.so.
  • Copy the libraries into your module's zygisk folder, with the ABI as it's file name:
module_id
├── module.prop
└── zygisk
    ├── arm64-v8a.so
    ├── armeabi-v7a.so
    ├── x86.so
    └── x86_64.so

License

Although the main Magisk project is licensed under GPLv3, the Zygisk API and its headers are not. Every file in this repository is released to the public domain, so you don't have to worry about any licensing issues while developing Zygisk modules. You can create a closed source module, or publish your source code under any open source license you prefer; there is no restrictions at all.

You might also like...
GrandOrgue is a sample based pipe organ simulator.

GrandOrgue is a sample based pipe organ simulator. It currently supports Linux, Windows and OS X. Porting to other OS supported by RtMidi,

CMSGen, a fast uniform-like sample generator

CMSGen a fast uniform-like sampler This system provides CMSGen, a fast uniform-like sampler. While we give no guarntees that the sampling is uniform,

A simple and sample port of ceserver to iOS.

A simple and sample port of ceserver to iOS.This project is currently under development.

Sample module for FreeSWITCH using golang

freeswitch_module_golang_sample Sample module for FreeSWITCH using golang tl; dr

Skrull is a malware DRM, that prevents Automatic Sample Submission by AV/EDR and Signature Scanning from Kernel.
Skrull is a malware DRM, that prevents Automatic Sample Submission by AV/EDR and Signature Scanning from Kernel.

Skrull is a malware DRM, that prevents Automatic Sample Submission by AV/EDR and Signature Scanning from Kernel. It generates launchers that can run malware on the victim using the Process Ghosting technique. Also, launchers are totally anti-copy and naturally broken when got submitted.

Sample/Testing for FRC Robot
Sample/Testing for FRC Robot

Sample/Testing for FRC Robot

Sample/Testing for FRC Robot
Sample/Testing for FRC Robot

Sample/Testing for FRC Robot

Simple C++ sample showing how to use OpenCL v1.2 on Windows/Linux/OSX with no 3rd party SDK installs

simple_opencl This is a simple and practical C++ sample showing how to use OpenCL v1.2 on Windows/Linux/OSX with no 3rd party SDK installs required un

This is an sample compiler for simple calculations don't laugh at this

Compiler This is an sample compiler for simple calculations don't laugh at this Look i know iam not a big deal (atleast for now) and i know this compi

Owner
John Wu
John Wu
Zygisk module template.

Zygisk-ModuleTemplate Zygisk module template. refer to Riru-ModuleTemplate and zygisk-module-sample Build You must modify local.properties to adapt yo

Shocker 7 Aug 8, 2022
ESP32 drum computer / sample player / midi sequencer (Arduino audio project)

esp32_drum_computer ESP32 drum computer / sample player / midi sequencer (Arduino audio project) The project can be seen in my video https://youtu.be/

Marcel 38 Sep 23, 2022
Sample project using snmalloc

Sample project to use snmalloc This is a sample project which uses snmalloc in a couple of different setup. There are a couple of ways to integrate sn

Neeraj 1 Nov 1, 2021
Well-organized, commented and documented sample project that shows the basic functionalities of the 42's mlx library.

miniLibX sample | slucas-s I developed this sample project to play around with the basic functionalities of the miniLibX, the simple graphics library

S. Lucas Serrano 44 Sep 16, 2022
The SPIR-V Tools project provides an API and commands for processing SPIR-V modules.

SPIR-V Tools Overview The SPIR-V Tools project provides an API and commands for processing SPIR-V modules. The project includes an assembler, binary m

The Khronos Group 790 Sep 30, 2022
Arduino sample code to help you get started using the Soracom IoT Starter Kit!

Soracom IoT Starter Kit The Soracom IoT Starter Kit includes everything you need to build your first connected device. It includes an Arduino MKR GSM

Soracom Labs 13 Jul 30, 2022
A C++17 library of computationally efficient methods for calculating sample statistics

Vectorized statistics using SIMD primitives Introduction is a C++17 library of computationally efficient methods for calculating sample statistics (me

HEAL 10 Jan 7, 2022
Cross-platform tool to extract wavetables and draw envelopes from sample files, exporting the wavetable and generating the appropriate SFZ text to use in a suitable player.

wextract Cross-platform tool to extract wavetables and draw envelopes from sample files, exporting the wavetable and generating the appropriate SFZ te

Paul Ferrand 9 Jan 5, 2022
Faster Non-Integer Sample Rate Conversion

Non-Integer Sample Rate Conversion This repository contains a comparison of sample-rate conversion (SRC) algorithms, with an emphasis on performance f

null 25 Jul 5, 2022
A sample demonstrating hybrid ray tracing and rasterisation for shadow rendering and use of the FidelityFX Denoiser.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

GPUOpen Effects 50 Jul 27, 2022