Add website (#65)
This commit is contained in:
41
website/docs/.vitepress/cache/deps/@theme_index.js
vendored
Normal file
41
website/docs/.vitepress/cache/deps/@theme_index.js
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
// node_modules/vitepress/dist/client/theme-default/index.js
|
||||
import "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/styles/fonts.css";
|
||||
import "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/styles/vars.css";
|
||||
import "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/styles/base.css";
|
||||
import "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/styles/utils.css";
|
||||
import "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/styles/components/custom-block.css";
|
||||
import "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code.css";
|
||||
import "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code-group.css";
|
||||
import "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/styles/components/vp-doc.css";
|
||||
import "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/styles/components/vp-sponsor.css";
|
||||
import VPBadge from "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue";
|
||||
import Layout from "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/Layout.vue";
|
||||
import NotFound from "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/NotFound.vue";
|
||||
import { default as default2 } from "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/components/VPHomeHero.vue";
|
||||
import { default as default3 } from "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/components/VPHomeFeatures.vue";
|
||||
import { default as default4 } from "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/components/VPHomeSponsors.vue";
|
||||
import { default as default5 } from "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/components/VPDocAsideSponsors.vue";
|
||||
import { default as default6 } from "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/components/VPTeamPage.vue";
|
||||
import { default as default7 } from "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageTitle.vue";
|
||||
import { default as default8 } from "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageSection.vue";
|
||||
import { default as default9 } from "/Users/weishu/dev/github/KernelSU_website/node_modules/vitepress/dist/client/theme-default/components/VPTeamMembers.vue";
|
||||
var theme = {
|
||||
Layout,
|
||||
NotFound,
|
||||
enhanceApp: ({ app }) => {
|
||||
app.component("Badge", VPBadge);
|
||||
}
|
||||
};
|
||||
var theme_default_default = theme;
|
||||
export {
|
||||
default5 as VPDocAsideSponsors,
|
||||
default3 as VPHomeFeatures,
|
||||
default2 as VPHomeHero,
|
||||
default4 as VPHomeSponsors,
|
||||
default9 as VPTeamMembers,
|
||||
default6 as VPTeamPage,
|
||||
default8 as VPTeamPageSection,
|
||||
default7 as VPTeamPageTitle,
|
||||
theme_default_default as default
|
||||
};
|
||||
//# sourceMappingURL=@theme_index.js.map
|
||||
7
website/docs/.vitepress/cache/deps/@theme_index.js.map
vendored
Normal file
7
website/docs/.vitepress/cache/deps/@theme_index.js.map
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": ["../../../../node_modules/vitepress/dist/client/theme-default/index.js"],
|
||||
"sourcesContent": ["import './styles/fonts.css';\r\nimport './styles/vars.css';\r\nimport './styles/base.css';\r\nimport './styles/utils.css';\r\nimport './styles/components/custom-block.css';\r\nimport './styles/components/vp-code.css';\r\nimport './styles/components/vp-code-group.css';\r\nimport './styles/components/vp-doc.css';\r\nimport './styles/components/vp-sponsor.css';\r\nimport VPBadge from './components/VPBadge.vue';\r\nimport Layout from './Layout.vue';\r\nimport NotFound from './NotFound.vue';\r\nexport { default as VPHomeHero } from './components/VPHomeHero.vue';\r\nexport { default as VPHomeFeatures } from './components/VPHomeFeatures.vue';\r\nexport { default as VPHomeSponsors } from './components/VPHomeSponsors.vue';\r\nexport { default as VPDocAsideSponsors } from './components/VPDocAsideSponsors.vue';\r\nexport { default as VPTeamPage } from './components/VPTeamPage.vue';\r\nexport { default as VPTeamPageTitle } from './components/VPTeamPageTitle.vue';\r\nexport { default as VPTeamPageSection } from './components/VPTeamPageSection.vue';\r\nexport { default as VPTeamMembers } from './components/VPTeamMembers.vue';\r\nconst theme = {\r\n Layout,\r\n NotFound,\r\n enhanceApp: ({ app }) => {\r\n app.component('Badge', VPBadge);\r\n }\r\n};\r\nexport default theme;\r\n"],
|
||||
"mappings": ";AAAA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO,aAAa;AACpB,OAAO,YAAY;AACnB,OAAO,cAAc;AACrB,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAAiC;AAC1C,SAAoB,WAAXA,gBAAiC;AAC1C,SAAoB,WAAXA,gBAAqC;AAC9C,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAAkC;AAC3C,SAAoB,WAAXA,gBAAoC;AAC7C,SAAoB,WAAXA,gBAAgC;AACzC,IAAM,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,EACA,YAAY,CAAC,EAAE,IAAI,MAAM;AACrB,QAAI,UAAU,SAAS,OAAO;AAAA,EAClC;AACJ;AACA,IAAO,wBAAQ;",
|
||||
"names": ["default"]
|
||||
}
|
||||
19
website/docs/.vitepress/cache/deps/_metadata.json
vendored
Normal file
19
website/docs/.vitepress/cache/deps/_metadata.json
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"hash": "61282e4d",
|
||||
"browserHash": "774d0f6d",
|
||||
"optimized": {
|
||||
"vue": {
|
||||
"src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
|
||||
"file": "vue.js",
|
||||
"fileHash": "cd4413de",
|
||||
"needsInterop": false
|
||||
},
|
||||
"@theme/index": {
|
||||
"src": "../../../../node_modules/vitepress/dist/client/theme-default/index.js",
|
||||
"file": "@theme_index.js",
|
||||
"fileHash": "2734803c",
|
||||
"needsInterop": false
|
||||
}
|
||||
},
|
||||
"chunks": {}
|
||||
}
|
||||
1
website/docs/.vitepress/cache/deps/package.json
vendored
Normal file
1
website/docs/.vitepress/cache/deps/package.json
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"type":"module"}
|
||||
8876
website/docs/.vitepress/cache/deps/vue.js
vendored
Normal file
8876
website/docs/.vitepress/cache/deps/vue.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
website/docs/.vitepress/cache/deps/vue.js.map
vendored
Normal file
7
website/docs/.vitepress/cache/deps/vue.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
29
website/docs/.vitepress/config.js
Normal file
29
website/docs/.vitepress/config.js
Normal file
@@ -0,0 +1,29 @@
|
||||
export default {
|
||||
title: 'KernelSU',
|
||||
description: 'A kernel-based root solution for Android GKI devices',
|
||||
themeConfig: {
|
||||
nav: [
|
||||
{ text: 'Guide', link: '/guide/what-is-kernelsu' },
|
||||
{ text: 'Github', link: 'https://github.com/tiann/KernelSU' }
|
||||
],
|
||||
sidebar: [
|
||||
{
|
||||
text: 'Guide',
|
||||
items: [
|
||||
{ text: 'What is KernelSU?', link: '/guide/what-is-kernelsu' },
|
||||
{ text: 'Installation', link: '/guide/installation' },
|
||||
{ text: 'How to build?', link: '/guide/how-to-build' },
|
||||
{ text: 'FAQ', link: '/guide/faq' },
|
||||
]
|
||||
}
|
||||
],
|
||||
footer: {
|
||||
message: 'Released under the GPL3 License.',
|
||||
copyright: 'Copyright © 2022-present KernelSU Developers'
|
||||
},
|
||||
editLink: {
|
||||
pattern: 'https://github.com/tiann/KernelSU_website/edit/main/docs/:path',
|
||||
text: 'Edit this page on GitHub'
|
||||
}
|
||||
}
|
||||
}
|
||||
37
website/docs/guide/faq.md
Normal file
37
website/docs/guide/faq.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# FAQ
|
||||
|
||||
## Does KernelSU support my device?
|
||||
|
||||
First, your devices should be able to unlock the bootloader. If it can't, then it is unsupported.
|
||||
|
||||
Then install KernelSU manager App to your device and open it, if it shows `Unsupported` then your device is unsupported and won't be supported in the future.
|
||||
|
||||
## Does KernelSU need to unlock Bootloader?
|
||||
|
||||
Certainly, yes.
|
||||
|
||||
## Does KernelSU support modules?
|
||||
|
||||
Yes, But it is in early version, may be buggy. Please waiting it to be stable :)
|
||||
|
||||
## Does KernelSU support Xposed?
|
||||
|
||||
Yes, [Dreamland](https://github.com/canyie/Dreamland) and [TaiChi](https::/taichi.cool) partially works now, And we are trying to make other Xposed Framework work.
|
||||
|
||||
## Is KernelSU compatible with Magisk?
|
||||
|
||||
KernelSU's module system is conflict with Magisk's magic mount, if there is any module enabled in KernelSU, then the whole Magisk would not work.
|
||||
|
||||
But if you only use the `su` of KernelSU, then it will work well with Magisk: KernelSU modify the `kernel` and Magisk modify the `ramdisk`, they can work together.
|
||||
|
||||
## Will KernelSU substitute Magisk?
|
||||
|
||||
We don't think so and it's not our goal. Magisk is good enough for userspace root solution and it will live long. KernelSU's goal is to provide a kernel interface to users, not substituting Magisk.
|
||||
|
||||
## Can KernelSU support non GKI devices?
|
||||
|
||||
It is possible. But you should download the kernel source and intergrate KernelSU to the source tree and compile the kernel yourself.
|
||||
|
||||
## Can KernelSU support old kernel?
|
||||
|
||||
It is possible, but you need to backport it manully and PRs welcome!
|
||||
47
website/docs/guide/how-to-build.md
Normal file
47
website/docs/guide/how-to-build.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# How to build KernelSU?
|
||||
|
||||
First, you should read the Android Official docs for kernel build:
|
||||
|
||||
1. [Building Kernels](https://source.android.com/docs/setup/build/building-kernels)
|
||||
2. [GKI Release Builds](https://source.android.com/docs/core/architecture/kernel/gki-release-builds)
|
||||
|
||||
## Build Kernel
|
||||
|
||||
### Sync the kernel source code
|
||||
|
||||
```sh
|
||||
repo init -u https://android.googlesource.com/kernel/manifest
|
||||
mv <kernel_manifest.xml> .repo/manifests
|
||||
repo init -m manifest.xml
|
||||
repo sync
|
||||
```
|
||||
|
||||
The `<kernel_manifest.xml>` is a manifest file which can determine a build uniquely, you can use the manifest to do a re-preducable build. You should download the manifest file from [Google GKI release builds](https://source.android.com/docs/core/architecture/kernel/gki-release-builds)
|
||||
|
||||
### Build
|
||||
|
||||
Please check the [official docs](https://source.android.com/docs/setup/build/building-kernels) first.
|
||||
|
||||
For example, we need to build aarch64 kernel image:
|
||||
|
||||
```sh
|
||||
LTO=thin BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh
|
||||
```
|
||||
|
||||
Don't forget to add the `LTO=thin` flag, otherwise the build may fail if your computer's memory is less then 24Gb.
|
||||
|
||||
Starting from Android 13, the kernel is built by `bazel`:
|
||||
|
||||
```sh
|
||||
tools/bazel build --config=fast //common:kernel_aarch64_dist
|
||||
```
|
||||
|
||||
## Build Kernel with KernelSU
|
||||
|
||||
If you can build the kernel successfully, then build KernelSU is so easy, run this command in Kernel source root dir:
|
||||
|
||||
```sh
|
||||
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -
|
||||
```
|
||||
|
||||
And then rebuild the kernel and you will get a kernel image with KernelSU!
|
||||
32
website/docs/guide/installation.md
Normal file
32
website/docs/guide/installation.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# Installation
|
||||
|
||||
## Check if your device is supported
|
||||
|
||||
Download the KernelSU manager app from [github releases](https://github.com/tiann/KernelSU/releases) or [github actions](https://github.com/tiann/KernelSU/actions/workflows/build-manager.yml), and then install the app to device and open the app:
|
||||
|
||||
- If the app shows `Unsupported`, it means KernelSU is not supported for your device.
|
||||
- If the app shows `Not installed`, then your devices is supported by KernelSU.
|
||||
|
||||
## Find proper boot.img
|
||||
|
||||
KernelSU provides a general boot.img for GKI devices, you should flash the boot.img to the boot partition of your device.
|
||||
|
||||
You can download the boot.img from [github actions for kernel](https://github.com/tiann/KernelSU/actions/workflows/build-kernel.yml), Please be aware that your should use the right version of boot.img. For example, if your device show that the kernel is `5.10.101`, then you need to download the `5.10.101-xxxx.boot.xxx`.
|
||||
|
||||
And also, please check your stock boot.img's format, you should use the right format, such as `lz4`、`gz`.
|
||||
|
||||
## Flash the boot.img to device
|
||||
|
||||
Connect your device with `adb` and then execute `adb reboot bootloader` to enter fastboot mode, and then use this command to flash KernelSU:
|
||||
|
||||
```sh
|
||||
fastboot flash boot boot.img
|
||||
```
|
||||
|
||||
## Reboot
|
||||
|
||||
When flashed, you should reboot your device:
|
||||
|
||||
```sh
|
||||
fastboot reboot
|
||||
```
|
||||
21
website/docs/guide/what-is-kernelsu.md
Normal file
21
website/docs/guide/what-is-kernelsu.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# What is KernelSU?
|
||||
|
||||
KernelSU is a root solution for Android GKI devices, it works in kernel mode and grant root permission to userspace application directly in kernel space.
|
||||
|
||||
## Features
|
||||
|
||||
The main feature of KernelSU is it is **Kernel-based**. KernelSU works in kernel mode, so it can provide kernel interface we never had before. For example, we can add hardware breakpoint to any process in kernel mode; We can access physical memory of any process without anybody being aware of; We can intercept any syscall in kernel space; etc.
|
||||
|
||||
And also, KernelSU provides a module system via overlayfs, which allows you to load your custom plugin into system. It also provides a mechanism to modify files in `/system` partition.
|
||||
|
||||
## How to use
|
||||
|
||||
Please refer: [Installation](installation)
|
||||
|
||||
## How to build
|
||||
|
||||
[How to build](how-to-build)
|
||||
|
||||
## Discussion
|
||||
|
||||
- Telegram: [@KernelSU](https://t.me/KernelSU)
|
||||
28
website/docs/index.md
Normal file
28
website/docs/index.md
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
layout: home
|
||||
|
||||
hero:
|
||||
name: KernelSU
|
||||
text: A kernel-based root solution for Android GKI devices
|
||||
tagline: ""
|
||||
image:
|
||||
src: /logo.png
|
||||
alt: KernelSU
|
||||
actions:
|
||||
- theme: brand
|
||||
text: Get Started
|
||||
link: /guide/what-is-kernelsu
|
||||
- theme: alt
|
||||
text: View on GitHub
|
||||
link: https://github.com/tiann/KernelSU
|
||||
|
||||
features:
|
||||
- title: Kernel-based
|
||||
details: KernslSU is working in Linux kernel mode, it has more control over userspace applications.
|
||||
- title: Whitelist access control
|
||||
details: Only App that is granted root permission can access `su`, other apps cannot perceive su.
|
||||
- title: Module support
|
||||
details: KernelSU supports modify /system systemlessly by overlayfs, it can even make system writable.
|
||||
- title: Open source
|
||||
details: KernelSU is a open source project under GPL-3 License.
|
||||
|
||||
BIN
website/docs/public/logo.png
Normal file
BIN
website/docs/public/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 342 B |
Reference in New Issue
Block a user