Development [Pixel7/pro][Kali-nethunter kernel]Mad-Kali-MaxHunter kernel for cheetah/panther[Pixel 7/pro] - Google Pixel 7

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
WITH GREAT POWER COMES GREAT RESPONSIBILITY............
Please use kernel responsibly and respect the rights of others including and especially privacy!
The mad clown is back with another Kernel for all of the Kali-linux-nethunter users wanting the portability of kali-nethunter for their Pixel 7 and pixel 7 pro devices codenamed cheetah and panther collectively pantah
hahahahahahahahahahahahahahahahahahaha
Warning your warranty is now void. Do this at your own risk. The mad clown is in no way responsible for the chaos, worldwide disease, nuclear destruction, laughing fish, costumed caped crusaders or damage caused to your device by performing the steps involved.
hahahahahahahahahahahahahahahahahahaha
kernel features::
Code:
--Merged latest android kernel source Linux 5.15.149 QPR2
--Make TEO-Cpuidle util-aware (improves latency, performance and decreases energy consumption for certain workloads, more information here)
--Scheduler improvements for RT (realtime) tasks
--Boeffla's wakelock blocker
--Enabled power efficient workingqueues on various drivers
--mm: vmstat: use power efficient workingqueues tree wide
--Fsync on/off support
--Multi-gen LRU driver
--DAMON driver
--Disabled lots of debug spam
--Added bbr2 tcp drivers and enabled full options
--Lazy RCU should grant extra battery savings
--Enable support for TTL spoofing
--Full USB gadget support
--update several drivers to use power efficient workingqueues (for example wlan driver)
--f2fs: reduce timeout for uncongestion
--f2fs: Demote GC thread to idle scheduler class
--f2fs: set ioprio of GC kthread to idle
--tcp: enable advanced tcp, give user more options for tcp alorithm
--Force usb fastcharge
--Some hardening and security from graphene
--Errata work arounds
--DNS resolver support
--Checkpoint restore
--Suspend skip sync
--Security Yama
--uci functions including
-sweep2sleep
-cleanslate battery feature
-more
--Tri cluster kernel api =big, little, prime
plus all the commits needed to run kali-linux on your device and more. see my commits on github for more info
prerequisites:: vbmeta must have disabled verity and verification.
To do this pull a vbmeta.img from stock image zip or from a custom rom zip. back up your device as you will need to factory data reset your device after doing so
connect your device to your pc and open a terminal window and run
Code:
fastboot flash vbmeta vbmeta.img --disable-verity --disable-verification
fastboot -w
Works on any Android 13 sec patch
Flash using FKM (preferred)
Source ::
GitHub - Biohazardousrom/Mad-Kali-MaxHunter-Pantah at QPR2
Contribute to Biohazardousrom/Mad-Kali-MaxHunter-Pantah development by creating an account on GitHub.
github.com
release ::
349.83 MB folder on MEGA
15 files
mega.nz
For one on one support join us on Telegram at
gs101 and gs201 development/support
Pixel 6/pro & 7/pro discussion group for general support and development
t.me
Special Thanks to
@acuicultor
@Freak07

I dont know what google did to the build system but
BUILD_CONFIG=private/gs-google/build.config.cloudripper
no longer works. it gets all the way past lto on the vmlinux and fatals making the gki modules at edgetpu/jainero complaining about it not being a git repo. i removed .git folder and stil it failed
i tried different build commands but the only one that would finish was
BUILD_CONFIG=build.config build/build.sh
but upon further inspection i noticed in the .config only gs101 configs were enabled and none of the gs201 configs.
Im hoping one of the seniors has a clue as to what im doing wrong and how to get the kernel to boot both p6 and p7 devices
as it stands i ended up moving my gs-google kernel source to a qpr1 build system and everything built fine using the cloudripper config.

wifi monitor mode can be enabled using wifi sniffer and special firmware thats included in the android 14 developers previews.
we pulled whats needed from the vendor image and i created a magisk module for you to flash with the firmware binaries and .rc files.
i have included the zip in this post but you can get it from my github as well
GitHub - Biohazardousrom/nh-magisk-wifi-firmware-gs101-gs201: This Magisk module adds the required firmware for external wireless adapters to be used with NetHunter.
This Magisk module adds the required firmware for external wireless adapters to be used with NetHunter. - GitHub - Biohazardousrom/nh-magisk-wifi-firmware-gs101-gs201: This Magisk module adds the r...
github.com
For more info on wifi sniffer and how to use it follow this link
Getting the BCM4389 in Pixel 6 into monitor mode for tcpdump/Wireshark WIFI sniffing
A little side project to debug a WIFI 6E TP-Link mesh network in my house, went from "This sounds easy!" to "This is impossible!" to "It can...
chrisf4.blogspot.com

im trying to get sweep to sleep to compile and ive run the commits in entirety and it still errors for implicit declarations.
im attaching the log in a zip (since i cant attach .txt files) with the errors if anyone knows to fix this please let me know

Does this support external wifi adapters? I have the kernel and magisk wifi module installed. My wifi adapter chipset is RTL8812BU . lsusb lists it's info but in the driver section says driver=(none)

i think i know whats going on. some kali linux programs and android apks as well look to the /proc/config.gz for the proper configs in order to use them
the problem is that when you make all of the kernel configs needed by kali in order to use everything it creates a system warning at every boot due to a frameworks trigger that also checks /proc/config.gz
if the trigger checks it and it sees that it doesnt match you get the warning.
to fix this we use a commit that packages the original defconfig as the /proc/config.gz
see this commit::
kernel: Use the stock config for /proc/config.gz · Biohazardousrom/[email protected]
Userspace reads /proc/config.gz and spits out an error message after boot finishes when it doesn't like the kernel's configuration. In order to preserve our freedom to customize the kernel ...
github.com
What i can do is make two different kernels. keep the current kernel as is for those that want the kali flex and dont need all the functionality and recompile the kernel with that commit reverted for the power users that need it.
But be warned every time you reboot you will get a system warning. it wont effect anything its just annoying

Duhjoker said:
i think i know whats going on. some kali linux programs and android apks as well look to the /proc/config.gz for the proper configs in order to use them
the problem is that when you make all of the kernel configs needed by kali in order to use everything it creates a system warning at every boot due to a frameworks trigger that also checks /proc/config.gz
if the trigger checks it and it sees that it doesnt match you get the warning.
to fix this we use a commit that packages the original defconfig as the /proc/config.gz
see this commit::
kernel: Use the stock config for /proc/config.gz · Biohazardousrom/[email protected]
Userspace reads /proc/config.gz and spits out an error message after boot finishes when it doesn't like the kernel's configuration. In order to preserve our freedom to customize the kernel ...
github.com
What i can do is make two different kernels. keep the current kernel as is for those that want the kali flex and dont need all the functionality and recompile the kernel with that commit reverted for the power users that need it.
But be warned every time you reboot you will get a system warning. it wont effect anything its just annoying
Click to expand...
Click to collapse
Brilliant idea! That would be wonderful.

Change log: 03/27/23
v1.1
removed non working uci functions
added some tcp optimisations
some other optimisations see branch qpr2-0327
Change log: 03/27/23
v1.1 full
same as above
removed the commit to hide the actual /proc/config.gz
if you use the full version you will receive a system warning at boot. this is an expected annoyance and non harmful but will give you full function of the kernel and all available drivers
if you try an adapter and it still doesnt work check my defconfig at the bottom for your drivers and see if its already configged if not let me know and ill look for the missing drivers.
make sure you have the proper firmware installed for your adapters chipset. this can be done using apt in kali linux or by installing the magisk module from previous post
Mad-Kali-MaxHunter-Pantah/arch/arm64/configs/gki_defconfig at QPR2-0327 · Biohazardousrom/Mad-Kali-MaxHunter-Pantah
Contribute to Biohazardousrom/Mad-Kali-MaxHunter-Pantah development by creating an account on GitHub.
github.com
the kernel folder will have a special folder called kali-full-config and the zip will have full in its name
i also updated the link in op. just navigate to correct folder

Thank you for your work. I will try sometime today.

The kernel flashes successfully. I did not seem to get a warning message. The adapter does not work still sadly. I init and synced QPR1 build system and cloned your repo in to gs-google source. looked up the driver by device ID (https://linux-hardware.org/?id=usb:2001-331c) and it seems the driver is in your source. I ran the BUILD_CONFIG=private/gs-google/build.config.cloudripper build/build.sh command.
It seems to build fine. I'm just not sure what to look for in the /out to make an AnyKernel.
This is my first time lol.

look in the android-kernel/out/android13-gs-pixel-5.10/dist directory
there you will find the
boot.img
dtbo.img
vendor_dlkm.img
vendor_kernel_boot.img
are you sure you flashed the right .zip it should have full in its name
also do you have the adapters firmware installed

Duhjoker said:
look in the android-kernel/out/android13-gs-pixel-5.10/dist directory
there you will find the
boot.img
dtbo.img
vendor_dlkm.img
vendor_kernel_boot.img
are you sure you flashed the right .zip it should have full in its name
also do you have the adapters firmware installed
Click to expand...
Click to collapse
my output was different lol. i'll have to look into it more.
Anyway.. I did not get that error. I flashed the "Mad-Kali-MaxHunter-pantah-tm-qpr2-v1.1-full.zip". I also flashed the magisk firmware module on your github that inlcudes support for "RTL8821/12* (AE/AU/BU)" in the readme. # usb-devices still says there isn't a driver. weird. i guess i'll try to figure out how to get a driver for it.
-I will add that I have StagOS-cheetah-13.0-OFFICIAL-GApps-20230224-2018-update ROM
Thanks for your help.

i updated the nh wireless firmware. i got down to finding the vendor.img for A14 development build using the master android branch.
looked like it was missing some firmware blobs for gs201 and i added all the fw_bcmhd files so hopefully this will help with wifi_sniffer

This is how i get wifi_sniffer to work. first download and install the nethunter firmware magisk module. check permissions of the binaries.
next reboot your device and disable wifi and data. This must be done in order to restart the wlan in monitor mode
now open terminal emulator and either type or copy and paste the commands below
in su shell
Code:
su
# Set bandwidth to 160 MHz for sniffing on 2.4 GHz
Code:
setprop persist.vendor.wifi.sniffer.bandwidth 160
# Set 2.4GHz band
Code:
setprop persist.vendor.wifi.sniffer.freq 2412
# start wifi sniffer
Code:
wifi_sniffer start
#tcp dump to .pcap file
Code:
tcpdump -i radiotap0 type mgt subtype beacon -w /data/beacon-capture.pcap

Wifi_sniffer is only if you have AOSP, right? Or does it work on other ROMs?

should work on any rom. im currently on aicp and it works

Thank you for building a Cheetah Nethunter Kernel

I was able to get it running on stock rom.

Change log: 4-11-23
version bump to v1.2
merge gs-google/refs/tags/android-13.0.0.70
Fixed CVE-2022-4696 :
UPSTREAM: io_uring: add missing item types for splice request
see commits for branch QPR2-0411 for more info
Change log : Mad-Kali-MaxHunter-full
same as above but i changed the version from full to EX, honestly because it sounds better

@Duhjoker
Hey man, why don't you cross-post this in the P7P forum if you're building for Cheetah and Panther?? I just wandered in here, the P7 forum just for the heck of it. I doubt many other guys do the same thing and like me, didn't know this kernel even existed

Related

[EOL] [ROM] [UBUGNG1] [4.3] [Samsung] | [11/08/14] ArchiDroid V1.7.18

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Clean | Stable | Flexible | Optimized | Excellent
-> ArchiDroid 1.X <- || Change to ArchiDroid 2.X
Power In Your Hands​
Changelog
ArchiDroid 1.7.18
- [!] Updated base to I9300UBUGNG1
- [!] Removed all incompatible and outdated themes: AOSP, Blue, S5 # If they get update for UBUNG1 base, they'll be added back.
- Black theme is still available, as it's universal and works with every base
- ArchiDroid 1.X now uses ArchiDroid's 2.X Busybox (previously: Stericson's)
- Fixed hardswap not being activated on ArchiDroid 1.X, when placed on external sd card # Reported by @bolt890
- Removed BBS app as per developer request
- Reverted Modem back to XXUGNA8 # There's no point in including UB modems
- Updated ArchiKernel to 1.4
- Updated Boeffla kernel to 5.4-beta2
- Updated MX Player to 1.7.30
- Updated XPrivacy to 2.2.7
Download
Stable: ArchiDroid 1.7.18 XDA
Bloatware: ArchiDroid UBUGNG1 XDA
Oldstable: ArchiDroid 1.6.4 XDA
Known Issues
All known and unknown Sammy's bugs (if any)
Follow ArchiDroid On XDA!
Write A Review!
Rate This Thread!
Buy Me A Beer!
Like ArchiDroid On Facebook!
Hit Thanks!
XDA:DevDB Information
[EOL] [ROM] [UBUGNG1] [4.3] [Samsung] | [11/08/14] ArchiDroid V1.7.18, ROM for the Samsung Galaxy S III I9300
Contributors
JustArchi
Source Code: https://github.com/JustArchi/ArchiDroid-legacy
ROM OS Version: 4.3.x Jellybean
ROM Kernel: Linux 3.0.x
Based On: Samsung
Version Information
Status: No Longer Updated
Current Stable Version: 1.X-STABLE
Current Beta Version: 1.X-EXPERIMENTAL
Created 2013-08-21
Last Updated 2015-04-04
Reserved
[SIZE="+3"]ArchiDroid's FAQ / Q&A[/SIZE]​[SIZE="+1"]This is the development thread. In case of any non-development questions or issues, you should use above link[/SIZE]​
[SIZE="+1"]Features / Why ArchiDroid?[/SIZE]
First of all, ArchiDroid includes everything available in it's base. The whole point of ArchiDroid is to improve the base, without needing of making any trade-offs, so by flashing ArchiDroid, you're getting everything offered by the base itself. There's nothing to lose, everything to gain.
You can read detailed information about every ArchiDroid component here. It's a massive wall of text, so I'm only going to list the core features without describing them.
These were written from scratch, they're completely unique and you won't find exactly the same implementation in any other ROM.
ArchiDroid-Unique features:
- ArchiDroid's AROMA Installer
- ArchiDroid's Pocket Debian
- ArchiDroid's Flasher
- ArchiDroid's RunOnce
- ArchiDroid's Init
- ArchiDroid's Backend Control
- ArchiDroid's HArdware Volatile Entropy Gathering and Expansion Daemon (Haveged)
- ArchiDroid's Fast Random Number Generator (Frandom)
- ArchiDroid's Adblock (dnsmasq/dnrd, dnsproxy2, pixelserv)
- ArchiDroid's Forced Update
Apart from that, here, on the credits page, you can find all third-party projects, which have been implemented into ArchiDroid. In addition to that, it's up to YOU to decide if you want to install something, or not.
ArchiDroid focuses on flexibility and user choice.
If you're looking for fastest ROM, choose ArchiDroid.
If you're looking for most battery-saving ROM, choose ArchiDroid
If you're looking for cutting-edge functions, choose ArchiDroid
If you're looking for the most flexible rom ever created, definitely choose ArchiDroid
ArchiDroid adjusts to your needs. You can make it whatever you want. With bunch of presets, modes and questions, you can make your ArchiDroid behave. Check yourself why ArchiDroid is The TOP 1 ROM for Galaxy S3http://forum.xda-developers.com/galaxy-s3#romList, according to number of followers, rates, reviews and downloads count. Check the Reviews, take a look at Video Reviews, do whatever you want to, ArchiDroid is proven to be one of the best ROMs for Galaxy S3, ever created.
Try ArchiDroid once, and you'll never look back. I can assure you.
Disclaimer
ARCHIDROID SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THE WARRANTIES THAT IT IS FREE OF DEFECTS, VIRUS FREE, ABLE TO OPERATE ON AN UNINTERRUPTED BASIS, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
Click to expand...
Click to collapse
Your warranty is now void.
I am not responsible for bricked devices, dead SD cards, thermonuclear war, or you getting fired because the alarm app failed. Please do some research if you have any concerns about features included in this ROM before flashing it! YOU are choosing to make these modifications, and if you point the finger at me for messing up your device, I will laugh at you. Hard. A lot.
Click to expand...
Click to collapse
Developer's Kitchen
Unless stated otherwise, all ArchiDroid components are licensed under the Apache License:
Code:
Copyright 2014 [email protected]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Especially:
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
You must give any other recipients of the Work or Derivative Works a copy of this License; and
You must cause any modified files to carry prominent notices stating that You changed the files; and
You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
Click to expand...
Click to collapse
ArchiDroid is one of the most complex ROMs ever created. When you start digging in my work, you can very easily get lost. And I'm not talking about base itself, but about everything next to it. You can use every part of my work, as long as:
1. You include proper credit where you should. This usually includes proper comment in a script/file and in the credits of the project, including license (if needed)
2. You let me know about this fact. Through PM on xda or e-mail
I'm always happy to help, especially with the problems I faced in the past. However I also want to be respected, considering that most of the ArchiDroid parts were written from scratch.
ArchiDroid 2.X vs. ArchiDroid 1.X
The long battle between choosing over ArchiDroid 2.X and 1.X is still recent. There's no one real and true answer to this. It's up to YOU to decide who wins this battle, because obviously every user is different. I'm only going to give you some tips and briefly describe differences.
Despite the name, ArchiDroid 2.X and 1.X are totally different ROMs. It all started with ArchiDroid 1.X, a ROM based on Sammy's stock firmware, with all needed goodies and features baked in. Then eventually I managed to implement everything what I ever wanted to implement, therefore making ArchiDroid 1.X more or less complete. Then I started with ArchiDroid 2.X project, built from scratch from AOSP sources, with all source codes available.
The point is, ArchiDroid 1.X is more or less complete, there's no "real" development going on, as I obviously don't have samsung sources to begin fun with. On the other hand, ArchiDroid 2.X will never be finished, there's always something to improve, something to add, something to fix... This is ongoing process, which will reach the end when I finally break my SGS3 or change the phone to another one .
If you're new user or you don't know how AOSP works on our SGS3s then I highly suggest to flash ArchiDroid 1.X firstly. ArchiDroid 2.X is targeted at advanced users, who don't mind some "core" features being broken. It will NEVER be as stable as ArchiDroid 1.X is, so if stability is the number 1 for you, choose 1.X.
ArchiDroid comparision
From 1-10, based on my own point of view
Stability
2.X - 5
1.X - 8
Compatibility
2.X - 4
1.X - 9
Battery
2.X - 6
1.X - 9
Performance
2.X - 9
1.X - 6
Features
2.X - 9
1.X - 4
Android Updates
2.X - 9
1.X - 6
-----------
Overall
2.X - 42
1.X - 42
This is ArchiDroid comparision in a nutshell. If you ask me, I think that ArchiDroid 1.X is far better choice for daily driver, but if you're advanced user and you know how to deal with possible broken functions then you can have great time using ArchiDroid 2.X as well.
Remember that only ArchiDroid 1.X supports Samsungs-specific features, such as Smart Stay, Screen mirroring, Allshare or whatever. This also includes closed-source proprietary drivers, such as many bluetooth headsets, which won't work under open-source AOSP. Think twice before considering 2.X if you're addicted to these Samsung goodies.
On the other hand, ArchiDroid 2.X is the only ArchiDroid with "real" development going on, however all universal changes are also backported back to ArchiDroid 1.X, so you're not missing any feature, which benefits also Sammy's base.
That's it. I hope that a choice between both of these awesome roms is a bit easier now. If you still can't decide I suggest to flash both of them for some time and then decide which suits you better.
Know Your ArchiDroid
ArchiDroid is not only a rom. It's not only a baked android with third-party apps, modifications and tweaks. ArchiDroid is an universal backend which improves rom by many built-in functions.
Let me tell you a story. During developing first version of ArchiDroid 2.0 I experienced many problems, which were not that easy to solve. First of all - apps data. Trust me or not but you can't simply extract data, put it in /data/data after install and hope that it works. Android will detect such injection, report inconsistent of data and wipe everything attached to that. Okay so... How I should provide you with my boeffla preset? CoolTool settings? STweaks profile? If I put my data during flashing it'll get wiped. If I put my data and deny wiping it then Android will report inconsistent of data to user and work unstable. Yes guys, it's impossible to do so without a trick or without recompiling whole rom.
I won't tell you a whole story, because you probably don't want to hear about ArchiDroid development. I'll simply tell you that I overcome MANY difficulties, simply because I do what I like, and I like what I do. After countless number of hours, I can finally provide you with the ROM, which is the best. Why is it the best? Because I'm improving the base, and I'm not making any trade-offs.
GitHub / Versioning / Experimental Versions
ArchiDroid version contains 3 numbers. X.Y.Z. X is the base number of the rom. For now it won't change because ArchiDroid 1 is based on Sammy Rom and ArchiDroid 2 is based on CyanogenMod. Basically we have two numbers left, Y and Z. Y number will change when I'll implement something really new, when I'll make some advanced improvements or after many Z changes. Z number is the "standard" update, like updated sources, some bugfixes and so on.
I've learned many things since releasing of first ArchiDroid 1.0.0. Because of that I've also created a GitHub repository, which you can find here. What does it mean for you? First of all as you can see there are 4 different branches. 2.X-STABLE, 2.X-EXPERIMENTAL, 1.X-STABLE and 1.X-EXPERIMENTAL. What does it mean? You can enter selected branch and click on "Commits" button to see every single update which I've made to selected branch. Experimental branches will get updates nearly every single day, especially 2.X-EXPERIMENTAL because of many AOSP changes and updates. Additionally after some tests I'll merge current 1.X-EXPERIMENTAL into 1.X-STABLE and provide as update, of course if current experimental will be stable enough to do so.
However that doesn't mean you need to wait for my updates! You can easily "pack" latest experimental and flash without needing to wait for my weekly build. I'll tell you how to download and flash it by yourself.
You can see differences between current stable and experimental here.
[Newbie Version]
1. Open 1.X-EXPERIMENTAL branch.
2. Click on Download Zip button located in bottom-right corner.
3. Install 7-Zip if you don't have that already. Other programs may, or may not work correctly.
4. Right-Click on zip, select Extract Here
5. Navigate to newly created ArchiDroid-1.X-EXPERIMENTAL folder
6. Select all files WITHOUT __dont_include folder, right-click and select 7-Zip => Add to archive
7. Make sure that you have zip format, Fastest compression (to save some megabytes) and Deflate method of compression.
8. Voila, copy newly created ArchiDroid-1.X-EXPERIMENTAL.zip to your phone and flash as usual.
[Expert Version]
1. Install Git for Windows or Linux
2. If you're on windows then make sure that windows won't change LF into CRLF (git config --global core.autocrlf false)
3. Clone my git repository using .git file. Keep in mind to specify depth, as this repo is really big. (git clone https://github.com/JustArchi/ArchiDroid.git --branch 1.X-EXPERIMENTAL --depth 1)
4. Select all files WITHOUT __dont_include folder zip them into standard .zip format with Deflate compression or without any compression.
5. Copy .zip to your phone and flash as usual
6. In order to update your local repo execute git pull origin 1.X-EXPERIMENTAL and go to point 4.
Additionally you can watch my short video, which shows how to flash experimental ArchiDroid going through "Expert Version".
Video Reviews / How ArchiDroid looks like?
@Koogly
@SkywalkerZ
ArchiDroid User Signatures
ArchiDroid Features
Know your ArchiDroid, learn how to use it
Introduction / Basics
Welcome to ArchiDroid's world mortal. In this tutorial we will show you what ArchiDroid has "inside" and what it really offers. All of things included in this post are ArchiDroid-specific, which means that you won't find any ROM with the same features, as they're written from scratch.
Here you can find some definitions of the words used in sections below. You should know most of them, but in case somebody is lost here you can get back on track.
Terminal, Shell - Typical android shell, which may be obtained in three ways.
1. Through native Android Debug Bridge (ADB) with command "adb shell" from the PC or even "ADB through network" (if supported).
2. Through any Android terminal app, f.e. Android Terminal Emulator bundled with ArchiDroid.
3. Through secure shell daemon (sshd), which needs to be turned on firstly. This is extremely useful in terms of pocket debian, which will be described later.
You can use any of these methods to access android's terminal, however usually Android Terminal Emulator will be the easiest one, as it's android app bundled with ArchiDroid. WARNING! Most of the commands below WILL require root access. You can log in to super user shell by "su" command right after obtaining shell. If you're unsure if you're logged as root or not, "whoami" command should print actual user, "root" or "unknown uid 0" are OK, others are not.
ArchiDroid's Pocket Debian
From wikipedia:
Debian is an operating system composed of free software mostly carrying the GNU General Public License. The operating system is developed by an internet collaboration of volunteers aligned with The Debian Project.
Click to expand...
Click to collapse
From debian site:
As most of you know, Linux is just a kernel. And, for a long time, the Linux kernel ran only on the Intel x86 series of machines, from the 386 up.
However, this is no longer true, by any means. The Linux kernel has now been ported to a large, and growing, list of architectures. Following close behind, we have ported the Debian distribution to these architectures. In general, this is a process with a sticky start (as we get libc and the dynamic linker working smoothly), and then a relatively routine, if lengthy job, of attempting to recompile all our packages under the new architectures.
Debian is an operating system (OS), not a kernel (actually, it is more than an OS since it includes thousands of application programs)
Click to expand...
Click to collapse
How exactly this covers our beloved SGS3 (and countless number of other android arm-based phones)?
As you may (or even should!) know, Android operates on it's own Linux-based kernel. Android's kernel is literally a fork of Linux kernel, with a few special/unique functions which are required, mostly hardware-specific. Because of that kernel itself is VERY compatible with everything based on Linux.
However there have always existed one typical problem, lack of proper environment. We have a great kernel, great power, linux-based android environment, but this environment lacks of very common and required libraries/binaries. If you ever wondered what is or what does busybox, this is the answer. Busybox is just a small package which offers a few standalone GNU/Linux binaries, which are required to make certain things work. For example, swap priorities. Android knows what swap is, and nothing else. It doesn't know that swap could have a priority, so if you use android's swapon command on 4 devices, it will firstly fill first device, and then proceed to the next. That's why we need busybox in ALL custom kernels, because android environment isn't enough.
However busybox sometimes isn't enough. If we focus only on Android itself, it is. But if you for example want to run stricly linux-based service, I don't know, a web server for example... Is it possible to run a native linux web server on an android? No, it's not. You should firstly compile such service on arm architecture, including all dynamic and static libraries (wrrr ) in it only to finally get mad because of missing libraries or other dependencies. Of course if you're patient you'd finally compile everything and set up, however how long would it take? A few days maybe? If you're skilled in what you're doing...
This is why I included built-in "pocket" debian in ArchiDroid. It's FULLY compatible with everything compiled/based on armhf/armel GNU/Linux architecture, for example Raspberry Pi. With two easy commands you can literally jump into debian environment and use every typical GNU/Linux utilities known from debian itself. Of course this means nothing for most of the users, because they'll never have any reason to use such debian environment but from the developer side, it's big step forward. The best example is with github. As you know ArchiDroid has it's own repo on github, from where you can download/manage stuff. There also exists git app for linux and windows. If you want to follow "expert" way of flashing experimental ArchiDroid version, such program is required. The scenario is the same as compiling web server for an android, it requires much more effort than it's worth. And even then you can end up with syncing external dependencies and searching for solutions for the problems you've never seen before... And with ArchiDroid's pocket debian? It's as simple as in any debian/ubuntu distro. "apt-get update && apt-get install git" and voila. Your git is installed and ready for work. Going further I've even included git in pocket debian itself. Okay, I have debian, I have git, and what next? With git utility I can for example provide you with delta updates for ArchiDroid! ArchiDroid can easily use pocket debian to set up and sync ArchiDroid's repository and then pack and flash latest version without even needing of a PC, using 7-zip or anything else. Another example? A web server. I know that it's very dev-specific but if you for any reason need a web server running, just for example to test simple website, you can have it with just one command. Going further, VNC? MySQL server? PHP? Python? Perl? Ruby? Maybe conditional tasks with cron? Persistent minimal IRC client? rtorrent with rutorrent GUI over WWW? The list goes on... Anything based on linux will work. You can even host a server for your favourite game, as long as it has armhf/armel binaries (unfortunately most of the games don't).
So that's it. In short, debian is an operating system built-in in ArchiDroid to provide you with (unfortunately missing) GNU/Linux environment, with full power, ready to handle anything you could request. I made my best to include fully working debian in ArchiDroid for a minimal cost. Whole OS is packed in one big tar file, compressed using highest bzip2. As for now pocket debian has ONLY 40 megabytes of size, maybe in future it will have up to 50 megabytes, but no more. It's a VERY small cost for having such great power, especially if you know how to use it.
This is a really cutting-edge feature, mostly because I have no limitiations what I can include in my ROM right now, and while other developers are dealing with OpenDelta updates and many Android-based problems, I'm just launching my pocket debian and manages linux stuff.
I'm SURE that most of the advanced ArchiDroid user will just LOVE this feature, as much as I love it. I'm looking forward to your responses how YOU use pocket debian with your ArchiDroid. It's also a great time to learn what does the debian offer and how you can simplify your common tasks with just one example debian utility .
Technical informations:
1. Pocket Debian does not cause any additional overhead. We don't need to use emulation, neither virtualization to boot our monster. I used chroot technology to "jump" into debian environment with already running kernel and Android. That means additional required CPU/RAM is based on what you run in pocket debian. Booting itself doesn't require anything, just about one megabyte of ram for /bin/bash shell .
2. Android has some restrictions, mostly sockets. It doesn't allow to create inet sockets by default, even for root users. You will need to add your custom debian users to special group called "inet" (GID 3003) to allow creating of inet sockets, and you may also need to add a group to net_raw group (GID 3004) to allow creating of raw sockets. Please keep in mind that it's only required if you're running an app which required it's own socket, for example mysql server. So apt-get install mysql-server will fail right after booting, you will need to use "addgroup mysql inet" and then apt-get -f install to complete installation. Of course "mysql" is the new user under which mysql-server really operates. I've added root to both of these groups by default.
3. The only "real" restriction is the kernel. Our debian uses Android kernel and it's filesystem. It should work with most common tasks but in some cases our kernel may lack specific modules or built-in code, for example tun/tap required for OpenVPN. Still it's enough to run pretty much everything and if you get in touch with your favourite kernel developer you can also kindly ask for specific missing things.
4. Debian is built and included thanks to debootstrap utility, ArchiDroid command used for creating debian environment is debootstrap --verbose --arch armhf --include=git,ca-certificates,ssh,htop,tightvncserver,xterm,xfonts-base --exclude=manpages,man-db,rsyslog,vim-common,vim-tiny testing debian http://ftp.fr.debian.org/debian
HowTo:
Pocket Debian contains two main terminal commands, "adlinux" and "debian". Both of them are described below. By adlinux and debian you boot and jump into debian's chroot, which means you can use any debian-specific commands.
Examples:
passwd - changes password of actual user. This is needed to login as specific user, for example through ssh.
service ssh start - starts local SSH (secure shell) daemon on native port :22, to which you can easily access via any client supporting ssh, f.e. PuTTY. So basicly after you start shell you can literally connect to your local area network (LAN) IP on port 22 f.e. through PuTTY from your PC.
ifconfig - prints network-related informations about online interfaces, including your local IP, which may be useful for connecting to SSH.
htop - Enhanced top utility. Gives you very good terminal-based view on actual running processes, used ram, load, and more.
apt-get update - Syncs with debian's apt repository. This is mandatory to use many of apt commands because ArchiDroid's debian comes without local repo available, however fully configured to download and access it with just one command
apt-get install XXX - installs packet XXX from debian's repository.
apt-cache search XXX - searches for all packets including keyword "XXX". Ultra useful in terms of searching for specific packet.
Please note that pocket debian is VERY similar to normal native Debian/Ubuntu distribution, therefore above commands are not ArchiDroid's magic, they're very widely used in Debian/Ubuntu distros. If you want to learn more, most of the Debian/Ubuntu tutorials will be very helpful.
ArchiDroid's Pocket Debian Booter (adlinux)
You can call "adlinux" command from your favourite terminal.
adlinux is designed to boot and prepare ArchiDroid's Pocket Debian environment. It requires mode to be specified, and also respects any extra arguments passed.
If you call standalone "adlinux" command then it will print usage and then ask you what you want to do with giving proper informations about every choice. Additionally if you know what you want to do, you can also pass arguments directly to adlinux command, f.e. by executing "adlinux default", which will execute adlinux with "default" mode.
Available modes:
default - Will mount /data /system /storage/sdcard0 /storage/sdcard1 and core filesystems in chroot. Default suggested mode
safe - Will mount only core filesystems in chroot. Useful if you don't want to share your storage in chroot
bare - Won't mount even core filesystems such as /proc /dev or /sys. Requires "debian force" to enter chroot. This is the "real" safe mode. You won't be able to interact with an android in any way, while debian itself will work in very limited environment, making core functions unavailable. Suggested only for testing purposes
rebuild - Will automatically reboot your device and remove debian folder in the safe way. WILL CAUSE ALL DEBIAN DATA TO BE LOST!
unmount - Will automatically reboot your device to safely unmount debian environment
Extra options:
extsd - Use external sd card (/storage/sdcard1 /storage/extSdCard), if possible
intsd - Use internal sd card (/data/media/0)
Additional information about modes:
Debian shares core kernel filesystems in "safe" and "default" modes, while it also shares your internal and external sd card in "default" mode. This is nothing to be scared of, as you have full control of what you run in debian, however please note that you CAN'T do whatever you want. All mounted partitions in debian are "binded". "Bind" means that it's mirrored to the mount point and all changes on mounted partition WILL affect the mount point, which is logical. This is nothing to be scared of, as long as you know that debian only extends your environment, it does not fully works in it's own and you CAN cause serious problems from inside of chroot. The only really safe mode is "bare" mode, however in "bare" mode debian can't really do anything, as kernel filesystems are absolutely required for most of the functions. Okay so, you need to know one thing. If you have booted debian you SHOULD NOT touch debian's folder, which is ArchiDroid/debian (on your internal or external sd card, depends what you choosed).. As you know debian for example binds /data to it's folder /data, which is physically ArchiDroid/debian/data. If you for example delete ArchiDroid/debian through root explorer WITH mounted debian then it will ALSO delete debian/data folder, which is binded to /data, and therefore will delete your whole internal sd card, that's why it's extremely important to take care because booted debian becomes part of the android and deleting it can cause at least soft bricks, with a possibility of hard as well. If you want to delete debian folder PLEASE use "rebuild" mode, only through this way you're absolutely sure that nothing bad happens and you won't delete your whole system partition by accident.
Note about extsd option:
Debian requires symlink functionality, typically native windows filesystems DON'T support symlinks, therefore you need to have your external sd card formatted in one of the native linux filesystems, f.e. ext4. adlinux will automatically tell you if debian can be unpacked and used on your external sd card, however it won't be possible under most common filesystems, such as exFAT or FAT32.
Technical informations:
1. Pocket debian archive is located in ArchiDroid/System/debian.tar.gz file. This is "bare" system used for creating environment for the first time, you should not touch it.
2. adlinux detects if debian is already extracted when booting, if not, it's firstly extracted from the file described above.
3. After extracting (if required), core filesystems are mounted with "bind" option based on the mode you've selected in "mode" question above. Typically it mounts /data /system /storage/sdcard0 /storage/sdcard1 /storage/extSdCard /dev /proc /sys.
4. Unmounting is not fully supported right now (linux barrier), therefore both "unmount" and "rebuild" options require a restart to execute properly.
ArchiDroid's Pocket Debian Shell/Chroot (debian)
You can call "debian" command from your favourite terminal.
debian command is designed to allow you "jumping" into debian chroot created by adlinux. Please read how adlinux command works firstly if you haven't done that already. debian command checks if core filesystems are available (if debian is booted), and if they are then it firstly modifies required environment variables to make debian happy (such as TERM, HOME, PATH), then it changes root (chroots) into debian folder, therefore allowing you to execute everything from inside of chroot. It's very generic command, therefore standalone "debian" command won't give you a choice the way adlinux did.
Available options (parameters):
force - required for jumping into bare debian, created with "adlinux bare" command above. This skips debian checks for mounted core filesystems, normally you should avoid it at all cost, unless you know what you're doing. If core filesystems are missing then it's very likely that your debian will be disabled in more than 90%.
extsd - Use external sd card (/storage/sdcard1 /storage/extSdCard), if possible
intsd - Use internal sd card (/data/media/0)
cmd - Executes command in debian chroot
WARNING! cmd parameter will cause all further parameters to be threated as a command passed to debian, therefore you need to make sure that this is the last debian parameter which you want. For example "debian force cmd service ssh start" will skip filesystems checks and execute "service ssh start" in debian's chroot, however "debian cmd force service ssh start" will pass "force service ssh start" to debian, therefore respecting filesystems checks and passing invalid command.
This function is extremely useful for making init.d and other startup scripts. For example you can easily call "adlinux default" and then "debian cmd service ssh start" to call secure shell daemon on every boot with two easy steps.
Technical informations:
1. debian command uses chroot technology to change root of current shell to debian shell.
2. After chrooting to debian directory, /bin/bash shell is automatically called as default debian shell.
ArchiDroid's Flasher (adflash)
You can call "adflash" command from your favourite terminal.
adflash is a great small utility, which allows you to easily update your ArchiDroid to latest stable or experimental version with one easy command and delta upgrade. It utilizes ArchiDroid functions, therefore you must be running ArchiDroid to use it.
If you call standalone "adflash" command then it will print usage and then ask you what you want to do with giving proper informations about every choice. Additionally if you know what you want to do, you can also pass arguments directly to adflash command, f.e. by executing "adflash 2e git", which will execute adflash with 2.X-EXPERIMENTAL version using git mode.
Available versions:
2e - 2.X-EXPERIMENTAL
2s - 2.X-STABLE
1e - 1.X-EXPERIMENTAL
1s - 1.X-STABLE
Extra options:
git - Sets up local git repository, which gives you delta upgrades and bandwidth saving
direct - Downloads targeted branch as .zip file directly from github
clean - Cleans everything up, including local repo and tmp folder from ArchiDroid directory specified below
extsd - Use external sd card (/storage/sdcard1 /storage/extSdCard)
intsd - Use internal sd card (/data/media/0)
nozip - Shows changelog and changes only
Okay so, the most interesting option is the mode...
Direct mode is simple, fast and effective. It downloads target version (stable or experimental) from GitHub server, then it repacks downloaded zip file and makes it available for flash. You should use this mode for one-time downloads, such as once per stable version or two. The only advantage of this method is the ability to download from github (and with one command).
Git mode is complex. It uses ArchiDroid's Pocket Debian (read above) for cloning and updating local ArchiDroid repo. This gives several number of advantages, mostly for using experimental versions. Firstly, by having local ArchiDroid repo you have to download ONLY changes between your snapshot and server's snapshot, which means delta upgrades. Secondly, you have access to all commits from target branch, so you know exactly what has changed since your latest download. Again, this is extremely useful for experimental branch, as changelog may not be up-to-date. Keep in mind that git mode will require additional space on your device for keeping ArchiDroid repository, therefore you sacrifice some space for delta upgrades. This mode is extremely useful for flashing ArchiDroid often, for example daily experimental versions, because in fact you download only new commits instead of whole repo/archive.
ArchiDroid's RunOnce (Backend)
ArchiDroid's Init (Backend)
ArchiDroid's Backend Control
ArchiDroid Backend Control is a set of settings, which controls behaviour of ArchiDroid's Init. It's located in /system/archidroid/dev and contains a number of files, which are recognized by ArchiDroid's Init. You shouldn't directly touch /system/archidroid/dev, instead you can control behaviour of ArchiDroid's Backend through /system/archidroid/scripts. They can be easily executed through any script manager, f.e. Root Browser or Android Terminal Emulator. Some of the settings are also located in /system/archidroid/etc folder, mostly configurations for binaries utilized by ArchiDroid's Init.
ArchiDroid's HArdware Volatile Entropy Gathering and Expansion Daemon (Haveged)
The haveged project is an attempt to provide an easy-to-use, unpredictable random number generator based upon an adaptation of the HAVEGE algorithm. Haveged was created to remedy low-entropy conditions in the Linux random device that can occur under some workloads, especially on headless servers. Current development of haveged is directed towards improving overall reliablity and adaptability while minimizing the barriers to using haveged for other tasks.
The original HAVEGE research dates back to 2003 and much of the original haveged documentation is now quite dated. Recent work on haveged has included an effort to provide more recent information on the project and its applications.
The original research behind HAVEGE use was based upon studies of the behavior of processor caches from a hardware level. The 'Flutter' documents attempt to provide a modern view of HAVEGE at software level through the use of a diagnostic build of haveged that captures the non deterministic inputs to haveged for analysis by external tools.
ArchiDroid has built-in haveged entropy generator. It's controlable through ArchiDroid's Backend Control - ArchiDroid_Haveged_EnableDisable.sh. It's turned on in default configuration, through HAVEGED_ENABLED
ArchiDroid's Fast Random Number Generator (Frandom)
Frandom is a Linux kernel random number generator, which is 10-50 times faster than what you get from Linux' built-in /dev/urandom. And it uses very little (/dev/frandom) or none (/dev/erandom) of the kernel's entropy pool, so it is very useful for applications that require a handy source for lots of random data.
ArchiDroid has built-in frandom activator. It's controlable through ArchiDroid's Backend Control - ArchiDroid_Frandom_EnableDisable.sh. It's turned on in default configuration, through FRANDOM_ENABLED.
Notice: Kernel must support frandom module to actually make use of that. Init will try to search for frandom.ko module and load it, then use /dev/erandom for both /dev/random and /dev/urandom. If your kernel supports frandom, it will work. If it doesn't, obviously this will be skipped even if you have FRANDOM_ENABLED. Check ArchiDroid Init log located in /data/media/0/ArchiDroid/Init.log to check if frandom works properly for you.
ArchiDroid's Adblock (dnsmasq/dnrd, dnsproxy2, pixelserv)
dnsproxy2 is a replacement DNS proxy for Android 4.3+
This currently allows the user to manually override the DNS server IP,
and it sets the correct UID on outbound requests so they can be filtered
via iptables / AFWall+ / DroidWall / etc.
Dnsmasq is a lightweight server designed to provide DNS, DHCP and TFTP services to a small-scale network. It can serve the names of local machines which are not in the global DNS. The DHCP server integrates with the DNS server and allows machines with DHCP-allocated addresses to appear in the DNS with names configured either in each host or in a central configuration file. Dnsmasq supports static and dynamic DHCP leases and BOOTP for network booting of diskless machines.
Dnrd, Domain Name Relay Daemon is a caching, forwarding DNS proxy server. Most useful on vpn or dialup firewalls but it is also a nice DNS cache for minor networks and workstations.
Pixelserv is a super minimal webserver, it's one and only purpose is serving a 1x1 pixel transparent gif file. Using some creative firewalling (netfilter/iptables) rules you can redirect some webrequests (for adds for example) to pixelserv.
ArchiDroid has built-in Adblock. It's controlable through ArchiDroid's Backend Control:
ArchiDroid_Adblock_DnsmasqDnrdModeSwitch.sh
ArchiDroid_Adblock_EnableDisable.sh
ArchiDroid_Adblock_EnableDisableLocalDNSes.sh
ArchiDroid_Adblock_EnableDisableLocalDNSesDaemon.sh
ArchiDroid_Adblock_LockUnlockHosts.sh
ArchiDroid_Adblock_MoabAdawayHostsSwitch.sh
ArchiDroid_Adblock_Reload.sh
It's turned on in default configuration, through:
ADBLOCK_ENABLED
ADBLOCK_LOCAL_DNSES_DAEMON_ENABLED
ADBLOCK_LOCAL_DNSES_ENABLED
ADBLOCK_USE_ADAWAY_HOSTS
ADBLOCK_USE_DNSMASQ
In short. This is a very advanced and powerful solution for blocking ads through DNS queries. First of all we're forwarding all DNS traffic to localhost (127.0.0.1). Then we're handling them through local DNS server - dnsmasq (default), or dnrd (option). Our local DNS server reads blocked hostnames through special /system/archidroid/etc/hosts file, then if no record is found, it forwards DNS query to OpenDNS/Google DNS servers, or if it's found, returns 127.0.0.1 as the address. Lastly, pixelserv is providing a 1x1 NULLGIF response on local web server, so instead of big black/white screen instead of the AD, we get 1x1 transparent pixel, which usually perfectly hides ad from the app or the website.
Extra features:
1. You can specify if you want to use dnsmasq (default), or dnrd (option) as a local dns server. Dnsmasq is more flexible, modern, faster and has less memory footprint, however I also left dnrd as an option, because it's proven to work stable.
2. You can specify hosts file, which you want to use. In default configuration we use AdAway's hosts file, with more than 30 thousand of records, which results in extra ~2.5 MB memory usage. You have also an option to use MOAB (Mother Of Ad Blocking) hosts file, with more than 330 thousand of records, which will result in about ~30 MB memory usage. Eventually you can append your own rules or use non-standard hosts file, available in /system/archidroid/etc/hosts. Pro tip: You can point AdAway to use this hosts file (/system/archidroid/etc/hosts_adaway), which will result in automatic updates. /system/archidroid/etc/hosts is a symbolic link, either to hosts_away or hosts_moab, if you want to specify your own hosts, you can delete symbolic link and write your own rules.
3. Original /system/etc/hosts file has been locked from editing. This is to ensure that AdAway or other adblockers won't use obsolete and slow method of blocking ads through hosts. The whole point of implementing Adblock in ArchiDroid is to provide you with super-fast, flexible and effective way of blocking ads, also with getting rid of black/white ad screen. In 99% situations you don't want to touch ArchiDroid's default behaviour, as it blocks ads perfectly. Eventually, if you have a very good reason, you can unlock original hosts file through ArchiDroid's Backend Control and modify them, however keep in mind that every additional rule WILL slow down your network speed.
4. In default configuration local dns server uses two OpenDNS servers at port 5353, two Google DNS servers at port 53 and up to two local DNS servers provided by your Wi-Fi/3G connection, which overall gives a sum of 6 remote dns servers. In some rare scenarios (f.e. some wi-fi hotspots) you can notice that a moron, administrator of this wi-fi, blocked all dns queries and forces you to use his DNSes. This is BAD because of freedom and so on, but it's very common practice, that's why I turned on local DNSes as well. If you want to improve your privacy at least a bit, you can disable local DNS servers and then use only OpenDNS and Google DNS.
5. Above option initialy has been written to allow you one-time access to such non-trusty wi-fi's. But if you for any reason need automatic update of your local DNSes (3G and Wi-Fi's will use different local DNSes), you can also turn on Local DNSes Daemon, which will automatically query and update local DNSes if needed. This is also turned on in addition to local dnses above, of course in default preset.
ArchiDroid's Forced Update (RunOnce)
Forced update selected during mode selection in aroma tells RunOnce to work in "INSTALL" mode even on "UPDATE" mode, apart from that it works exactly the same as update mode, only RunOnce is affected.
Credits
ArchiDroid Core
- AROMA Installer
- AROMA Filemanager
- Devil Kernel
- Googy Max Kernel
- PhilZ Touch Recovery
- SuperSU
- Nova Launcher
- TouchPal Keyboard
- Hacker's Keyboard
- Android Terminal Emulator
- BetterBatteryStats
- Cool Tool
- Greenify
- MX Player & Custom Codec
- LMT
- Root Browser
- Titanium Backup
- Online Nandroid
- Xposed Framework
- App Settings
- XPrivacy
- GravityBox
- Debian
- cURL
- GitHub
ArchiDroid 2.X
- OmniROM for GT-I9300
- Linaro Toolchain
- Boeffla Kernel
- Yank555.lu Kernel
- AGNi Kernel
- Spirit 2
ArchiDroid 1.X
- SamMobile
- ArchiKitchen
- Boeffla Kernel
- Yank555.lu Kernel
- AGNi Kernel
- KitKat Revolution Theme
- Blue Theme
- All Backs Black Theme
- S5 Theme
- Wanam Xposed
Special thanks to:
- Kenshin, for graphic design and ArchiDroid Touhou bootanimation
- @mrtur, for graphic design and helpful hand during ArchiDroid experimental tests
- @malachow, for helping users across both international and polish board, sharing the spirit of ArchiDroid
- All ArchiDroid Contributors, for improving and making ArchiDroid better!
- ArchiDroid Facebook Group, for beta-testing the very first alphas of ArchiDroid 2.0.0
- ROM Cleaner, for awesome generic list of bloatware
- Android Revolution HD, for being ex-ArchiDroid 1.X base
- WanamLite, for being ex-ArchiDroid 1.X base
- Temasek's Unofficial Build, for being ex-ArchiDroid 2.X base
- crDroid, for being ex-ArchiDroid 2.X base
- You, for choosing ArchiDroid over other available ROMs
Reserved
Sent from my GT-I9300 using Tapatalk 2
Ah, and because some people are asking already. Yes you can install this rom without any modification and in fact get clean Android Revolution HD, just without bloatware. In fact you can install full bloatware as well in included .zip file. That's what I call flexibility .
Just what I was looking for. Excellent job!
Haha Polak witam wśród deweloperów
welcome among developers
SGS III / Grisza Monster Beam v7.1 / Perseus 35 / JKay deluxe framework 14.93.1 / JB Domination (edit by me) / Tapatalk 2 / Swype
grzesdroid said:
Haha Polak witam wśród deweloperów
welcome among developers
SGS III / Grisza Monster Beam v7.1 / Perseus 35 / JKay deluxe framework 14.93.1 / JB Domination (edit by me) / Tapatalk 2 / Swype
Click to expand...
Click to collapse
No cześć .
I've probably just fixed CrossBreeder issue but I won't release a version just with this fix, it's not needed anyway for clean install .
Looking forward to opinions from the community!
any screen shot of the battery life?
Sure.
It's just a deep sleep without wifi/gps/data connection. Of course battery usage depends on your usage of the phone so I prefer to take shots with ROM just turned on, without any additional apps.
~12 hours. I can update this screenshot after some time with normal usage if somebody wants to .
Default settings from AROMA.
Yes please normal use & the screen on time when the battery is low
Sent from my GT-I9300 using Tapatalk 2
Sure, I've just locked screen on "always on", will report back in few hours.
Hey.
Sorry for no screenshot but I totally forgot about that and needed to test some new things in my next release :laugh:
Anyway when I last checked it drained about 15-20% of battery with screen on (lowest brightness) for 1 hour and 50 minutes. I don't have a screenshot but you can obviously try yourself and confirm my report. Battery usage mostly depends only on the usage of the phone. As long as it's clean from bloatware, running newest firmware and well-made kernel then only very little things could change it to drain even less, for example greenify included in my rom already :good:
However I'll try to upload screenshot prove of battery draining when I'm finished testing new cool things.
And now special thing for ArchiDroid users already:
Dirty Changelog for 1.1:
- Crossbreeder issue fixed (needs testing, hangs only after direct format of /sdcard or /data/media, I'll need to check that again)
- Elegant theme added as default (needs permissions from the author, awaiting). Of course JB Domination still available.
- Shark Kernel added (needs permissions from the author, awaiting)
- Cleaned up aroma config a bit to make further upgrades easier to implement.
- Still waiting for XXEMC3 from mike, but it'll be last build on XXEMC2 probably.
- Some hidden tweaks which need further testing .
look good. i see this thread when im exploring Android HD. Gonna give a try. And will report back soon
A little change of plans, ArchiDroid 1.1 will be already on XXEMC3. Looking forward to mike's release of ARHD and then instantly pushing it as my current base.
So dear user, if you haven't already downloaded ArchiDroid... wait a little more!
i been tested ur rom. Seem very smooth, fast and battery friendly. Keep up a good work. I will support u.
---------- Post added at 09:48 AM ---------- Previous post was at 09:42 AM ----------
add 1 more custom dpi. 270 dpi. lol. love that look. but it will need some config on samsung stock app in xposed
Thank you, trying my best with optimization .
I'll look what I can do with 270 dpi. Probably it'll work without problems but need some further tests. Also I'm merging ARHD 25.0 now so I guess ArchiDroid 1.1 will be ready this evening .
cant wait to try out your rom man

[EOL] [ROM] [5.1.1] [CyanogenMod] [GCC 4.9] [Excellent] [12/11/15] ArchiDroid V3.1.5

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Clean | Stable | Flexible | Optimized | Excellent
Changelog
ArchiDroid 3.1.5
- Newest ArchiKernel snapshot
- Updated GAPPS, sources and other common things
ArchiDroid 3.1.4
- Newest ArchiKernel snapshot
- Updated GAPPS, sources and other common things
ArchiDroid 3.1.3
- [i9300] Changed malloc implementation to dlmalloc
- Implemented dex-preoptimization for ART
- Removed xposed due to incompatibility with dex-preoptimized ART
- Newest ArchiKernel snapshot
- [nicki] AK: Added mpdecision switch to Synapse
- Updated GAPPS, sources and other common things
ArchiDroid 3.1.2
- Switched arm-linux-androideabi toolchain back to SaberMod
- Fixed wrong auto-vectorization of ID3 iterator causing various media crashes with badly-tagged MP3s
- Newest ArchiKernel snapshot
- Updated GAPPS
- Updated Xposed
- Other misc changes and bugfixes
ArchiDroid 3.1.1
- ArchiDroid Optimizations V4.1
- ArchiDroid is now built with UBERTC 4.9 androideabi (instead of SaberMod 4.9) and 5.2 ArchiToolchain eabi (instead of 5.1)
- Newest ArchiKernel snapshot
- Updated GAPPS
- Updated Xposed
- Other misc changes and bugfixes
ArchiDroid 3.1
- Initial release
Important notes
- YOU DIRTY FLASH AT YOUR OWN RISK.
- FULL WIPE IS ALWAYS SUGGESTED WHEN FLASHING NEW VERSION.
- DON'T EXPECT A BUGLESS EXPERIENCE IF YOU DIRTY FLASH OR USE TITANIUM BACKUP.
ArchiDroid 3.1 is major new release based on CyanogenMod 12.1 (Android 5.1.1 Lollipop). There are too many changes compared to previous release of AD 3.0.2, so you should treat this version as totally new ROM. Here you can find some important notes to make update easier, and to avoid some possible issues:
- If coming from AD 3.0.2 or any other ROM, regardless what it is, you should make full wipe. ArchiDroid is smart enough to detect itself during install and offer you an update, but this option should not be used with major release such as this one. Full wipe in necessary.
- It also means that you should AVOID restoring old, incompatible data with apps such as Titanium Backup. Full wipe means full wipe, not half wipe and restoring data later. Of course, it's up to you if you want to follow my suggestions or not, but do not expect that you'll have bugfree experience otherwise.
- You should update your recovery prior to flashing, again, regardless of what recovery you have now. The best way is to do so right from ArchiDroid ZIP, as AD offers updating recovery prior to flashing the rest, from AROMA. On the preset screen you can choose "Recovery" to update to latest (confirmed working) TWRP for i9300, reboot recovery and flash the rest. Only TWRP is supported by me, AD should be universal enough to be flashed with other recoveries as well but you're on your own doing so.
- While not mandatory, I suggest also a wipe of whole internal SD card (/data and /data/media), as this will make sure than no junk is left. If you don't want to do so, at least make sure to remove /data/media/0/ArchiDroid folder prior to flashing, even if you have experimental AD 3.1 already. I do not track all regressions and doing so will make sure that backend works in intended way. A best way to do so is to update your recovery first, then through TWRP file manager navigate to /data/media/0 and remove whole ArchiDroid folder.
- AD already has built-in GAPPS, provided by OpenGApps project. Flashing other GAPPS is not recommended, but if you know what you're doing you can still untick all Google Apps offered in AROMA (Whole GAPPS category including core gapps + also google launcher and google keyboard) and install your own GAPPS package after AD installation. Although, as I said, I suggest to stick with AD gapps, as they're proven to be working well, and they're tested by me and other experimental users.
TL;DR
- Make full wipe
- Update recovery prior to flashing
- Wipe internal storage, or at least remove /data/media/0/ArchiDroid
- Flash AD
- Do not restore old data through titanium backup
- Enjoy your fresh ArchiDroid experience
Download
All Files XDA
Stable: ArchiDroid 3.1.5 GitHub | XDA Direct | XDA Torrent
Oldstable: ArchiDroid 3.0.2 GitHub | XDA Direct | XDA Torrent
Remember that you don't need anything else to flash. Google Apps are included already.
Known Issues
All known and unknown CyanogenMod bugs (if any)
Follow ArchiDroid On XDA!
Like ArchiDroid On Facebook!
Write A Review!
Rate This Thread!
Buy Me A Beer!
Hit Thanks!
Like ArchiDroid On Facebook!
Hit Thanks!
XDA:DevDB Information
[EOL] [ROM] [5.1.1] [CyanogenMod] [GCC 4.9] [Excellent] [12/11/15] ArchiDroid V3.1.5, ROM for the Samsung Galaxy S III I9300
Contributors
JustArchi
Source Code: https://github.com/ArchiDroid/ArchiDroid/tree/i9300-cm-stable
ROM OS Version: 5.1.x Lollipop
ROM Kernel: Linux 3.0.x
Based On: CyanogenMod
Version Information
Status: Stable
Created 2013-08-19
Last Updated 2015-11-20
[SIZE="+3"]ArchiDroid's FAQ / Q&A[/SIZE]​[SIZE="+1"]This is the development thread. In case of any non-development questions or issues, you should use above link[/SIZE]​
[SIZE="+1"]Features / Why ArchiDroid?[/SIZE]
First of all, ArchiDroid includes everything available in it's base. The whole point of ArchiDroid is to improve the base, without needing of making any trade-offs, so by flashing ArchiDroid, you're getting everything offered by the base itself. There's nothing to lose, everything to gain.
You can read detailed information about every ArchiDroid component here. It's a massive wall of text, so I'm only going to list the core features without describing them.
These were written from scratch, they're completely unique and you won't find exactly the same implementation in any other ROM.
ArchiDroid-Unique features:
- ArchiDroid's AROMA Installer
- ArchiDroid's Pocket Debian
- ArchiDroid's Flasher
- ArchiDroid's RunOnce
- ArchiDroid's Init
- ArchiDroid's Backend Control
- ArchiDroid's HArdware Volatile Entropy Gathering and Expansion Daemon (Haveged)
- ArchiDroid's Fast Random Number Generator (Frandom)
- ArchiDroid's Adblock (dnsmasq/dnrd, dnsproxy2, pixelserv)
- ArchiDroid's Forced Update
Apart from that, here, on the credits page, you can find all third-party projects, which have been implemented into ArchiDroid. In addition to that, it's up to YOU to decide if you want to install something, or not.
ArchiDroid focuses on flexibility and user choice.
If you're looking for fastest ROM, choose ArchiDroid.
If you're looking for most battery-saving ROM, choose ArchiDroid
If you're looking for cutting-edge functions, choose ArchiDroid
If you're looking for the most flexible rom ever created, definitely choose ArchiDroid
ArchiDroid adjusts to your needs. You can make it whatever you want. With bunch of presets, modes and questions, you can make your ArchiDroid behave. Check yourself why ArchiDroid is The TOP 1 ROM for Galaxy S3http://forum.xda-developers.com/galaxy-s3#romList, according to number of followers, rates, reviews and downloads count. Check the Reviews, take a look at Video Reviews, do whatever you want to, ArchiDroid is proven to be one of the best ROMs for Galaxy S3, ever created.
Try ArchiDroid once, and you'll never look back. I can assure you.
Disclaimer
ARCHIDROID SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THE WARRANTIES THAT IT IS FREE OF DEFECTS, VIRUS FREE, ABLE TO OPERATE ON AN UNINTERRUPTED BASIS, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
Click to expand...
Click to collapse
Your warranty is now void.
I am not responsible for bricked devices, dead SD cards, thermonuclear war, or you getting fired because the alarm app failed. Please do some research if you have any concerns about features included in this ROM before flashing it! YOU are choosing to make these modifications, and if you point the finger at me for messing up your device, I will laugh at you. Hard. A lot.
Click to expand...
Click to collapse
Developer's Kitchen
Unless stated otherwise, all ArchiDroid components are licensed under the Apache License:
Code:
Copyright 2014 [email protected]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Especially:
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
You must give any other recipients of the Work or Derivative Works a copy of this License; and
You must cause any modified files to carry prominent notices stating that You changed the files; and
You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
Click to expand...
Click to collapse
ArchiDroid is one of the most complex ROMs ever created. When you start digging in my work, you can very easily get lost. And I'm not talking about base itself, but about everything next to it. You can use every part of my work, as long as:
1. You include proper credit where you should. This usually includes proper comment in a script/file and in the credits of the project, including license (if needed)
2. You let me know about this fact. Through PM on xda or e-mail
I'm always happy to help, especially with the problems I faced in the past. However I also want to be respected, considering that most of the ArchiDroid parts were written from scratch.
ArchiDroid 2.X vs. ArchiDroid 1.X
The long battle between choosing over ArchiDroid 2.X and 1.X is still recent. There's no one real and true answer to this. It's up to YOU to decide who wins this battle, because obviously every user is different. I'm only going to give you some tips and briefly describe differences.
Despite the name, ArchiDroid 2.X and 1.X are totally different ROMs. It all started with ArchiDroid 1.X, a ROM based on Sammy's stock firmware, with all needed goodies and features baked in. Then eventually I managed to implement everything what I ever wanted to implement, therefore making ArchiDroid 1.X more or less complete. Then I started with ArchiDroid 2.X project, built from scratch from AOSP sources, with all source codes available.
The point is, ArchiDroid 1.X is more or less complete, there's no "real" development going on, as I obviously don't have samsung sources to begin fun with. On the other hand, ArchiDroid 2.X will never be finished, there's always something to improve, something to add, something to fix... This is ongoing process, which will reach the end when I finally break my SGS3 or change the phone to another one .
If you're new user or you don't know how AOSP works on our SGS3s then I highly suggest to flash ArchiDroid 1.X firstly. ArchiDroid 2.X is targeted at advanced users, who don't mind some "core" features being broken. It will NEVER be as stable as ArchiDroid 1.X is, so if stability is the number 1 for you, choose 1.X.
ArchiDroid comparision
From 1-10, based on my own point of view
Stability
2.X - 5
1.X - 8
Compatibility
2.X - 4
1.X - 9
Battery
2.X - 6
1.X - 9
Performance
2.X - 9
1.X - 6
Features
2.X - 9
1.X - 4
Android Updates
2.X - 9
1.X - 6
-----------
Overall
2.X - 42
1.X - 42
This is ArchiDroid comparision in a nutshell. If you ask me, I think that ArchiDroid 1.X is far better choice for daily driver, but if you're advanced user and you know how to deal with possible broken functions then you can have great time using ArchiDroid 2.X as well.
Remember that only ArchiDroid 1.X supports Samsungs-specific features, such as Smart Stay, Screen mirroring, Allshare or whatever. This also includes closed-source proprietary drivers, such as many bluetooth headsets, which won't work under open-source AOSP. Think twice before considering 2.X if you're addicted to these Samsung goodies.
On the other hand, ArchiDroid 2.X is the only ArchiDroid with "real" development going on, however all universal changes are also backported back to ArchiDroid 1.X, so you're not missing any feature, which benefits also Sammy's base.
That's it. I hope that a choice between both of these awesome roms is a bit easier now. If you still can't decide I suggest to flash both of them for some time and then decide which suits you better.
Know Your ArchiDroid
ArchiDroid is not only a rom. It's not only a baked android with third-party apps, modifications and tweaks. ArchiDroid is an universal backend which improves rom by many built-in functions.
Let me tell you a story. During developing first version of ArchiDroid 2.0 I experienced many problems, which were not that easy to solve. First of all - apps data. Trust me or not but you can't simply extract data, put it in /data/data after install and hope that it works. Android will detect such injection, report inconsistent of data and wipe everything attached to that. Okay so... How I should provide you with my boeffla preset? CoolTool settings? STweaks profile? If I put my data during flashing it'll get wiped. If I put my data and deny wiping it then Android will report inconsistent of data to user and work unstable. Yes guys, it's impossible to do so without a trick or without recompiling whole rom.
I won't tell you a whole story, because you probably don't want to hear about ArchiDroid development. I'll simply tell you that I overcome MANY difficulties, simply because I do what I like, and I like what I do. After countless number of hours, I can finally provide you with the ROM, which is the best. Why is it the best? Because I'm improving the base, and I'm not making any trade-offs.
GitHub / Versioning / Experimental Versions
ArchiDroid version contains 3 numbers. X.Y.Z. X is the base number of the rom. For now it won't change because ArchiDroid 1 is based on Sammy Rom and ArchiDroid 2 is based on CyanogenMod. Basically we have two numbers left, Y and Z. Y number will change when I'll implement something really new, when I'll make some advanced improvements or after many Z changes. Z number is the "standard" update, like updated sources, some bugfixes and so on.
I've learned many things since releasing of first ArchiDroid 1.0.0. Because of that I've also created a GitHub repository, which you can find here. What does it mean for you? First of all as you can see there are 4 different branches. 1.X-STABLE, 1.X-EXPERIMENTAL, 2.X-STABLE and 2.X-EXPERIMENTAL. What does it mean? You can enter selected branch and click on "Commits" button to see every single update which I've made to selected branch. Experimental branches will get updates nearly every single day, especially 2.X-EXPERIMENTAL because of many CM changes and updates. Additionally after some tests I'll merge current 2.X-EXPERIMENTAL into 2.X-STABLE every week and provide as "weekly update", of course if current experimental will be stable enough to do so.
However that doesn't mean you need to wait for my updates! You can easily "pack" latest experimental and flash without needing to wait for my weekly build. I'll tell you how to download and flash it by yourself.
You can see differences between current stable and experimental here.
[Newbie Version]
1. Open 2.X-EXPERIMENTAL branch.
2. Click on Download Zip button located in bottom-right corner.
3. Install 7-Zip if you don't have that already. Other programs may, or may not work correctly.
4. Right-Click on zip, select Extract Here
5. Navigate to newly created ArchiDroid-2.X-EXPERIMENTAL folder
6. Select all files WITHOUT __dont_include folder, right-click and select 7-Zip => Add to archive
7. Make sure that you have zip format, Fastest compression (to save some megabytes) and Deflate method of compression.
8. Voila, copy newly created ArchiDroid-2.X-EXPERIMENTAL.zip to your phone and flash as usual.
[Expert Version]
1. Install Git for Windows or Linux
2. If you're on windows then make sure that windows won't change LF into CRLF (git config --global core.autocrlf false)
3. Clone my git repository using .git file. Keep in mind to specify depth, as this repo is really big. (git clone https://github.com/JustArchi/ArchiDroid.git --branch 2.X-EXPERIMENTAL --depth 1)
4. Select all files WITHOUT __dont_include folder zip them into standard .zip format with Deflate compression or without any compression.
5. Copy .zip to your phone and flash as usual
6. In order to update your local repo execute git pull origin 2.X-EXPERIMENTAL and go to point 4.
Additionally you can watch my short video, which shows how to flash experimental ArchiDroid going through "Expert Version".
Video Reviews / How ArchiDroid looks like?
@Koogly
ArchiDroid User Signatures
ArchiDroid Features
Know your ArchiDroid, learn how to use it
Introduction / Basics
Welcome to ArchiDroid's world mortal. In this tutorial we will show you what ArchiDroid has "inside" and what it really offers. All of things included in this post are ArchiDroid-specific, which means that you won't find any ROM with the same features, as they're written from scratch.
Here you can find some definitions of the words used in sections below. You should know most of them, but in case somebody is lost here you can get back on track.
Terminal, Shell - Typical android shell, which may be obtained in three ways.
1. Through native Android Debug Bridge (ADB) with command "adb shell" from the PC or even "ADB through network" (if supported).
2. Through any Android terminal app, f.e. Android Terminal Emulator bundled with ArchiDroid.
3. Through secure shell daemon (sshd), which needs to be turned on firstly. This is extremely useful in terms of pocket debian, which will be described later.
You can use any of these methods to access android's terminal, however usually Android Terminal Emulator will be the easiest one, as it's android app bundled with ArchiDroid. WARNING! Most of the commands below WILL require root access. You can log in to super user shell by "su" command right after obtaining shell. If you're unsure if you're logged as root or not, "whoami" command should print actual user, "root" or "unknown uid 0" are OK, others are not.
ArchiDroid's Pocket Debian
From wikipedia:
Debian is an operating system composed of free software mostly carrying the GNU General Public License. The operating system is developed by an internet collaboration of volunteers aligned with The Debian Project.
Click to expand...
Click to collapse
From debian site:
As most of you know, Linux is just a kernel. And, for a long time, the Linux kernel ran only on the Intel x86 series of machines, from the 386 up.
However, this is no longer true, by any means. The Linux kernel has now been ported to a large, and growing, list of architectures. Following close behind, we have ported the Debian distribution to these architectures. In general, this is a process with a sticky start (as we get libc and the dynamic linker working smoothly), and then a relatively routine, if lengthy job, of attempting to recompile all our packages under the new architectures.
Debian is an operating system (OS), not a kernel (actually, it is more than an OS since it includes thousands of application programs)
Click to expand...
Click to collapse
How exactly this covers our beloved SGS3 (and countless number of other android arm-based phones)?
As you may (or even should!) know, Android operates on it's own Linux-based kernel. Android's kernel is literally a fork of Linux kernel, with a few special/unique functions which are required, mostly hardware-specific. Because of that kernel itself is VERY compatible with everything based on Linux.
However there have always existed one typical problem, lack of proper environment. We have a great kernel, great power, linux-based android environment, but this environment lacks of very common and required libraries/binaries. If you ever wondered what is or what does busybox, this is the answer. Busybox is just a small package which offers a few standalone GNU/Linux binaries, which are required to make certain things work. For example, swap priorities. Android knows what swap is, and nothing else. It doesn't know that swap could have a priority, so if you use android's swapon command on 4 devices, it will firstly fill first device, and then proceed to the next. That's why we need busybox in ALL custom kernels, because android environment isn't enough.
However busybox sometimes isn't enough. If we focus only on Android itself, it is. But if you for example want to run stricly linux-based service, I don't know, a web server for example... Is it possible to run a native linux web server on an android? No, it's not. You should firstly compile such service on arm architecture, including all dynamic and static libraries (wrrr ) in it only to finally get mad because of missing libraries or other dependencies. Of course if you're patient you'd finally compile everything and set up, however how long would it take? A few days maybe? If you're skilled in what you're doing...
This is why I included built-in "pocket" debian in ArchiDroid. It's FULLY compatible with everything compiled/based on armhf/armel GNU/Linux architecture, for example Raspberry Pi. With two easy commands you can literally jump into debian environment and use every typical GNU/Linux utilities known from debian itself. Of course this means nothing for most of the users, because they'll never have any reason to use such debian environment but from the developer side, it's big step forward. The best example is with github. As you know ArchiDroid has it's own repo on github, from where you can download/manage stuff. There also exists git app for linux and windows. If you want to follow "expert" way of flashing experimental ArchiDroid version, such program is required. The scenario is the same as compiling web server for an android, it requires much more effort than it's worth. And even then you can end up with syncing external dependencies and searching for solutions for the problems you've never seen before... And with ArchiDroid's pocket debian? It's as simple as in any debian/ubuntu distro. "apt-get update && apt-get install git" and voila. Your git is installed and ready for work. Going further I've even included git in pocket debian itself. Okay, I have debian, I have git, and what next? With git utility I can for example provide you with delta updates for ArchiDroid! ArchiDroid can easily use pocket debian to set up and sync ArchiDroid's repository and then pack and flash latest version without even needing of a PC, using 7-zip or anything else. Another example? A web server. I know that it's very dev-specific but if you for any reason need a web server running, just for example to test simple website, you can have it with just one command. Going further, VNC? MySQL server? PHP? Python? Perl? Ruby? Maybe conditional tasks with cron? Persistent minimal IRC client? rtorrent with rutorrent GUI over WWW? The list goes on... Anything based on linux will work. You can even host a server for your favourite game, as long as it has armhf/armel binaries (unfortunately most of the games don't).
So that's it. In short, debian is an operating system built-in in ArchiDroid to provide you with (unfortunately missing) GNU/Linux environment, with full power, ready to handle anything you could request. I made my best to include fully working debian in ArchiDroid for a minimal cost. Whole OS is packed in one big tar file, compressed using highest bzip2. As for now pocket debian has ONLY 40 megabytes of size, maybe in future it will have up to 50 megabytes, but no more. It's a VERY small cost for having such great power, especially if you know how to use it.
This is a really cutting-edge feature, mostly because I have no limitiations what I can include in my ROM right now, and while other developers are dealing with OpenDelta updates and many Android-based problems, I'm just launching my pocket debian and manages linux stuff.
I'm SURE that most of the advanced ArchiDroid user will just LOVE this feature, as much as I love it. I'm looking forward to your responses how YOU use pocket debian with your ArchiDroid. It's also a great time to learn what does the debian offer and how you can simplify your common tasks with just one example debian utility .
Technical informations:
1. Pocket Debian does not cause any additional overhead. We don't need to use emulation, neither virtualization to boot our monster. I used chroot technology to "jump" into debian environment with already running kernel and Android. That means additional required CPU/RAM is based on what you run in pocket debian. Booting itself doesn't require anything, just about one megabyte of ram for /bin/bash shell .
2. Android has some restrictions, mostly sockets. It doesn't allow to create inet sockets by default, even for root users. You will need to add your custom debian users to special group called "inet" (GID 3003) to allow creating of inet sockets, and you may also need to add a group to net_raw group (GID 3004) to allow creating of raw sockets. Please keep in mind that it's only required if you're running an app which required it's own socket, for example mysql server. So apt-get install mysql-server will fail right after booting, you will need to use "addgroup mysql inet" and then apt-get -f install to complete installation. Of course "mysql" is the new user under which mysql-server really operates. I've added root to both of these groups by default.
3. The only "real" restriction is the kernel. Our debian uses Android kernel and it's filesystem. It should work with most common tasks but in some cases our kernel may lack specific modules or built-in code, for example tun/tap required for OpenVPN. Still it's enough to run pretty much everything and if you get in touch with your favourite kernel developer you can also kindly ask for specific missing things.
4. Debian is built and included thanks to debootstrap utility, ArchiDroid command used for creating debian environment is debootstrap --verbose --arch armhf --include=git,ca-certificates,ssh,htop,tightvncserver,xterm,xfonts-base --exclude=manpages,man-db,rsyslog,vim-common,vim-tiny testing debian http://ftp.fr.debian.org/debian
HowTo:
Pocket Debian contains two main terminal commands, "adlinux" and "debian". Both of them are described below. By adlinux and debian you boot and jump into debian's chroot, which means you can use any debian-specific commands.
Examples:
passwd - changes password of actual user. This is needed to login as specific user, for example through ssh.
service ssh start - starts local SSH (secure shell) daemon on native port :22, to which you can easily access via any client supporting ssh, f.e. PuTTY. So basicly after you start shell you can literally connect to your local area network (LAN) IP on port 22 f.e. through PuTTY from your PC.
ifconfig - prints network-related informations about online interfaces, including your local IP, which may be useful for connecting to SSH.
htop - Enhanced top utility. Gives you very good terminal-based view on actual running processes, used ram, load, and more.
apt-get update - Syncs with debian's apt repository. This is mandatory to use many of apt commands because ArchiDroid's debian comes without local repo available, however fully configured to download and access it with just one command
apt-get install XXX - installs packet XXX from debian's repository.
apt-cache search XXX - searches for all packets including keyword "XXX". Ultra useful in terms of searching for specific packet.
Please note that pocket debian is VERY similar to normal native Debian/Ubuntu distribution, therefore above commands are not ArchiDroid's magic, they're very widely used in Debian/Ubuntu distros. If you want to learn more, most of the Debian/Ubuntu tutorials will be very helpful.
ArchiDroid's Pocket Debian Booter (adlinux)
You can call "adlinux" command from your favourite terminal.
adlinux is designed to boot and prepare ArchiDroid's Pocket Debian environment. It requires mode to be specified, and also respects any extra arguments passed.
If you call standalone "adlinux" command then it will print usage and then ask you what you want to do with giving proper informations about every choice. Additionally if you know what you want to do, you can also pass arguments directly to adlinux command, f.e. by executing "adlinux default", which will execute adlinux with "default" mode.
Available modes:
default - Will mount /data /system /storage/sdcard0 /storage/sdcard1 and core filesystems in chroot. Default suggested mode
safe - Will mount only core filesystems in chroot. Useful if you don't want to share your storage in chroot
bare - Won't mount even core filesystems such as /proc /dev or /sys. Requires "debian force" to enter chroot. This is the "real" safe mode. You won't be able to interact with an android in any way, while debian itself will work in very limited environment, making core functions unavailable. Suggested only for testing purposes
rebuild - Will automatically reboot your device and remove debian folder in the safe way. WILL CAUSE ALL DEBIAN DATA TO BE LOST!
unmount - Will automatically reboot your device to safely unmount debian environment
Extra options:
extsd - Use external sd card (/storage/sdcard1 /storage/extSdCard), if possible
intsd - Use internal sd card (/data/media/0)
Additional information about modes:
Debian shares core kernel filesystems in "safe" and "default" modes, while it also shares your internal and external sd card in "default" mode. This is nothing to be scared of, as you have full control of what you run in debian, however please note that you CAN'T do whatever you want. All mounted partitions in debian are "binded". "Bind" means that it's mirrored to the mount point and all changes on mounted partition WILL affect the mount point, which is logical. This is nothing to be scared of, as long as you know that debian only extends your environment, it does not fully works in it's own and you CAN cause serious problems from inside of chroot. The only really safe mode is "bare" mode, however in "bare" mode debian can't really do anything, as kernel filesystems are absolutely required for most of the functions. Okay so, you need to know one thing. If you have booted debian you SHOULD NOT touch debian's folder, which is ArchiDroid/debian (on your internal or external sd card, depends what you choosed).. As you know debian for example binds /data to it's folder /data, which is physically ArchiDroid/debian/data. If you for example delete ArchiDroid/debian through root explorer WITH mounted debian then it will ALSO delete debian/data folder, which is binded to /data, and therefore will delete your whole internal sd card, that's why it's extremely important to take care because booted debian becomes part of the android and deleting it can cause at least soft bricks, with a possibility of hard as well. If you want to delete debian folder PLEASE use "rebuild" mode, only through this way you're absolutely sure that nothing bad happens and you won't delete your whole system partition by accident.
Note about extsd option:
Debian requires symlink functionality, typically native windows filesystems DON'T support symlinks, therefore you need to have your external sd card formatted in one of the native linux filesystems, f.e. ext4. adlinux will automatically tell you if debian can be unpacked and used on your external sd card, however it won't be possible under most common filesystems, such as exFAT or FAT32.
Technical informations:
1. Pocket debian archive is located in ArchiDroid/System/debian.tar.gz file. This is "bare" system used for creating environment for the first time, you should not touch it.
2. adlinux detects if debian is already extracted when booting, if not, it's firstly extracted from the file described above.
3. After extracting (if required), core filesystems are mounted with "bind" option based on the mode you've selected in "mode" question above. Typically it mounts /data /system /storage/sdcard0 /storage/sdcard1 /storage/extSdCard /dev /proc /sys.
4. Unmounting is not fully supported right now (linux barrier), therefore both "unmount" and "rebuild" options require a restart to execute properly.
ArchiDroid's Pocket Debian Shell/Chroot (debian)
You can call "debian" command from your favourite terminal.
debian command is designed to allow you "jumping" into debian chroot created by adlinux. Please read how adlinux command works firstly if you haven't done that already. debian command checks if core filesystems are available (if debian is booted), and if they are then it firstly modifies required environment variables to make debian happy (such as TERM, HOME, PATH), then it changes root (chroots) into debian folder, therefore allowing you to execute everything from inside of chroot. It's very generic command, therefore standalone "debian" command won't give you a choice the way adlinux did.
Available options (parameters):
force - required for jumping into bare debian, created with "adlinux bare" command above. This skips debian checks for mounted core filesystems, normally you should avoid it at all cost, unless you know what you're doing. If core filesystems are missing then it's very likely that your debian will be disabled in more than 90%.
extsd - Use external sd card (/storage/sdcard1 /storage/extSdCard), if possible
intsd - Use internal sd card (/data/media/0)
cmd - Executes command in debian chroot
WARNING! cmd parameter will cause all further parameters to be threated as a command passed to debian, therefore you need to make sure that this is the last debian parameter which you want. For example "debian force cmd service ssh start" will skip filesystems checks and execute "service ssh start" in debian's chroot, however "debian cmd force service ssh start" will pass "force service ssh start" to debian, therefore respecting filesystems checks and passing invalid command.
This function is extremely useful for making init.d and other startup scripts. For example you can easily call "adlinux default" and then "debian cmd service ssh start" to call secure shell daemon on every boot with two easy steps.
Technical informations:
1. debian command uses chroot technology to change root of current shell to debian shell.
2. After chrooting to debian directory, /bin/bash shell is automatically called as default debian shell.
ArchiDroid's Flasher (adflash)
You can call "adflash" command from your favourite terminal.
adflash is a great small utility, which allows you to easily update your ArchiDroid to latest stable or experimental version with one easy command and delta upgrade. It utilizes ArchiDroid functions, therefore you must be running ArchiDroid to use it.
If you call standalone "adflash" command then it will print usage and then ask you what you want to do with giving proper informations about every choice. Additionally if you know what you want to do, you can also pass arguments directly to adflash command, f.e. by executing "adflash 2e git", which will execute adflash with 2.X-EXPERIMENTAL version using git mode.
Available versions:
2e - 2.X-EXPERIMENTAL
2s - 2.X-STABLE
1e - 1.X-EXPERIMENTAL
1s - 1.X-STABLE
Extra options:
git - Sets up local git repository, which gives you delta upgrades and bandwidth saving
direct - Downloads targeted branch as .zip file directly from github
clean - Cleans everything up, including local repo and tmp folder from ArchiDroid directory specified below
extsd - Use external sd card (/storage/sdcard1 /storage/extSdCard)
intsd - Use internal sd card (/data/media/0)
nozip - Shows changelog and changes only
Okay so, the most interesting option is the mode...
Direct mode is simple, fast and effective. It downloads target version (stable or experimental) from GitHub server, then it repacks downloaded zip file and makes it available for flash. You should use this mode for one-time downloads, such as once per stable version or two. The only advantage of this method is the ability to download from github (and with one command).
Git mode is complex. It uses ArchiDroid's Pocket Debian (read above) for cloning and updating local ArchiDroid repo. This gives several number of advantages, mostly for using experimental versions. Firstly, by having local ArchiDroid repo you have to download ONLY changes between your snapshot and server's snapshot, which means delta upgrades. Secondly, you have access to all commits from target branch, so you know exactly what has changed since your latest download. Again, this is extremely useful for experimental branch, as changelog may not be up-to-date. Keep in mind that git mode will require additional space on your device for keeping ArchiDroid repository, therefore you sacrifice some space for delta upgrades. This mode is extremely useful for flashing ArchiDroid often, for example daily experimental versions, because in fact you download only new commits instead of whole repo/archive.
ArchiDroid's RunOnce (Backend)
ArchiDroid's Init (Backend)
ArchiDroid's Backend Control
ArchiDroid Backend Control is a set of settings, which controls behaviour of ArchiDroid's Init. It's located in /system/archidroid/dev and contains a number of files, which are recognized by ArchiDroid's Init. You shouldn't directly touch /system/archidroid/dev, instead you can control behaviour of ArchiDroid's Backend through /system/archidroid/scripts. They can be easily executed through any script manager, f.e. Root Browser or Android Terminal Emulator. Some of the settings are also located in /system/archidroid/etc folder, mostly configurations for binaries utilized by ArchiDroid's Init.
ArchiDroid's HArdware Volatile Entropy Gathering and Expansion Daemon (Haveged)
The haveged project is an attempt to provide an easy-to-use, unpredictable random number generator based upon an adaptation of the HAVEGE algorithm. Haveged was created to remedy low-entropy conditions in the Linux random device that can occur under some workloads, especially on headless servers. Current development of haveged is directed towards improving overall reliablity and adaptability while minimizing the barriers to using haveged for other tasks.
The original HAVEGE research dates back to 2003 and much of the original haveged documentation is now quite dated. Recent work on haveged has included an effort to provide more recent information on the project and its applications.
The original research behind HAVEGE use was based upon studies of the behavior of processor caches from a hardware level. The 'Flutter' documents attempt to provide a modern view of HAVEGE at software level through the use of a diagnostic build of haveged that captures the non deterministic inputs to haveged for analysis by external tools.
ArchiDroid has built-in haveged entropy generator. It's controlable through ArchiDroid's Backend Control - ArchiDroid_Haveged_EnableDisable.sh. It's turned on in default configuration, through HAVEGED_ENABLED
ArchiDroid's Fast Random Number Generator (Frandom)
Frandom is a Linux kernel random number generator, which is 10-50 times faster than what you get from Linux' built-in /dev/urandom. And it uses very little (/dev/frandom) or none (/dev/erandom) of the kernel's entropy pool, so it is very useful for applications that require a handy source for lots of random data.
ArchiDroid has built-in frandom activator. It's controlable through ArchiDroid's Backend Control - ArchiDroid_Frandom_EnableDisable.sh. It's turned on in default configuration, through FRANDOM_ENABLED.
Notice: Kernel must support frandom module to actually make use of that. Init will try to search for frandom.ko module and load it, then use /dev/erandom for both /dev/random and /dev/urandom. If your kernel supports frandom, it will work. If it doesn't, obviously this will be skipped even if you have FRANDOM_ENABLED. Check ArchiDroid Init log located in /data/media/0/ArchiDroid/Init.log to check if frandom works properly for you.
ArchiDroid's Adblock (dnsmasq/dnrd, dnsproxy2, pixelserv)
dnsproxy2 is a replacement DNS proxy for Android 4.3+
This currently allows the user to manually override the DNS server IP,
and it sets the correct UID on outbound requests so they can be filtered
via iptables / AFWall+ / DroidWall / etc.
Dnsmasq is a lightweight server designed to provide DNS, DHCP and TFTP services to a small-scale network. It can serve the names of local machines which are not in the global DNS. The DHCP server integrates with the DNS server and allows machines with DHCP-allocated addresses to appear in the DNS with names configured either in each host or in a central configuration file. Dnsmasq supports static and dynamic DHCP leases and BOOTP for network booting of diskless machines.
Dnrd, Domain Name Relay Daemon is a caching, forwarding DNS proxy server. Most useful on vpn or dialup firewalls but it is also a nice DNS cache for minor networks and workstations.
Pixelserv is a super minimal webserver, it's one and only purpose is serving a 1x1 pixel transparent gif file. Using some creative firewalling (netfilter/iptables) rules you can redirect some webrequests (for adds for example) to pixelserv.
ArchiDroid has built-in Adblock. It's controlable through ArchiDroid's Backend Control:
ArchiDroid_Adblock_DnsmasqDnrdModeSwitch.sh
ArchiDroid_Adblock_EnableDisable.sh
ArchiDroid_Adblock_EnableDisableLocalDNSes.sh
ArchiDroid_Adblock_EnableDisableLocalDNSesDaemon.sh
ArchiDroid_Adblock_LockUnlockHosts.sh
ArchiDroid_Adblock_MoabAdawayHostsSwitch.sh
ArchiDroid_Adblock_Reload.sh
It's turned on in default configuration, through:
ADBLOCK_ENABLED
ADBLOCK_LOCAL_DNSES_DAEMON_ENABLED
ADBLOCK_LOCAL_DNSES_ENABLED
ADBLOCK_USE_ADAWAY_HOSTS
ADBLOCK_USE_DNSMASQ
In short. This is a very advanced and powerful solution for blocking ads through DNS queries. First of all we're forwarding all DNS traffic to localhost (127.0.0.1). Then we're handling them through local DNS server - dnsmasq (default), or dnrd (option). Our local DNS server reads blocked hostnames through special /system/archidroid/etc/hosts file, then if no record is found, it forwards DNS query to OpenDNS/Google DNS servers, or if it's found, returns 127.0.0.1 as the address. Lastly, pixelserv is providing a 1x1 NULLGIF response on local web server, so instead of big black/white screen instead of the AD, we get 1x1 transparent pixel, which usually perfectly hides ad from the app or the website.
Extra features:
1. You can specify if you want to use dnsmasq (default), or dnrd (option) as a local dns server. Dnsmasq is more flexible, modern, faster and has less memory footprint, however I also left dnrd as an option, because it's proven to work stable.
2. You can specify hosts file, which you want to use. In default configuration we use AdAway's hosts file, with more than 30 thousand of records, which results in extra ~2.5 MB memory usage. You have also an option to use MOAB (Mother Of Ad Blocking) hosts file, with more than 330 thousand of records, which will result in about ~30 MB memory usage. Eventually you can append your own rules or use non-standard hosts file, available in /system/archidroid/etc/hosts. Pro tip: You can point AdAway to use this hosts file (/system/archidroid/etc/hosts_adaway), which will result in automatic updates. /system/archidroid/etc/hosts is a symbolic link, either to hosts_away or hosts_moab, if you want to specify your own hosts, you can delete symbolic link and write your own rules.
3. Original /system/etc/hosts file has been locked from editing. This is to ensure that AdAway or other adblockers won't use obsolete and slow method of blocking ads through hosts. The whole point of implementing Adblock in ArchiDroid is to provide you with super-fast, flexible and effective way of blocking ads, also with getting rid of black/white ad screen. In 99% situations you don't want to touch ArchiDroid's default behaviour, as it blocks ads perfectly. Eventually, if you have a very good reason, you can unlock original hosts file through ArchiDroid's Backend Control and modify them, however keep in mind that every additional rule WILL slow down your network speed.
4. In default configuration local dns server uses two OpenDNS servers at port 5353, two Google DNS servers at port 53 and up to two local DNS servers provided by your Wi-Fi/3G connection, which overall gives a sum of 6 remote dns servers. In some rare scenarios (f.e. some wi-fi hotspots) you can notice that a moron, administrator of this wi-fi, blocked all dns queries and forces you to use his DNSes. This is BAD because of freedom and so on, but it's very common practice, that's why I turned on local DNSes as well. If you want to improve your privacy at least a bit, you can disable local DNS servers and then use only OpenDNS and Google DNS.
5. Above option initialy has been written to allow you one-time access to such non-trusty wi-fi's. But if you for any reason need automatic update of your local DNSes (3G and Wi-Fi's will use different local DNSes), you can also turn on Local DNSes Daemon, which will automatically query and update local DNSes if needed. This is also turned on in addition to local dnses above, of course in default preset.
ArchiDroid's Forced Update (RunOnce)
Forced update selected during mode selection in aroma tells RunOnce to work in "INSTALL" mode even on "UPDATE" mode, apart from that it works exactly the same as update mode, only RunOnce is affected.
Credits
ArchiDroid Core
- AROMA Installer
- AROMA Filemanager
- Devil Kernel
- Googy Max Kernel
- PhilZ Touch Recovery
- SuperSU
- Nova Launcher
- TouchPal Keyboard
- Hacker's Keyboard
- Android Terminal Emulator
- BetterBatteryStats
- Cool Tool
- Greenify
- MX Player & Custom Codec
- LMT
- Root Browser
- Titanium Backup
- CrossBreeder
- Online Nandroid
- Xposed Framework
- App Settings
- XPrivacy
- Debian
- cURL
- GitHub
ArchiDroid 2.X
- OmniROM for GT-I9300
- Linaro Toolchain
- Boeffla Kernel
- Yank555.lu Kernel
- Temasek Kernel
- Spirit 2
ArchiDroid 1.X
- SamMobile
- JustArchi's Android Kitchen & dsixda's Android Kitchen
- Boeffla Kernel
- Yank555.lu Kernel
- KitKat Revolution Theme
- Blue Theme
- All Backs Black Theme
- Wanam Xposed
Special thanks to:
- Kenshin, for graphic design and ArchiDroid Touhou bootanimation
- @mrtur, for graphic design and helpful hand during ArchiDroid experimental tests
- @malachow, for helping users across both international and polish board, sharing the spirit of ArchiDroid
- All ArchiDroid Contributors, for improving and making ArchiDroid better!
- ArchiDroid Facebook Group, for beta-testing the very first alphas of ArchiDroid 2.0.0
- ROM Cleaner, for awesome generic list of bloatware
- Android Revolution HD, for being ex-ArchiDroid 1.X base
- WanamLite, for being ex-ArchiDroid 1.X base
- Temasek's Unofficial Build, for being ex-ArchiDroid 2.X base
- crDroid, for being ex-ArchiDroid 2.X base
- You, for choosing ArchiDroid over other available ROMs
The Keyboard looks a bit too Bulky.. Judging from the Screenshots.
Will give it a try though. Thanks!
Sounds good will give it a go. Thanks!
By the by did you fix the halo bug that is found in temaseks ROM? ( if you use the halo))) app to pin applications to halo the notifications are not hidden in the notification tray)
Sent from my GT-I9300 using xda app-developers app
DiDA™ said:
The Keyboard looks a bit too Bulky.. Judging from the Screenshots.
Will give it a try though. Thanks!
Click to expand...
Click to collapse
Aaaand we have a first visitor!
Don't worry. You have two more keyboards in aroma to choose from .
Pantherx12 said:
Sounds good will give it a go. Thanks!
By the by did you fix the halo bug that is found in temaseks ROM? ( if you use the halo))) app to pin applications to halo the notifications are not hidden in the notification tray)
Sent from my GT-I9300 using xda app-developers app
Click to expand...
Click to collapse
Unfortunately not. Temasek knows better how to merge and fix stuff directly connected with the framework. I'm just a Padawan here . But I'm doing my best, check it yourself .
JustArchi said:
Aaaand we have a first visitor!
Don't worry. You have two more keyboards in aroma to choose from .
Unfortunately not. Temasek knows better how to merge and fix stuff directly connected with the framework. I'm just a Padawan here . But I'm doing my best, check it yourself .
Click to expand...
Click to collapse
Ahh that's a shame its essential for me.
I'll still download and use it for a day let you know how it runs though
Sent from my GT-I9300 using xda app-developers app
Great to see another ROM for our beloved SGS3. I have used a few CM10.1 based ROMs but always seemed to have problems with receiving/making calls
On the other hand I dont like Sammy based ROMs so I'm downloading your ROM to try it out :thumbup:
Sent from my GT-I9300 using xda premium
TonyK2005 said:
Great to see another ROM for our beloved SGS3. I have used a few CM10.1 based ROMs but always seemed to have problems with receiving/making calls
On the other hand I dont like Sammy based ROMs so I'm downloading your ROM to try it out :thumbup:
Sent from my GT-I9300 using xda premium
Click to expand...
Click to collapse
I'm glad to inform you that I haven't got any call issues since start of developing ArchiDroid 2.0, and that was in May . Of course that doesn't mean that you also won't have such issues but personally I think that you will be satisfied . Check it yourself.
Downloaded & flashed!! First time Aroma hung at 0.00% for about 10 minutes, turned phone off/on & changed some installation settings (not sure if any caused the hang) & the installation was successful. ROM feels silky smooth & looks great!
Will use the ROM for the next few days & see if there are any issues, great so far though.
Sent from my GT-I9300 using xda premium
TonyK2005 said:
Downloaded & flashed!! First time Aroma hung at 0.00% for about 10 minutes, turned phone off/on & changed some installation settings (not sure if any caused the hang) & the installation was successful. ROM feels silky smooth & looks great!
Will use the ROM for the next few days & see if there are any issues, great so far though.
Sent from my GT-I9300 using xda premium
Click to expand...
Click to collapse
Thanks. It looks like latest Aroma 2.70 B6 has some hang issues. That not a problem, simply repeat flashing with any combination you like.
Looking forward to further opinions .
And we have first new experimental already .
https://github.com/JustArchi/ArchiDroid/commit/aa8845031dc93adbf08db33dc8b7869f0d5b27b8
https://github.com/JustArchi/ArchiDroid/commit/1acae50c62c7ef59ab2acb022b33fa47c220207a
https://github.com/JustArchi/ArchiDroid/commit/b3c3c87f795970fc14142121892080a9a74f188b
If you're interested in flashing ArchiDroid twice per day then take a look at "GitHub" section in the first post :laugh:. Remember that experimental versions won't be released the same way as stable ones.
@Pantherx12
As far as I know Temasek fixed this issue in V104.3, so you can get your fixed ArchiDroid right now .
By far the best I've had so far on your phone.
Great job,thx JustArchi
JustArchi said:
If you're interested in flashing ArchiDroid twice per day then take a look at "GitHub" section in the first post :laugh:. Remember that experimental versions won't be released the same way as stable ones.
@Pantherx12
As far as I know Temasek fixed this issue in V104.3, so you can get your fixed ArchiDroid right now .
Click to expand...
Click to collapse
Looking nice! Makes me happy that it is based on tema's build. Some more flexibility is always welcomed! As about xposed framework. That's a problem. Because it breaks the some framework tweaks tema included after v100. I was using xposed before but there was a much difference with xposed framwork & without. so i removed it.
Plus, What fix tema included in 104.3? A persistent notification one? No, That is still there. Good Luck! :highfive:
Noob-superuser said:
Looking nice! Makes me happy that it is based on tema's build. Some more flexibility is always welcomed! As about xposed framework. That's a problem. Because it breaks the some framework tweaks tema included after v100. I was using xposed before but there was a much difference with xposed framwork & without. so i removed it.
Plus, What fix tema included in 104.3? A persistent notification one? No, That is still there. Good Luck! :highfive:
Click to expand...
Click to collapse
Last time I've used xposed it worked fine but if you say so then I'll take a closer look, thanks for reporting.
And about halo fix, I was refering to @Striatum_bdr
It seems halo fix is included in 104.3 built that can be founded in Temasek's experimental built on dev-host only repo.
Click to expand...
Click to collapse
But if it's not then we need to wait for temasek to fix it . I'm pushing his updates into my experimental branch as soon as possible, sometimes 10 minutes after release
JustArchi said:
Last time I've used xposed it worked fine but if you say so then I'll take a closer look, thanks for reporting.
And about halo fix, I was refering to @Striatum_bdr
But if it's not then we need to wait for temasek to fix it . I'm pushing his updates into my experimental branch as soon as possible, sometimes 10 minutes after release
Click to expand...
Click to collapse
Take a look on the apps openning speed. & alot smoothness without xposed framework. Keep up the good work. I'll soon give it a try! :good:
At the moment I'm updating Q&A, some user signatures and so on.
Also in the meantime I'm testing some new binary files to ensure less problem with aroma freezes. I'm not quite sure if I'm able to do anything with that but at least I'll try . Every approved update will be available in experimental branch of course.
Fixed Halo bug??

Kali NetHunter for the Galaxy S5 (3.1.0)

Welcome to the thread on Kali NetHunter for the Samsung Galaxy S5.
If you don't know what Kali NetHunter is, well, it's the entire Kali Linux operating system in a chroot on your phone, plus a bunch of awesome apps for executing exploits, fixing things, doing cool things. It goes on, I suppose.
I'm gonna be honest guys, I'm not a security person. When it comes to security, I'm more of a Paul Blart.
What I do know though, is that there is apt-get, and apt-get is life.
Find much more information here: https://github.com/offensive-security/kali-nethunter/wiki
The answer to all your questions, generally the answer is YES, IT CAN DO THAT.
The installer zip will add a few files (including busybox) to your /system partition, and install all of the NetHunter apps to your /data partition.
The chroot is located in /data/local, so you don't have to worry about your system partition being full. It's full read/write capable.
Understand that the zip will replace your current kernel with a completely different one.
This is necessary because most stock or custom kernels don't provide the drivers needed to operate most of Kali NetHunter's features.
These Kali NetHunter builds are designed and tested for TouchWiz 5.1, 6.0 & CyanogenMod 13.0.
DOWNLOAD
Current version: 3.1.0 (release, 2016-04-29)
Please be careful to download the right version for your device variant and ROM.
CyanogenMod 12.1 or any Android 5.x based AOSP ROM: lollipop
CyanogenMod 13.0 or any Android 6.x based AOSP ROM: marshmallow
TouchWiz 5.1: touchwiz-lollipop
TouchWiz 6.0: touchwiz-marshmallow
Download here: https://idlekernel.com/nethunter/nightly
Your device is: klte
Recommended install method: Use TWRP 3 for klte
Install kernel-nethunter-klte and nethunter-generic-armhf-kalifs-full-rolling zips in any order.
Kernel only installers are in the kernel-only directory inside each build directory. It might be a better idea to try and install that first and see if you can boot before flashing the entire NetHunter.
You can actually only install the kernel if you want to take advantage of its features without having to install the rest of NetHunter!
BEFORE INSTALLING
Do not flash the NetHunter update zip with a fresh data partition!
Most ROMs will wipe it clean on the first boot if you haven't completed the Android Setup Wizard yet, there's no need to wipe your ROM or data to try it out. I do advise backing up your data partition before flashing the zip though.
(this should no longer be possible now with added installation checks)
Please make sure your phone boots fine and runs fine before flashing NetHunter. It's confusing when people report bugs that exist in CyanogenMod by itself.
The Kali chroot and apps are installed on your data partition (in /data/local for chroot). To initialize the chroot and install Kali Linux, you need to start the Kali NetHunter app.
The NetHunter installer will automatically install SuperSU in system mode, which I consider to be more stable. Since NetHunter already modifies your system partition, there is no need to use systemless SuperSU anyways.
FULL INSTALL STEPS
Boot into TWRP
Flash kernel-nethunter-klte and nethunter-generic-armhf-kalifs-full-rolling zips in any order.
Reboot into device
Open the NetHunter app
Let the NetHunter app finish setting everything up
You're done!
UPDATING TO A NEWER BUILD
Going from 3.0.0 and up, all you have to do is flash the new build in recovery. On some ROMs you may need to wipe dalvik cache.
UPDATING YOUR ROM
To get all your NetHunter and SuperSU functions back after flashing a new ROM, just flash the new ~60 MB update-nethunter-klte zip in TWRP.
RUNNING WIFI PENETRATION TESTS
The internal WiFi chipset of the Galaxy S5 is not capable of running services which use monitor mode such as Wifite. For this, you will need to use a monitor mode capable WiFi adapter through a microUSB OTG adapter.
As for compatible adapters, I highly recommend the Alfa Networks AWUS036NEH (eBay) which uses the Ralink RT3070 chipset. There are currently no monitor mode supported Wireless-AC adapters available.
Once plugged in, you can run the command from Kali terminal to turn on your adapter:
[email protected]:~# ip link set wlan1 up
RAN INTO AN ISSUE OR BUG?
In order for me to help you, you have to at minimum reply with:
The link to the exact zip you downloaded
Your device model (it better be klte)
The name of the ROM you're flashing it on
The version and build date of the ROM you're flashing it on
A complete description of your problem
Optional: An audio recording of you reading this entire post
If your issue is with a specific app, it might be better to contact the developer of that app.
If your issue is during the installation (ex. flashing the NetHunter zip), then please collect a TWRP recovery.log for me.
If you found a problem and were able to fix it, and no one's mentioned it in the thread already, it would be kind to state the issue and your fix for others to make use of as well.
You can join me and the other NetHunter developers on IRC at the #nethunter room on freenode to more handily diagnose problems together.
I apologize, but I can't do house calls at this time.
KNOWN ISSUES
USB Keyboard & VNC - Google Keyboard, AOSP Keyboard, CM Keyboard do not work due to a depth bug, use Hacker's Keyboard as a workaround.
Terminal App - Full screen programs like nano or vi are unusable unless you use the resize command. (always type resize when opening a new terminal window)
THE KERNEL
The NetHunter kernel for the Samsung Galaxy S5 is based on nVidia's rel-24-sb-r1-1 kernel sources.
It has the following changes:
F2FS added using Jaeguek Kim's latest kernel.org:f2fs-stable sources (available on system/data/cache!)
UKSM - Ultra Kernel Same-page Merging support
Cortex-A15 & Neon-VFPv4 + -O2 compiler optimizations
NEON-asm kernel & sha/aes support
Compiled with Linaro's branch of GCC 4.9.4
Updated and enabled USB (OTG) Atheros, Ralink, and Realtek WiFi drivers
Simple IO (SIO) scheduler as default IO scheduler (updated for modern kernels)
USB HID Gadget keyboard support
mac80211 packet injection support
TCP congestion control updates and fixes
Westwood or Cubic (default)
DriveDroid compatibility
Some small security fixes (pipe, keyring, etc)
Additional drivers built in for the full Kali NetHunter experience
SCREENSHOTS
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
DEVELOPMENT
For the kernel included in NetHunter for the Samsung Galaxy S5, you can find the sources here: https://github.com/jcadduono/nethunter_kernel_klte
See the Kali NetHunter installer source here: https://github.com/offensive-security/kali-nethunter
See the Kali NetHunter app source here: https://github.com/offensive-security/nethunter-app
DISCLAIMER
I am not affiliated with Offensive Security. They seem like cool guys though.
I'm not even a novice when it comes to security and penetration. I'm just a simple system administrator with a passion for breaking Android.
Please restrain yourselves from asking me security related questions.
NOT SO MUCH AS SEEN ON MR. ROBOT, BUT PROBABLY EVEN BETTER
XDA:DevDB Information
Kali NetHunter for the Galaxy S5, Device Specific App for the Samsung Galaxy S 5
Contributors
jcadduono, The Kali NetHunter team
Source Code: https://github.com/jcadduono/kali-nethunter
Version Information
Status: Stable
Current Stable Version: 3.1.0
Stable Release Date: 2016-04-29
Created 2016-01-22
Last Updated 2016-04-29
Just want to be the first to say thank you for this. I have nethunter on my grouper and love it. Now I can have it on my S5.
Quick question before I start, I'm currently running VRToxin 6.0.1 with a modified version of their kernel. What is the best method if installing this?
Shot from my Fusion-KToonsz-Powered SMG-900P
Hey guys, had a mod close the previous thread so I could add it to DevDB and clean up the posts from when the kernel was broken.
The~Skater~187 said:
Just want to be the first to say thank you for this. I have nethunter on my grouper and love it. Now I can have it on my S5.
Quick question before I start, I'm currently running VRToxin 6.0.1 with a modified version of their kernel. What is the best method if installing this?
Shot from my Fusion-KToonsz-Powered SMG-900P
Click to expand...
Click to collapse
Okay, in that case (assuming you want to keep that kernel), then you just need to:
Do a full unroot of SuperSu or whatever root method you are currently using
Install any generic-armhf package from the NetHunter nightly downloads
Wipe dalvik-cache
Boot up
This will modify and install everything except your kernel zImage.
You will not be able to use OTG WiFi, Wifite, HID keyboard attacks unless your current kernel supported them. It will pretty much just be a chroot.
Alternatively, you can:
Do a full unroot of SuperSu or whatever root method you are currently using
Install the kltespr-marshmallow package which is for AOSP based Marshmallow from the NetHunter nightly downloads
Wipe dalvik-cache
Boot up
This will also replace your kernel zImage, you will have full NetHunter features - but you will lose additional features of your current kernel.
@crazyraiga: your logs show that system is mounted read-only, everything will fail in such a case. I'll add a check to the installer and refuse install in that case!
Update: 20160122-1305 build now checks if it can write to /system and /data before running the installer.
OK. First I've installed kernel-only and everything was fine. Then I installed update zip for TouchWiz and stuck on boot animation. Then I reflashed my ROM and found all NetHunter apps installed already. So I flashed kernel-only again and now when trying to install chroot geting following:
Code:
CreateChroot >> Error:
java.lang.RuntimeException
java.lang.RuntimeException
Is it possible to fix?
My device: klte
ROM: Revolution S5 v5.3
UPDATE
I've just flashed full chroot zip and everything seems OK. But kali mode in terminal not working: terminal just makes toast '1)No title' and crashes.
jcadduono said:
Hey guys, had a mod close the previous thread so I could add it to DevDB and clean up the posts from when the kernel was broken.
Okay, in that case (assuming you want to keep that kernel), then you just need to:
Do a full unroot of SuperSu or whatever root method you are currently using
Install any generic-armhf package from the NetHunter nightly downloads
Wipe dalvik-cache
Boot up
This will modify and install everything except your kernel zImage.
You will not be able to use OTG WiFi, Wifite, HID keyboard attacks unless your current kernel supported them. It will pretty much just be a chroot.
Alternatively, you can:
Do a full unroot of SuperSu or whatever root method you are currently using
Install the kltespr-marshmallow package which is for AOSP based Marshmallow from the NetHunter nightly downloads
Wipe dalvik-cache
Boot up
This will also replace your kernel zImage, you will have full NetHunter features - but you will lose additional features of your current kernel.
@crazyraiga: your logs show that system is mounted read-only, everything will fail in such a case. I'll add a check to the installer and refuse install in that case!
Update: 20160122-1305 build now checks if it can write to /system and /data before running the installer.
Click to expand...
Click to collapse
So I don't need the kltespr-marshmallow-update.zip?
Shot from my Fusion-KToonsz-Powered SMG-900P
The~Skater~187 said:
So I don't need the kltespr-marshmallow-update.zip?
Shot from my Fusion-KToonsz-Powered SMG-900P
Click to expand...
Click to collapse
If you don't want USB OTG WiFi or HID keyboard gadget support or want to keep your current kernel, then no you don't need that.
Generic-armhf installer will work on ANY armv7 device, not just S5. I put a lot of work into all this.
Experiencing internal memory drain: memory dissapears in seconds.
vykintazo said:
Experiencing internal memory drain: memory dissapears in seconds.
Click to expand...
Click to collapse
need more info this is really generic or misleading please read the OP
i tried it earlier and it works on cm13 no dualbooting. too bad i dont have external wifi adpter. gonna buy soon. i first installed kernel, then update marsmallow, then chroot full. have not gone through all of the apps.
one thing though i cant screenshot thru home and power buttons. i dont know if cm13 related or kali.
great man was waiting for this a long time. can i install it on bless rom 6.0?
Hayatzada said:
great man was waiting for this a long time. can i install it on bless rom 6.0?
Click to expand...
Click to collapse
It should work on any ROM that is AOSP / Slim / CyanogenMod based. Basically as long as it isn't TouchWiz it *should* work. I don't know what bless rom is.
jcadduono said:
It should work on any ROM that is AOSP / Slim / CyanogenMod based. Basically as long as it isn't TouchWiz it *should* work. I don't know what bless rom is.
Click to expand...
Click to collapse
thanks for your reply, spell mistake Bliss Rom 6.0 most customize-able rom ever , installed your build on it but some issues.
i already installed kali nethunter on my nexus 5 and was running it fine also cracked a wifi password successfully (WITH TP-LINK TL-WN722N)
but now on Galaxy S5 G900T in Bliss Rom 6.x installed your build with kernel you mentioned in your OP but can't open Nethunter Terminal (terminal Emulator is running fine) also tried to start/launch Wifite in custom commands but a tiny Terminal screen opens and show me " 1) No title. "
Please will you guide me how to run and activate external usb wifi adapter (TP-LINK TL-WN722N).
Thanks.:good:
Hayatzada said:
thanks for your reply, spell mistake Bliss Rom 6.0, installed your build on it but some issues.
i already installed kali nethunter on my nexus 5 and was running it fine also cracked a wifi password successfully (WITH TP-LINK TL-WN722N)
but now on Galaxy S5 G900T in Bliss Rom 6.x installed your build with kernel you mentioned in your OP but can't open Nethunter Terminal (terminal Emulator is running fine) also tried to start/launch Wifite in custom commands but a tiny Terminal screen opens and show me " 1) No title. "
Please will you guide me how to run and activate external usb wifi adapter (TP-LINK TL-WN722N).
Thanks.:good:
Click to expand...
Click to collapse
Did you go into the NetHunter app and download/install your chroot?
You can't do anything without the chroot installed lol.
If NetHunter app has issues downloading chroot, just install this zip which includes it instead:
https://idlekernel.com/nethunter/nightly/3.0.1-20160124-1518/chroot-full/
Keep in mind you need to run the NetHunter app after installing any chroot for it to set up the scripts and run properly.
If chroot is installed properly and terminal is still not opening, can you get me a logcat?
jcadduono said:
Did you go into the NetHunter app and download/install your chroot?
You can't do anything without the chroot installed lol.
If NetHunter app has issues downloading chroot, just install this zip which includes it instead:
https://idlekernel.com/nethunter/nightly/3.0.1-20160124-1518/chroot-full/
Keep in mind you need to run the NetHunter app after installing any chroot for it to set up the scripts and run properly.
If chroot is installed properly and terminal is still not opening, can you get me a logcat?
Click to expand...
Click to collapse
yes i installed chroot. screen attached,
now i uninstalled it and downloading again, already downloaded and installed it see in attachment (https://idlekernel.com/nethunter/nightly/3.0.1-20160124-1518/chroot-full) and let me tell you what happens, by the way will you please tell me how to get logcat?View attachment 3620973
Hayatzada said:
yes i installed chroot. screen attached,
now i uninstalled it and downloading again, already downloaded and installed it see in attachment (https://idlekernel.com/nethunter/nightly/3.0.1-20160124-1518/chroot-full) and let me tell you what happens, by the way will you please tell me how to get logcat?View attachment 3620973
Click to expand...
Click to collapse
su
logcat > /sdcard/logcat.log
run thing thats troubling you
ctrl+c @ terminal to stop logging
thats how i usually logcat things, you can do it through adb shell or terminal emulator.
also, what happens when u go into terminal emulator and type:
su -c bootkali
!!!!!!!!!!!!! Your screenshot says rolling chroot!!!!!!!!!!!! that is for testing only and it is currently broken!!
please use the link i provided https://idlekernel.com/nethunter/nightly/3.0.1-20160124-1518/chroot-full/
jcadduono said:
su
logcat > /sdcard/logcat.log
run thing thats troubling you
ctrl+c @ terminal to stop logging
thats how i usually logcat things, you can do it through adb shell or terminal emulator.
also, what happens when u go into terminal emulator and type:
su -c bootkali
!!!!!!!!!!!!! Your screenshot says rolling chroot!!!!!!!!!!!! that is for testing only and it is currently broken!!
please use the link i provided https://idlekernel.com/nethunter/nightly/3.0.1-20160124-1518/chroot-full/
Click to expand...
Click to collapse
i uninstalled/removed and then download again in kali chroot manager, after download and installation it is running fine also nethunter terminal is running fine, wifite is working now. thanks for your kind attention.:highfive:
vykintazo said:
UPDATE
I've just flashed full chroot zip and everything seems OK. But kali mode in terminal not working: terminal just makes toast '1)No title' and crashes.
Click to expand...
Click to collapse
try to install full chroot. then open the nethunter app it will locate and update the chroot. this will fix '1)No title'.
jcadduono said:
@crazyraiga: your logs show that system is mounted read-only, everything will fail in such a case. I'll add a check to the installer and refuse install in that case!
Update: 20160122-1305 build now checks if it can write to /system and /data before running the installer.
Click to expand...
Click to collapse
I guess it doesn't work with dual boot patcher. I can't boot on lollipop touchwiz though. I will try it again this weekend if I have enough time.
Hayatzada said:
great man was waiting for this a long time. can i install it on bless rom 6.0?
Click to expand...
Click to collapse
I think this will work on your rom if your it is cm based or aosp as the what the title says.\
UPDATE:
off topic what external usb wifi adapter can you recommend for nethunter? I want something small enough to be portable.
crazyraiga said:
UPDATE:
off topic what external usb wifi adapter can you recommend for nethunter? I want something small enough to be portable.
Click to expand...
Click to collapse
TP-Link TL-WN722N is what most people use because it doesn't pull excessive power from OTG.
I think the S5 can probably handle ALFA AWUS036NEH though, which provides the best wireless connectivity / speed of all the supported devices.
If you need 5 GHz band, check out AWUS051NH. About the same range as WN722N, faster, about the same power usage, but not nearly as portable.
I have a AWUS036H, from first steps with Backtrack, works also fine with the S5.
Wow, just came across this thread today. Very happy to see this come to the S5! I bought a nexus 5 for the soul purpose of being able to run nethunter, now I can finally stop carrying my "extra" phone around. Can't wait to try this out with my pineapple.

Magisk - The Magic Mask for Android

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Welcome to the Magisk Release / Announcement thread!
For all up-to-date info and links, please directly check Magisk's GitHub Page​Installation
Download count of previously XDA hosted files: 25,490,945
v1: 8746 v2: 2251 v3: 3790 v4: 1220 v5: 2914
v6: 138838 v7: 119744 v8: 116796 v9: 203836 v10.2: 215176
v11.1: 573322 v11.6:438886 v12.0: 3263706
1300: 274438 1310: 1018692 1320: 403556 1330: 1844372
1350: 39188 1360: 69874 1400: 4456314
1410: 11512 1420: 112020 1437: 247988 1455: 30652
1456: 253042 1468: 85978 1500: 434572 1510: 460120
1520: 927436 1530: 218164 1531: 3143686 1540: 97368
1600: 6043710 1610: 87628 1620: 140382
Changelog
Magisk
v20.3
- [MagiskBoot] Fix lz4_legacy decompression
v20.2
- [MagiskSU] Properly handle communication between daemon and application (root request prompt)
- [MagiskInit] Fix logging in kmsg
- [MagiskBoot] Support patching dtb/dtbo partition formats
- [General] Support pre-init sepolicy patch in modules
- [Scripts] Update magisk stock image backup format
v20.1
- [MagiskSU] Support component name agnostic communication (for stub APK)
- [MagiskBoot] Set proper header_size in boot image headers (fix vbmeta error on Samsung devices)
- [MagiskHide] Scan zygote multiple times
- [MagiskInit] Support recovery images without /sbin/recovery binary. This will fix some A/B devices unable to boot to recovery after flashing Magisk
- [General] Move acct to prevent daemon being killed
- [General] Make sure "--remove-modules" will execute uninstall.sh after removal
v20.0
- [MagiskBoot] Support inject/modify mnt_point value in DTB fstab
- [MagiskBoot] Support patching QCDT
- [MagiskBoot] Support patching DTBH
- [MagiskBoot] Support patching PXA-DT
- [MagiskInit] [2SI] Support non A/B setup (Android 10)
- [MagiskHide] Fix bug that reject process names with ":"
- [MagicMount] Fix a bug that cause /product mirror not created
v19.4
- [MagiskInit] [SAR] Boot system-as-root devices with system mounted as /
- [MagiskInit] [2SI] Support 2-stage-init for A/B devices (Pixel 3 Android 10)
- [MagiskInit] [initramfs] Delay sbin overlay creation to post-fs-data
- [MagiskInit] [SARCompat] Old system-as-root implementation is deprecated, no more future changes
- [MagiskInit] Add overlay.d support for root directory overlay for new system-as-root implementation
- [MagiskSU] Unblock all signals in root shells (fix bash on Android)
- [MagicMount] Support replacing files in /product
- [MagiskHide] Support Android 10's Zygote blastula pool
- [MagiskHide] All random strings now also have random length
- [MagiskBoot] Allow no recompression for ramdisk.cpio
- [MagiskBoot] Support some weird Huawei boot images
- [General] Add new "--remove-modules" command to remove modules without root in ADB shell
- [General] Support Android 10 new APEX libraries (Project Mainline)
v19.3
- [MagiskHide] Hugely improve process monitor implementation, hopefully should no longer cause 100% CPU and daemon crashes
- [MagiskInit] Wait for partitions to be ready for early mount, should fix bootloops on a handful of devices
- [MagiskInit] Support EROFS used in EMUI 9.1
- [MagiskSU] Properly implement mount namespace isolation
- [MagiskBoot] Proper checksum calculation for header v2
v19.2
- [General] Fix uninstaller
- [General] Fix bootloops on some devices with tmpfs mounting to /data
- [MagiskInit] Add Kirin hi6250 support
- [MagiskSU] Stop claiming device focus for su logging/notify if feasible
This fix issues with users locking Magisk Manager with app lock, and prevent
video apps get messed up when an app is requesting root in the background.
v19.1
- [General] Support recovery based Magisk
- [General] Support Android Q Beta 2
- [MagiskInit] New sbin overlay setup process for better compatibility
- [MagiskInit] Allow long pressing volume up to boot to recovery in recovery mode
- [MagicMount] Use proper system_root mirror
- [MagicMount] Use self created device nodes for mirrors
- [MagicMount] Do not allow adding new files/folders in partition root folder (e.g. /system or /vendor)
v19.0
- [General] Remove usage of magisk.img
- [General] Add 64 bit magisk binary for native 64 bit support
- [General] Support A only system-as-root devices that released with Android 9.0
- [General] Support non EXT4 system and vendor partitions
- [MagiskHide] Use Zygote ptracing for monitoring new processes
- [MagiskHide] Targets are now per-application component
- [MagiskInit] Support Android Q (no logical partition support yet!)
- [MagiskPolicy] Support Android Q new split sepolicy setup
- [MagiskInit] Move sbin overlay creation from main daemon post-fs-data to early-init
- [General] Service scripts now run in parallel
- [MagiskInit] Directly inject magisk services to init.rc
- [General] Use lzma2 compressed ramdisk in extreme conditions
- [MagicMount] Clone attributes from original file if exists
- [MagiskSU] Use ACTION_REBOOT intent to workaround some OEM broadcast restrictions
- [General] Use skip_mount instead of auto_mount: from opt-in to opt-out
v18.1
- [General] Support EMUI 9.0
- [General] Support Kirin 960 devices
- [General] Support down to Android 4.2
- [General] Major code base modernization under-the-hood
v18.0
- [General] Migrate all code base to C++
- [General] Modify database natively instead of going through Magisk Manager
- [General] Deprecate path /sbin/.core, please start using /sbin/.magisk
- [General] Boot scripts are moved from <magisk_img>/.core/<stage>.d to /data/adb/<stage>.d
- [General] Remove native systemless hosts (Magisk Manager is updated with a built-in systemless hosts module)
- [General] Allow module post-fs-data.sh scripts to disable/remove modules
- [MagiskHide] Use component names instead of process names as targets
- [MagiskHide] Add procfs protection on SDK 24+ (Nougat)
- [MagiskHide] Remove the folder /.backup to prevent detection
- [MagiskHide] Hide list is now stored in database instead of raw textfile in images
- [MagiskHide] Add "--status" option to CLI
- [MagiskHide] Stop unmounting non-custom related mount points
- [MagiskSU] Add FLAG_INCLUDE_STOPPED_PACKAGES in broadcasts to force wake Magisk Manager
- [MagiskSU] Fix a bug causing SIGWINCH not properly detected
- [MagiskPolicy] Support new av rules: type_change, type_member
- [MagiskPolicy] Remove all AUDITDENY rules after patching sepolicy to log all denies for debugging
- [MagiskBoot] Properly support extra_cmdline in boot headers
- [MagiskBoot] Try to repair broken v1 boot image headers
- [MagiskBoot] Add new CPIO command: "exists"
v17.3
- [MagiskBoot] Support boot image header v1 (Pixel 3)
- [MagiskSU] No more linked lists for caching su_info
- [MagiskSU] Parse command-lines in client side and send only options to daemon
- [MagiskSU] Early ACK to prevent client freezes and early denies
- [Daemon] Prevent bootloops in situations where /data is mounted twice
- [Daemon] Prevent logcat failures when /system/bin is magic mounting, could cause MagiskHide to fail
- [Scripts] Switch hexpatch to remove Samsung Defex to a more general pattern
- [Scripts] Update data encryption detection for better custom recovery support
v17.2
- [ResetProp] Update to AOSP upstream to support serialized system properties
- [MagiskInit] Randomize Magisk service names to prevent detection (e.g. FGO)
- [MagiskSU] New communication scheme to communicate with Magisk Manager
v17.0/17.1
- [General] Bring back install to inactive slot for OTAs on A/B devices
- [Script] Remove system based root in addon.d
- [Script] Add proper addon.d-v2 for preserving Magisk on custom ROMs on A/B devices
- [Script] Enable KEEPVERITY when the device is using system_root_image
- [Script] Add hexpatch to remove Samsung defex in new Oreo kernels
- [Daemon] Support non ext4 filesystems for mirrors (system/vendor)
- [MagiskSU] Make pts sockets always run in dev_pts secontext, providing all terminal emulator root shell the same power as adb shells
- [MagiskHide] Kill all processes with same UID of the target to workaround OOS embryo optimization
- [MagiskInit] Move all sepolicy patches pre-init to prevent Pixel 2 (XL) boot service breakdown
v16.7
- [Scripts] Fix boot image patching errors on Android P (workaround the strengthened seccomp)
- [MagiskHide] Support hardlink based ns proc mnt (old kernel support)
- [Daemon] Fix permission of /dev/null after logcat commands, fix ADB on EMUI
- [Daemon] Log fatal errors only on debug builds
- [MagiskInit] Detect early mount partname from fstab in device tree
v16.6
- [General] Add wrapper script to overcome weird LD_XXX flags set in apps
- [General] Prevent bootloop when flashing Magisk after full wipe on FBE devices
- [Scripts] Support patching DTB placed in extra sections in boot images (Samsung S9/S9+)
- [Scripts] Add support for addon.d-v2 (untested)
- [Scripts] Fix custom recovery console output in addon.d
- [Scripts] Fallback to parsing sysfs for detecting block devices
- [Daemon] Check whether a valid Magisk Manager is installed on boot, if not, install stub APK embedded in magiskinit
- [Daemon] Check whether Magisk Manager is repackaged (hidden), and prevent malware from hijacking com.topjohnwu.magisk
- [Daemon] Introduce new daemon: magisklogd, a dedicated daemon to handle all logcat related monitoring
- [Daemon] Replace old invincible mode with handshake between magiskd and magisklogd, one will respwan the other if disconnected
- [Daemon] Support GSI adbd bind mounting
- [MagiskInit] Support detecting block names in upper case (Samsung)
- [MagiskBoot] Check DTB headers to prevent false detections within kernel binary
- [MagiskHide] Compare mount namespace with PPID to make sure the namespace is actually separated, fix root loss
- [MagiskSU] Simplify su_info caching system, should use less resources and computing power
- [MagiskSU] Reduce the amount of broadcasting to Magisk Manager
- [ImgTool] Separate all ext4 image related operations to a new applet called "imgtool"
- [ImgTool] Use precise free space calculation methods
- [ImgTool] Use our own set of loop devices hidden along side with sbin tmpfs overlay. This not only eliminates another possible detection method, but also fixes apps that mount OBB files as loop devices (huge thanks to dev of Pzizz for reporting this issue)
v16.4
- [Daemon] Directly check logcat command instead of detecting logd, should fix logging and MagiskHide on several Samsung devices
- [Daemon] Fix startup Magisk Manager APK installation on Android P
- [MagiskPolicy] Switch from AOSP u:r:su:s0 to u:r:magisk:s0 to prevent conflicts
- [MagiskPolicy] Remove unnecessary sepolicy rules to reduce security penalty
- [Daemon] Massive re-design /sbin tmpfs overlay and daemon start up
- [MagiskInit] Remove magiskinit_daemon, the actual magisk daemon (magiskd) shall handle everything itself
- [Daemon] Remove post-fs stage as it is very limited and also will not work on A/B devices; replaced with simple mount in post-fs-data, which will run ASAP even before the daemon is started
- [General] Remove all 64-bit binaries as there is no point in using them; all binaries are now 32-bit only.
Some weirdly implemented root apps might break (e.g. Tasker, already reported to the developer), but it is not my fault
- [resetprop] Add Protobuf encode/decode to support manipulating persist properties on Android P
- [MagiskHide] Include app sub-services as hiding targets. This might significantly increase the amount of apps that could be properly hidden
v16.3
- [General] Remove symlinks used for backwards compatibility
- [MagiskBoot] Fix a small size calculation bug
v16.2
- [General] Force use system binaries in handling ext4 images (fix module installation on Android P)
- [MagiskHide] Change property state to disable if logd is disabled
v16.1
- [MagiskBoot] Fix MTK boot image packaging
- [MagiskBoot] Add more Nook/Acclaim headers support
- [MagiskBoot] Support unpacking DTB with empty kernel image
- [MagiskBoot] Update high compression mode detection logic
- [Daemon] Support new mke2fs tool on Android P
- [resetprop] Support Android P new property context files
- [MagiskPolicy] Add new rules for Android P
v16.0
- [MagiskInit] Support non skip_initramfs devices with slot suffix (Huawei Treble)
- [MagiskPolicy] Add rules for Magisk Manager
- [Compiler] Workaround an NDK compiler bug that causes bootloops
v15.4
- [MagiskBoot] Support Samsung PXA, DHTB header images
- [MagiskBoot] Support ASUS blob images
- [MagiskBoot] Support Nook Green Loader images
- [MagiskBoot] Support pure ramdisk images
- [MagiskInit] Prevent OnePlus angela sepolicy_debug from loading
- [MagiskInit] Obfuscate Magisk socket entry to prevent detection and security
- [Daemon] Fix subfolders in /sbin shadowed by overlay
- [Daemon] Obfuscate binary names to prevent naive detections
- [Daemon] Check logd before force trying to start logcat in a loop
v15.3
- [Daemon] Fix the bug that only one script would be executed in post-fs-data.d/service.d
- [Daemon] Add MS_SILENT flag when mounting, should fix some devices that cannot mount magisk.img
- [MagiskBoot] Fix potential segmentation fault when patching ramdisk, should fix some installation failures
v15.2
- [MagiskBoot] Fix dtb verity patches, should fix dm-verity bootloops on newer devices placing fstabs in dtb
- [MagiskPolicy] Add new rules for proper Samsung support, should fix MagiskHide
- [MagiskInit] Support non skip_initramfs devices using split sepolicies (e.g. Zenfone 4 Oreo)
- [Daemon] Use specific logcat buffers, some devices does not support all log buffers
- [scripts] Update scripts to double check whether boot slot is available, some devices set a boot slot without A/B partitions
v15.1
- [MagiskBoot] Fix faulty code in ramdisk patches which causes bootloops in some config and fstab format combos
v15.0
- [Daemon] Fix the bug that Magisk cannot properly detect /data encryption state
- [Daemon] Add merging /cache/magisk.img and /data/adb/magisk_merge.img support
- [Daemon] Update to upstream libsepol to support cutting edge split policy custom ROM cil compilations
Magisk Manager
v7.5.1
- Fix toggling app components in MagiskHide screen
- Update translations
v7.5.0
- Support new MagiskSU communication method (ContentProvider)
- Fix several issues with hidden stub APK
- Support using BiometricPrompt (face unlock)
v7.4.0
- Hide Magisk Manager with stub APKs on Android 9.0+
- Allow customizing app name when hiding Magisk Manager
- Generate random keys to sign the hidden Magisk Manager to prevent signature detections
- Fix fingerprint UI infinite loop
v7.3.5
- Sort installed modules by name
- Better pre-5.0 support
- Fix potential issues when patching tar files
v7.3.4
- App is now fully written in Kotlin!
- New downloading system
- Add new "Recovery Mode" to Advanced Settings
v7.3.0/1/2
- HUGE code base modernization, thanks @diareuse!
- More sweet changes coming in the future!
- Reboot device using proper API (no more abrupt reboot)
- New floating button in Magisk logs to go to bottom
v7.2.0
- Huge UI overhaul
- More sweet changes coming in the future!
v7.1.2
- Support patching Samsung AP firmware
- Much better module downloading mechanism
v7.1.1
- Fix a bug that causes some modules using new format not showing up
v7.1.0
- Support the new module format
- Support per-application component granularity MagiskHide targets (only on v19+)
- Ask for fingerprint before deleting rules if enabled
- Fix the bug that causes repackaging to lose settings
- Several UI fixes
v7.0.0
- Major UI redesign!
- Render Markdown natively (no more buggy WebView!)
- Support down to Android 4.1 (native Magisk only support Android 4.2 though)
- Significantly improve Magisk log disply performance
- Fix post OTA scripts for A/B devices
- Reduce memory usages when verifying and signing boot image
- Drop support for Magisk lower than v18.0
v6.1.0
- Introduce new downloading methods: no longer uses buggy system Download Manager
- Introduce many new notifications for better user experience
- Add support for Magisk v18.0
- Change application name to "Manager" after hiding(repackaging) to prevent app name detection
- Add built-in systemless hosts module (access in settings)
- Auto launch the newly installed app after hiding(repackaging) and restoring Magisk Manager
- Fix bug causing incomplete module.prop in modules to have improper UI
v6.0.1
- Update to use new online module's organizing method
- When fingerprint authentication is enabled, toggling root permissions in "Superuser" section now requires fingerprint beforehand
- Fix crashes when entering MagiskHide section on some devices
- Remove support to Magisk version lower than v15.0
- Ask storage permissions before patching stock boot image
- Update dark theme CardView color
v6.0.0
- Update to latest AndroidX support library
- Fix crashes when online repos contain incomplete metadata
- Optimize BootSigner to use as little memory as possible, prevent OutOfMemoryError
- Support new communication scheme between Magisk v17.2 and Magisk Manager
- Enable excessive obfuscation to prevent APK analysis root detections (still not 100% obfuscated due to backwards compatibility with stable channel)
2016.10.04
Magisk-v7 is quite a significant update compared to v6. A lot has changed, new features are added, and improved compatibility a lot, especially in selinux issues.
Open Source!
My previous releases has some controversy due to the fact that I included closed source property with unexpected intentions. I had worked hard to create/improve open source tools, so that they can fit my own needs. Magisk is now 100% open source, including the binary it uses.
Brand New Magisk Manager
The Magisk Manager is completely a different application compared to the previous crappy app. It has now packed with features, and it is now part of the core experience of Magisk itself. New features and improvements are still planned, so stay tuned in this application's development!
Repo System, Module Management
We've been putting a lot of effort into constructing this repo system. This change is to make installing Magisk Modules a lot more easier. What I'm aiming is to make Magisk something like Xposed, an interface and a platform for developers to work on. Providing a repo system is a good step towards the goal, as it makes installing new stuffs and receiving updates super simple. I also drastically simplified the Magisk Module template. Right now, I believe anyone with basic knowledge can create their own Magisk Module easily. Changing a few values into a config file should make porting existing mods to Magisk much easier.
Safety Net
My decision to remove root management from Magisk seems to cause some debate. People might wonder why I would remove such feature that made Magisk so popular. Well, I have to emphasize again, Magisk is never meant for bypassing Safety Net. The Xposed and root bypasses are some fun projects that I'm messing with what Magisk is capable of. One of the two main reasons I dropped this feature in Magisk is
1. Xposed is no longer working with Safety Net enabled. I had tried to bypass it with some mounting tricks and process killing, but all of those are not able to fix the issue. Soon suhide is available and it is able to bypass Xposed had made me really frustrated, as I do not want to keep working on a "not complete solution".
2. On the open source side, phh is also developing his own "suhide". phh just released a test build for hiding root (link to his test build), I'm gonna take a look and include it into the Magisk version of phh root.
These two methods are much better than the one I was using. It doesn't need a toggle, it is per app basis, and many more. Also, I'm not creating a root solution, I'm creating an interface that root solutions can rely on. So I decide to give the hiding root "responsibility" to the root solutions, not managed by the interface, Magisk, itself.
Just to let all of you know, one of Magisk Manager's future feature will be a GUI to manage these two root hiding solutions. It will need some time to develop, and I also wanted to do some things in the core Magisk side to add this support natively. So please don't be pissed that I dropped the whole root management thing. It is for a bigger plan
Due to a bug in the template zip, there will be issues flashing the zip files if the path has spaces.
This commit in magisk-module-template should fix the issue.
All repos online is updated with this fix, developers please include this patch into your modules.
2016.10.19 Magisk v8
This release is aimed for bug fixes, and most importantly the ability to hide itself from Safety Net's detection.
Template Cache Module Fix
Due to a bug in the template script, if your module is a cache module, your scripts might not be executed correctly, also flashing in Magisk Manager will cause the UI to break.
This particular commit is the fix, only cache modules are needed to be updated, other modules are working fine.
Search Bar in Download Section
Magisk Manager 2.1 brings search bar to the "Downloads Section", so that it's easier to find a module once the list gets too long.
SuperSU Integration
In the previous release (v7), I decided to automatically convert SuperSU into a Magisk module while installing Magisk. In this release (v8), I make Magisk 100% compatible with SuperSU out of box, not needed to modify how SuperSU work in anyway. For v8 and future releases, Magisk will detect SuperSU patched boot image, and only add the required additional patches to the boot image.
Also, I created further integration for Magisk and SuperSU: Magisk will create a script placed in /data/custom_ramdisk_patch.sh when SuperSU detected. What this means is that the next time you upgrade SuperSU by flashing SuperSU zip in custom recovery, Magisk will automatically be injected. You can also apply OTA updates with FlashFire, and enable SuperSU injection, which will also inject Magisk on-the-go!
For users that was using v7 with SuperSU along with the Helper Module, please manually restore your boot image (should be stored in /data/stock_boot.img), and flash the latest SuperSU, then flash Magisk-v8.
Magisk Hide
This feature should've been released a few weeks ago, but university is killing me lately; overwhelming schoolwork prevents me to finalize the tool, so please pardon my absence and lack of support. But it's still better late than nothing .
In the weeks I have been inactive, Safety Net got a couple updates, each makes bypassing more of an hassle. Magisk v8 introduce "Magisk Hide", the tool to properly hide Magisk, preventing Magisk to break Safety Net features. What it can do is hide all Magisk modules' files and mounts from target processes (e.g. Safety Net), including Magisk compatible phh root maintained by myself.
It cannot hide SuperSU, it cannot hide Xposed. If you want to hide any of them, please use suhide developed by Chainfire.
It should not cause issues as I have been testing quite some while, but if you replace some files with Magisk (known: /system/etc/customize/ACC/default.xml), Google Play Service will constantly crash. Due to this fact, this feature is not enabled by default. You have to manually enable it in the settings of Magisk Manager v2.1 after you upgraded to Magisk v8, and reboot to apply the settings.
Right now, you can manage your own hide list with ways similar to suhide, no GUI:
Code:
(All commands should be run in a root shell)
# Show current list
/magisk/.core/magiskhide/list
# Add new process (the package name should work fine)
/magisk/.core/magiskhide/add <process name or package name>
# Remove a process (might need a reboot to make an effect)
/magisk/.core/magiskhide/rm <process name or package name>
The process com.google.android.gms.unstable (Safety Net) will always automatically be added to the list if Magisk Hide is enabled, so if you just want to bypass Safety Net, just enable in Magisk Manager and you're good to go.
Safety Net - The Already Lost Cat-And-Mouse Game
Keep in mind, in the latest update of Safety Net that just happened in a few hours, Google seems to step up the game, and it might got to the point that no modifications are allowed, and might be impossible to bypass.
Currently on my HTC 10, no matter what I did to the boot image, even just a repack of 100% stock boot image, Safety Net will not pass under any circumstances. On the other hand, my Nexus 9 running stock Nougat seems bypass without issues, with root and modules all enabled and working fine. The boot verification might vary from one OEM to another, HTC's implementation might just be one of the first included into Safety Net, but eventually all major OEMs' method will be included, and at that time I think any Android "mod", including custom kernels, will pretty much break Safety Net. These verification should be coded deep into the bootloader, which is not that easy to crack. So the conclusion is that I will not spend that much time bypassing Safety Net in the future.
The attachment is a screenshot about where to enable Magisk Hide in the app
Magisk MultiROM - POC
I spend some time playing with the possibility of Universal MultiROM by only using Magisk.
Surprisingly, it is not that difficult at all! Here is a small POC video demonstrating my HTC 10 dual booting stock rom and CM 13.
No other dependency is required (e.g. modified TWRP recovery, kext kernel patch etc.). You only need Magisk injected into the boot image, and along with proper settings, by swapping out the boot image, you can load any rom systemless-ly.
What this means is that all Magisk supported device can enjoy MultiROM features! What a great news for flashaholics LOL.
NOTE! The process showed in this video in far from what it will be eventually. I will make the process nice and smooth
2016.11.14 Magisk v9
This release comes with significant updates and changes, doing adjustments to pave the road for the next major update v10: the update with Multirom support!
Please spend some time reading this lengthy release note, the most important information are included in quotes, or bolded and colored in RED.
Also, many other fixes not mentioned here are listed in the changelog.
The End of Cache (post-fs) Modules
This shall be the biggest change for this update. One of Magisk's cool feature is that it can mount files before data and build.prop is loaded (post-fs). Most modules only uses this advantage to modify read-only props (e.g. DPI, fake device model etc.) without modifying build.prop, however with a new tool included in this release (will be introduced in the next section), dealing things in post-fs is not needed anymore.
Instead of having both "Cache Modules" and "Normal Modules" at the same time, confusing both developers and users, creating complexity in module management, the decision is made that "Cache Modules" are no longer supported after this update.
How about some features that require mounting in post-fs mode (known: Changing Boot Animation)? No worries, post-fs mode is still there (as Multirom will depend on this), I only removed the interface for modules.
Magisk no longer let you install cache modules, you have to manually add the files you want to replace, which is actually super easy.
You can place your new files into the corresponding location under /cache/magisk_mount, Magisk will automagiskally manage selinux contexts, permissions and the mounting for you.
For example, you want to replace /system/media/bootanimation.zip, copy your new boot animation zip to /cache/magisk_mount/system/media/bootanimation.zip with any root explorer, Magisk will mount your files in the next reboot.
Click to expand...
Click to collapse
Magisk v9 will remove all installed cache modules under /cache/magisk, which is the previous path where cache modules locate.
Further more, to push developers to upgrade their cache modules, the latest Magisk Manager (v2.5) will filter out cache modules, which means cache modules available in the Magisk repo are NOT shown under the "Download" section in Magisk Manager.
Cache Module developers please refer to the following instructions to update your current module:
Take a look at the changes in this commit (if you're famlier with git, you can just cherry pick this commit, and deal with some minor merge conflicts)
Check the "resetprop" section to understand how to change props without using a cache module, and update your modules accordingly. For example, if you want to replace the build.prop, you no longer need to enable "automount", or bind mount the file manually in your script, as nothing will load it again.; instead, you should enable post-fs-data script, and read your new build.prop file with proper commands. If you want to change certain prop values, just switch from post-fs script to post-fs-data script, and instead of calling "setprop", please call "/data/magisk/resetprop" to set your props.
Remember to remove the "cacheModule" entry or set to false in the module.prop file, or else your module will never show up in the Magisk Download section in the Magisk Manager!
New Badass Tool - resetprop
To be honest, this tool itself deserves a new thread on XDA, as it is super powerful and super cool.
"resetprop", originally named "xsetprop", was initially developed by @nkk71 to bypass the crazy tough detections for Safety Net. Developers found method to bypass the check by modifying the kernel source code, which served the need but the solution is far from perfect as it requires the source code to be available and kernel compiling.
The tool was originally made to directly modify the system prop database. With seeing the potential of this tool, I contacted @nkk71 and start collaborating together, which brings the original simple tool into a full-fledged, all-in-one prop management tool.
Here are some technical details:
System props are handled by "init", a binary located in the ramdisk which starts right after kernel is loaded. "props" are supposed to only have a single writer, and multiple reader, which means only the process "init" has the full control to the prop database. We modify the props (by calling setprop) through an interface called property_service, which will pass the request to init; property_service also handles the triggering of "events" that should be triggered by a prop change. What read-only props means is that property_service will block all requests for modifying props starting with "ro.", as those props are not allowed to be changed once set. To overcome this difficulty, we can mimic how init behaves by directly modifying the trie structured database. However we will not be able to trigger events, as we completely skipped the property_service part. This might be ideal for SN bypasses, but not applicable for Magisk, as I want to load any prop, which should trigger some events to make some changes. So we went a step further and added a feature to "delete" a system prop! As a result, by directly deleting the prop entry in the database, then send a request to property_service, property_service will accept the request and trigger events if needed.
The new tool - resetprop can modify/delete any system prop, including read-only props (prop names starting with "ro.")
You can also read a whole build.prop, overwriting all existing props. The binary will be installed to /data/magisk/resetprop.
Here are some examples for cache module developers to adapt to the new changes:
Code:
# Set any prop (with trigger)
/data/magisk/resetprop ro.sf.lcd_density 480
# Set any prop (without trigger)
/data/magisk/resetprop -n ro.crypto.state encrypted
# Delete any prop
/data/magisk/resetprop --delete magisk.version
# Read props from a prop file
/data/magisk/resetprop --file /magisk/somemod/new_build.prop
Click to expand...
Click to collapse
The tool is originally built with AOSP source, I spent some time to make it much more portable.
Here is the link to the NDK-buildable source of the resetprop used in Magisk: https://github.com/topjohnwu/resetprop
Magisk Hide - Greatly Improved
Another update to pass SN, please grab it before it expires lol
People started to panic when Google device to check boot loader / boot-verity etc. As stated in the previous section, resetprop fixes the issue easily with setting all detecting props to the valid values. However, more detection has been added. One of those is that simply adding Magisk directories into PATH will break Safety Net. Not sure if I should be glad because the word "magisk" is now officially on the tech giant's blacklist......
So in order to hide root (here I'm only referring Magisk phh superuser, as SuperSU users shall always rely on CF's suhide, not MagiskHide), I had to change the way things works.
For the new changes that are required to NOT modify PATH, the phh's superuser has to be upgraded.
Please make sure your phh superuser is upgraded to r266-2 (or any version higher).
Older version will NOT work with Magisk v9, please upgrade phh's su before upgrading.
Also, along with the new Magisk Manager v2.5, we finally had an GUI to add/remove apps from the MagiskHide list!
Click to expand...
Click to collapse
Development
I added build.sh into the main Magisk repo, you can call the script and it will guide you with help messages.
Custom version names are supported, both in Magisk and Magisk Manager (if using custom name, update will disable)
So feel free to clone the repo and develop Magisk yourself! Pull requests are appreciated!
For Magisk Manager, you can provide translations for the app, just translate the strings, create a pull request, and I'll merge it into the main app, many thanks!
Those Pixels
I stated before that the new Google Pixel devices are using a complete different partition structure, as the ramdisk is now stored along with the system partition, and a kernel modification is inevitable.
Without much surprise, our mighty developer Chainfire had released a systemless root for Pixel devices. What it does in a nutshell is bringing back the ramdisk to the boot image, and still do modifications in the ramdisk (rootfs). However it still requires 1. custom init binary 2. binary patch directly to the kernel. If I decide to use the provided closed source solution, it shall not be difficult to port Magisk to the Pixels and start all the systemless craziness, but still I need an device to test and debug. In addition, I would love to see if I can create an open source tool to achieve similar results to make Pixel (which means maybe all future devices) running Magisk.
But the huge issue is: I live in Taiwan, and there is no sign that the Pixels will be available for purchase here, well at least not possible in 2016.
I could ask my buddy studying in the US to bring me one when he comes back at the Christmas vacations (which is still quite some time from now, but still better late than nothing.....), however the problem is that Pixel XLs (the model I prefer) are currently out of stock on the online Google Store, and I will never know if ordering now will make the package show up in my friend's place in time before he comes back to Taiwan.
If anyone seeing this post has access/can purchase brand new Pixel XLs (anywhere should be OK), and possible to deliver them to Taiwan in a reasonable time and a reasonable shipping fee, please contact me and I'll be very happy.
Lastly, I just bought my new HTC 10 within a year. I'm just an university student, the money I earn from tuition could afford me the super expensive Pixel device, but any additional donation to support my open source development is highly appreciated . I'd be really happy that many people love my work!
Click to expand...
Click to collapse
Here are some news....
Lack of Support
School have been super busy lately (getting the last metro to home nearly every day...), I have little if any time to spend on Android development. Another big factor is that I'm still waiting for my laptop to be repaired.
Sorry for all the private messages sending to my inbox, I've got way too many PMs that I'm not in the mood to read through dozens and dozens of them, since a large fraction of them are simply just asking for instructions for installing Magisk on their device.
I prefer REAL issues to be opened on Github, as I check them from time to time, and I can keep track of which are not yet resolved.
Build Friendly
I added build script for Unix-like systems (Linux and macOS) and also for Windows. I tested on all three platforms and all of them are working as expected. For people interested in the latest feature added to Magisk but not included into an official release yet, feel free to build it yourself. I automated the process that even people with no experience in NDK or scripting can build it easily.
Also for people willing to report bugs, please test Magisk built against the latest commit before opening issues on Github, thanks a lot!
Magisk Module Repo?
It has been a while since I last updated the Magisk Module Repo. I know there are a few requests for adding their own modules to the repo. I'm gonna change the way for requests to be handled from the current "posting in a request thread on XDA", to most likely handled through Github. When the new way for requests is decided, I'll add the current requests at once, and close the current thread.
I really appreciate every person who is interested in making a Magisk Module and willing to share it with others, once the new method is decided, the requests should be addressed in a timely manner.
Multirom? Updates?
I've spend my extremely limited free time to fix current Magisk issues, and so far (the latest commit on Github) it has improved a lot compared with the current v9 release.
I haven't really spend much time in the multirom feature, however I found an interesting open source project: DualBootPatcher.
It exists for quite a while, and it is very impressive just like the Multirom Tasssadar created. I haven't looked into how DualBootPatcher works, so I'm not sure if it is using similar tactics method that I switch between systems in a super simple way through Magisk.
2017.1.2 Magisk V10
Happy New Year! What is a better way to celebrate 2017 than a Magisk update
Another massive update!
Official Icon
Instead of using the picture grabbed online, the official Icon for Magisk is now live!
Magisk Hide Back On Stage
This is the most awaited fix, isn't it?
The issue of losing root is haunting since day 1 of the release of Magisk Hide, although it can be temporary recovered with a reboot, it is still quite annoying. I spend a lot of time trying to identify the reason, and soon found out that the issue is caused by MagiskHide reacting "too fast". Most processes starts from Zygote, and it requires a small period of time to isolate the mount namespace apart from Zygote. When MagiskHide reacts too quickly, it will unmount all mounts in the Zygote namespace, which literally means that all processes will lose the mounts (including root).
After adding checks and retries before switching namespaces, it leads to another issue: MagiskHide reacting "too slow". When critical files like framework is Magic Mounted, and the unmounting doesn't happen in time, it will break the SafetyNet checking process (Google Play Service FC), and can never recover until a reboot (or full restart of Google Play Service). I added tons of safety precautions (I won't go into the details here, it will be another few hundred of words), and I can "almost" eliminate all possible breakages.
Due to the fact that Magisk Hide DOES NOT hijack app_process (Zygote), it can only react passively, so there is a limitation to the effectiveness.
The best practice is to NOT add a lot of apps in the blacklist of MagiskHide (managed in Magisk Manager), so that the MagiskHide daemon has the time to react.
Personally I only hide SafetyNet (the preset), and it passes all excessive tests without any issue. However my tester still managed to break it a few times when adding 6 additional apps, and having 10+ accounts syncing at the background all the time. So I guess it is good for most users lol
Magic Mount With No Limits
I'm glad to announce that starting from this update, Magic Mount can do ANYTHING! Thanks to the new mirror implementation and some workarounds in the algorithm, it can now handle adding files to /system root (and /vendor root if separate partition). Also thanks to the new MagiskHide, all mounting combinations can pass SafetyNet!
Magisk Powered Custom ROM: One Click to Custom ROM, Another Click You're Back to Stock
I am a member of an HTC custom ROM developer team - Team Venom, and without too much effort, The world's first Magisk Powered Custom ROMhttp://venomroms.com/worlds-first-100-percent-magisk-rom/ was born!
The advantage over traditional full packaged custom rom is that we ROM developers no longer need to port carrier features (Wi-Fi calling, VOLTE etc.) to our ROMs. Users can install Magisk on their stock devices, load the Custom ROM module, reboot and BOOM all done, along with 100% fully working carrier features. Also, it is just cool to load a custom ROM fully systemless, isn't it!
Developers in the HTC 10 community soon realized the "power of Magisk", and currently trying to push out more and more Magisk Custom ROM Modules.
I hope all developers feel the excitement, and port all stock modified custom ROM to be implemented with Magisk!
For ROM developers interested, please check the link and download the zip to get an idea how to create your own Magisk Custom ROM Module!
Magisk Can Now Root Your Device
I decided to fork the phh Superuser and start doing modifications. From Magisk v10 and after, Magisk will root your device with the bundled root if
a. No root installed b. Root that isn't Systemless SuperSU or older Magisk phh versions installed
Right now you still have to install the phh Superuser application, however the root management should move to Magisk Manager soon, please stay tuned.
Currently it is nearly the same as official phh root with only a few tweaks, but I might add more in the future.
Magisk Manager Now On Play Store
It seems that some already found out that Magisk Manager is now available on Play Store! All future updates will be pushed through Play Store.
Download links will still be posted here, since there are still places where Play Store isn't available.
Documentations Updated, Module Template Updated, New Repo Requests
The documentations here on XDA is pretty outdated, I updated them with more info to assist developers and users to create their own modules.
Module template is updated for an addition option to load a prop file.
Repo requests are also updated, please check out the new instructions!
Sorry guys, in v10 (and the v10.1 if you're fast), when updating within the Magisk Manager, my scripts didn't handle the phh upgrading correctly.
For those got stuck with no root, please flash the latest phh zip downloaded in this thread in custom recovery (or Magisk Manager, because it is the only app that have root access).
Sorry for the inconvenience, please forgive me lol, I'm only one man!
2017.1.11
Magisk Manager v3.1
I'm still dealing with my finals (got an exam tomorrow, and 3 more projects to do......), but the online repo is no longer accessible on Magisk Manager, which forces me to push out an update.
Apart from that critical bug fix, it also comes with a lot of updates and improvements, please check the changelog for further info.
Please update your Magisk Manager from Play Store. The direct link is also updated with the new v3.1 version
Magisk v11.0
2017.2.6 Magisk v11.0
Came back from Chinese New Year holiday with some significant updates!
Introducing MagiskSU
Magisk officially becomes its own rooting solution!
Initially I just want to add root management features into Magisk Manager, but ended up updating lots of code.
Since the changes are quite significant, and no longer compatible with older versions, I'll just name it MagiskSU instead of phh Superuser.
The code is based on phh's approach to update the CM Superuser. I spent quite some effort to achieve SuperSU standards, so far the functionality should be nearly equivalent, my only concern now is compatibility, which is what I will focus on in future releases.
Please note, Magisk is still fully compatible and functional with the latest SuperSU (tested against v2.79-SR3)
The Fully Re-factored sepolicy-inject tool
To accompany with the fresh new MagiskSU, I also spent a ton of effort re-factoring the tool sepolicy-inject.
The tool now accepts policy statements, you can get more info about it from from this section of @Chainfire 's wonderful How-To SU documentation.
Basically I aimed to follow the same syntax as SuperSU's supolicy tool, as it is straight forward and same as the .te policy sources. I added a few additional features in sepolicy-inject, you can directly execute the binary with no options to refer to the help info.
See all changes in the changelog
(I named it "sepolicy-inject" instead of "supolicy", since it still differs in many ways (e.g the built-in rules) even though the syntax is now nearly identical. Root app developers might want to handle this difference when live patching sepolicies)
Pseudo SELinux Enforce Mode
Thanks to the new sepolicy-tool, pseudo enforced mode is now possible (the status shows enforced, but actually is permissive).
In some versions of Google Play Services, setting SELinux to permissive causes Safety Net to fail; however some custom ROMs require the system to be in permissive to be fully functional (although it should be considered as a bad practice). This shall be the perfect solution.
This will not be as a switchable option within Magisk Manager, since Google has a history of pulling apps from the Play Store when related to SELinux (see the tragic example of developer @flar2 's awesome app, and there are still more incidents).
MagiskHide binary is now updated to detect the permissive state, patch the current sepolicy to pseudo enforced mode, then switch back to enforced.
ROM developers don't have to change anything, just simply set to permissive on boot with a bundled app or a boot script as usual. If a user decided to enable MagiskHide, it will handle everything itself.
General Purpose Boot Scripts
I removed this feature in Magisk v4 and favored the per-module scripts. Now I decided to bring it back again.
The scripts should be placed in /magisk/.core/post-fs-data.d and /magisk/.core/service.d. The directory name should be self-explanatory.
If you have no idea which to choose, the post-fs-data.d will be a nice bet.
So Magisk will now execute script named post-fs-data.sh in each module, and all files within post-fs-data.d. The same applies to service.
Future
Thank you for everyone providing translations to Magisk Manager, and huge thanks to all donated.
I appreciate all the support, and that is my motivation to continue pumping stuffs out!
I will be maintaining MagiskSU continually; support won't end, at least in the near future.
Magic Mount features and better Magisk Module support are also on my list.
I spent zero time on adding more support to devices in v11, all the effort were put in MagiskSU and MagiskManager and major bug fixes.
The whole project is now in the state I consider "feature-packed" enough, most users/developers haven't used the full potential of the features.
I'll stop adding major new features and instead focusing on bringing Magisk to more devices that currently isn't supported.
And yes, that means I will postpone the long planned but never worked on Multi-ROM feature (I barely spent time on it after the POC video)
Hope you all will enjoy the update
(P.S. It's 9 AM here and I haven't slept. I'll update documentations after some sleep)
Before I got the in-app guides done, here are some tips for you
Many people seems missing these details
2017.2.19 Magisk Manager v4.2
Magisk Manager v4.2 is now live on Play Store. OP direct links are also updated accordingly.
Tons of improvements to the app, check the changelog for more info
Where is the Magisk Update?
I'm aware there are issue in Magisk v11.1 (vendor mount issues, and MagiskSU system rw issue)
I already fixed the system rw MagiskSU issue (so TiBack now 100% functional), you can check the Superuser sources if you're interested into the solution
I'll push an update soon after I fixed all currently known issues, AND add compatibility to more devices.
Please note that I'm only one single man, and also got a real life to deal with, so I can only focus one thing at a time.
I decided to first improve the Magisk Manager application to a point I think it's acceptable. Android application development is quite tedious, I have to put quite some time and effort into it.
After this Magisk Manager update, I will put all my attention on the core Magisk part, so please stay tuned!
New Online Module Info Display
I updated the way Magisk Manager show the details of Online Magisk Modules in the repo.
Previously I let each module include a changelog.txt, donate link, and support link
However, I think it would be better to let module developers to write anything they want
And considering the text rendering needs to be nice and clean, I think Markdown is the best choice here!
You can include links to your thread, links to your donation link, download link for an app required, changelog.... anything!
All Repo Developers Aware!
In Magisk Manager v4.2, the app will read the README.md file within your repo, and render the file properly
The changelog.txt file, support and donate entry within module.prop are no longer read, they can be removed.
Please update your README.md file ASAP to let the new app properly display what your modules do.
Here is an example, I updated the Xposed module's README.md, you can see the results in attachments
This is also a screenshot of what the new UI looks like
Magisk Manager v4.2.5 is live!
Hot fix for Samsung crashes (theoretically, no device to test), also did several adjustments here and there
As usual, full changelog in 2nd post, direct links and Play Store (might need to wait a few hours) are also updated
Sorry for the inconvenience!
Magisk Manager v4.2.6
Finally got the Samsung crash fixed!! Thank you for everyone reporting giving feedback, really appreciate the community!
As a compensate for the frequent updates and inconvenience, I added another feature that was requested to Magisk Manager - add a setting to disable update notifications
Play Store might take a few hours to update, direct link in OP is updated
Finally, I can now focus on the core part, which IMO is much much more important
Device compatibility should be GREATLY improved once the work is done, stay tuned!
For Pixel support though, I'll need to borrow my friend's Pixel XL for a couple of weeks to develop, but this might not happen soon since school is quite busy.
2017.3.21 Magisk v11.5/v11.6
It's about time for some Magisk update!!
Magisk Binary Changes
The original tool sepolicy-inject is now renamed to magiskpolicy. However, for backward compatibility, a symlink named sepolicy-inject will be created, which simply just links to magiskpolicy
The original tool bootimgtools is now renamed to magiskboot, which is a complete rewrite of the existing boot image patching tool. More info later.
Starting from this release, magiskpolicy, sepolicy-inject, resetprop, and if MagiskSU is installed, su, and supolicy (this is NOT the SuperSU supolicy, it just links to magiskpolicy, exists for compatibility) are all added to the PATH, which means you can directly call these commands through shell (and apps) without explicitly calling "/data/magisk/XXXXX"
In a nutshell:
Code:
/sbin/su -> /data/magisk/su
/sbin/resetprop -> /data/magisk/resetprop
/sbin/magiskpolicy -> /data/magisk/magiskpolicy
/sbin/sepolicy-inject -> /data/magisk/magiskpolicy
/sbin/supolicy -> /data/magisk/magiskpolicy
/data/magisk/sepolicy-inject -> /data/magisk/magiskpolicy
New Boot Image Tool: MagiskBoot
I spent a lot of time rewriting the whole boot image patching tool. For now it shall GREATLY improve the compatibility of Magisk. Key features:
Complete rewrite boot image extracting process
Proper MTK header support
Sony ELF type boot image support
Native ramdisk compression method support : gzip, xz, lzma, bzip2, lz4
This means custom kernel developers can now use a different ramdisk compression method with their custom kernels!
Native cpio patching support: auto ramdisk backups, auto ramdisk restores, auto dm-verity patch, auto forencrypt patch, native cpio extract/mkdir/add
This means boot patching process itself does not require root access anymore (it usually does)
Native LG bump and Samsung SEANDROIDENFORCE flag detection
More Magisk installation methods shall come soon!
I believe some of the features above do not exist in any existing rooting methods, I hope this will bring more users on the Magisk bandwagon
MagiskSU Fixes
In all current open source root methods, a common issue is that some apps (most well-known: Titanium Backup) cannot properly mount /system to read-write. Here I'll only briefly explain the technical details.
After spending very many hours, the victims are narrowed down to programs that directly use the "mount" system calls instead of calling the "mount" command. Also, the issue does not only happens to /system, but instead any read-only partitions. The only way to remount them to rw is through the toybox implementation of the mount command, which should be the default of all devices. This means that any external mount command (e.g. busybox) cannot remount them to rw either. After digging through the AOSP toybox source code and some search through the commits, I finally found the culprit: this commit in AOSP. What that commit does in a nutshell is that all blocks mounted read-only will be locked to read-only.
So starting from this release of MagiskSU, all blocks will be unlocked when the daemon is started (this does NOT break your system integrity, meaning it does not break OTAs), everything should work fine.
Another subtle change is that the command "-cn" will not do anything starting from now. All root developers can call the "-cn" command on both SuperSU and MagiskSU, it shall work in both cases.
I had tried to add the "-cn" command in the previous release, which only exists in SuperSU, but it was not implemented correctly, and apps depending on it will not work correctly.
However, this "context switch" command is originally added to SuperSU due to the way it managed selinux back in the old days. The way I deal with selinux, starting from Magisk v7 (Chainfire switched to similar method in his latest beta) DOES NOT need any context change, as all root procedures and processes are running in a permissive domain (in Magisk's case it's a domain that allows everything, which is slightly different to permissive. This is because permissive does not work on Sammy)
Magic Mount Vendor Issues
In Magisk v11.1, devices with a separate vendor partition (newer Nexus devices) will fail to properly magic mount files in vendor, the most common issue is using the ViPER4Android Magisk module.
It is now fixed in v11.5
Module Template Update
The Magisk Module Template is now updated. All developers please adapt your modules to the newer version
An entry in module.prop called template now indicates the template version number.
In future Magisk Manager updates, it will only show the modules that are using the latest two versions of the template.
e.g. If the latest template version is v13, only v13 and v12 modules will be showed in the repo
This gives the time for developers to update their modules, but also enforcing them to adapt to newer scripts, so I don't need to support the old template formats.
I apologize that I was busy and didn't add the existing module requests, I'll add them once you have migrated your module to the latest template
Also please note that I will NOT add modules that ONLY change some props using resetprop, as this is a upcoming feature to Magisk Manager in the near future.
What's Next?
Magisk v11.1 got over 500K downloads! Thank you for all the support!
The next short term goal is to add more features into MagiskManager (including the mentioned prop management, and a new installation method)
The long term goal will be migrating the current script-based magic mount to C program, which shall be run as a daemon in the background, combining resetprop, magiskhide etc. all-in-one. This will take some time to finish though.
For the long awaited Pixel support, I think I'll start working on it, but the complexity of that device might take a very long time for me to understand, since I do not own the device. I can only borrow my friend's device for not that long of a period of time, so progress shall be really slow. I'll not get the Pixel device now, because I don't think it is worth the price and the hassle for me to import it into Taiwan, but I'll definitely get the Pixel 2 to replace my current daily driver lol.
Magisk v11.6 Hotfix
The issue turns out to be a veeeery minor issue, but causes the whole script unable to run correctly on Samsung devices.
Also, I fixed the incorrect value for selinux prop patching for MagiskHide, so people with selinux issues should now be settled.
I guarantee all future releases will go through serious beta testing, especially Samsung devices. This project is in a scale that these kind of mistakes cannot be tolerated.
I'm sorry for all the inconvenience the previous release gave you, and the mess and headaches for all broken devices.
The Module Template is again updated. This bug will also affect module templates, so please update accordingly, thanks!!
But still, I hope you will enjoy this new release
2017.3.31 Magisk V12.0
The major version bump should label this release as a stable release (at least this is what I hope)
This release is thoroughly tested by all my testers, especially focusing on Samsung devices
Unless major issues, the next release should be a complete new redesign, and requires more time, more info later
The FAQ in OP is updated, please check them out!!!
Samsung, Samsung, oh Samsung
My previous release was widely criticized for breaking tons of Samsung devices, the rating on Play Store also reflected this fact
Thanks to helpful testers and developers, we ironed out all the quirks of Sammy, and in addition added more Samsung specific features.
One is adding proper support for Samsung permissive kernels. Another is faking KNOX to 0x0 if MagiskHide enabled.
Is that good enough to compensate my mistakes in the last release?
Sepolicy Live Patch Moved
Another critical update is that the sepolicy live patching is now moved from the post-fs-data mode to the service mode.
This decision is done due to the fact that on some devices (e.g. Samsung), there are too much to patch, which greatly delays the bootup time if the live patching is done in a blocking stage. However, this will require some updates for the minimal sepolicy rules.
The minimal patch is now a little more complete, which requires 20-80KB of ramdisk size (previously 1-4KB). Still not large to be honest.
However, this makes post-fs-data mode NOT completely unrestricted. post-fs-data mode can still do any file related operations, setting system props etc., a lot more than normal users would use. However, service mode would be guaranteed to be executed AFTER the full sepolicy patch is done.
It is recommended to run most scripts in the service mode (service.d/service.sh), except a. mounting files; b. patching system props; c. time critical operations
Magisk Core Only Mode
People complain that Magisk has "too many features", they don't want to use such "complete" solution.
Here I introduce Core Only Mode. It can be enabled in the new Magisk Manager.
What will still be started: MagiskSU, post-fs-data.d, service.d, (if enabled: MagiskHide, systemless hosts, systemless busybox)
What will not be started: Cache (post-fs) mounts, magic mount (system mirror etc.), all modules, all module scripts
So it literally limits Magisk to root + boot scripts. MagiskHide is still there for those who want some Mario Run lol.
Say Goodbye to Outdated Modules
This day finally comes. All modules on the repo that aren't using the latest template (v3 for now) are now hidden.
This not only guarantees that the modules are using the latest scripts, but also a nice way to filter out modules that are no longer maintained by the uploader.
You have to add/update template=(ver) in your module.prop. Magisk Manager will not know if you only updated the scripts
Upcoming Features
Here are some planned features (sorted in priority)
Magisk Manager resetprop GUI
MagiskSU multiuser support
Unified Magisk daemon: As stated before, I'm planning to write Magic Mount in code to achieve more efficiency and features.
All current Magisk features (magiskpolicy, magiskhide, resetprop, superuser, magic mount) will be in a unified daemon
Pixel (XL): Some developers has done some progress, I'll contact them and sort things out
Android O: I bought a Nexus 5X now, finally got some O love
Some details are changed in v12.0, I'll update the documentation (wiki) soon.
Some Recent Updates
I wish I can be more vocal in the forums, so more information can be spread to the community, but being a university student in Taiwan, studying engineering specifically, is not easy.
It has been a while since the last release, I think I would shed some light regarding the next big update.
Unified Binary
First, the most obvious change is that Magisk no longer rely on the overly complicated scripts, but instead replaced with pure C/C++ programs. Along with Magisk's development, more and more features were added, and those cannot be done with scripts are added as binaries (magiskhide, magiskpolicy, resetprop etc.). As a result, in the last build (v12.0) there are tons of binaries scattered, loosely working together with poor communication.
So the first thing to do is to combine everything as a single program, something like busybox, which is a single binary that acts as multiple utilities. This took me quite some time to finish, especially merging the existing superuser with other parts that also requires daemon connection. Another tricky part is to port the spaghetti shell script into proper C code. The good news is that both of them are done (though, some small bugs might exist and I'm currently hunting them down)
No More Busybox!
Second is the decision to remove the bundled busybox. Initially I added busybox into Magisk due to lack of proper commandline tools in native Android environment (e.g. lack of losetup in Android 5.0), and also many selinux specific options for several utilities do not exist in official AOSP toolbox/toybox. The big problem is that the busybox causes more issues than I would ever expect. Many features in v12 are implemented to only work with that specific busybox bundled with Magisk. However due to the variety of configurations of custom roms, the assumption that the target busybox is always there, working as expected obviously isn't true, leading to numerous breakage and headaches. This is one of the reason why tons of issues submitted to Github are not addressed, because all pre-v13 are haunted with the same issue - the environment Magisk is running is a mess.
However, thanks to ditching shell scripts completely, currently I handle everything by natively calling system calls, or by implementing the functions directly into the binary (another tedious task...). So Magisk now works as a complete package itself, no more dependency and requirements in the environment. Due to this change, the Magisk Manager would need to include a busybox in order to provide the environment to install Magisk modules/Magisk updates, which I think many tracking the development on Github would already notice this change.
Those wondering how to add busybox if they want? I'll release a new module in the repo.
Android O
Finally, Android O support! As expected, Android O has quite some security changes, but since I'm gonna start everything from scratch anyway, things are all quickly sorted out. Also thanks to the arrival of my Nexus 5X, I can finally test things on an actual device, as a result Magisk is now 100% working on Android O DP1. The module template might need some slight updates regarding Android O changes, please stay tuned for the announcement!
Of course, tons of other improvements are also included, I won't list all of them here and will leave them for the release post and changelogs. Updates to Magisk Manager are also work in progress (application development is very tiresome...). There are still tons of features/support bugging in my mind and I would hope I can implement all, but the reality and school prevents me to do so, I am now aiming more towards a stable release rather than rushing out poorly designed features and making me regret in future maintenance lol.
I won't have time to publish lots of informative posts as this one, for those who are interested in the active development of Magisk/Magisk Manager, please keep track of the Github repos. I always keep the development work transparent, anyone curious can spend a little effort to build it themselves and have a sneak peak of what's currently going on. Just keep in mind that the cutting edge master branch does not always work properly

[Kernel]Kali-NetHunter kernel Pixel 3a and 3a XL sargo/bonito[Kernel]

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
WITH GREAT POWER COMES GREAT RESPONSIBILITY............
Please use kernel responsibly and respect the rights of others including and especially privacy!
The mad tech clown is back with another Kernel for all of the Kali-linux-nethunter users wanting the portability of kali-nethunter for their Pixel 3a and 3a XL devices codenamed sargo and bonito.
hahahahahahahahahahahahahahahahahahaha
Warning your warranty is now void. Do this at your own risk. The mad clown is in no way responsible for the chaos, worldwide disease, nuclear destruction, laughing fish, costumed caped crusaders or damage caused to your device by performing the steps involved.
hahahahahahahahahahahahahahahahahahaha
I now bring you the
Mad-Kali-MaxHunter kernel
Features :
compiled with clang 8 and linaro aarch64 5.5
-optimized for performance and battery life
-Klapse color control with backlight dimmer and high brightness mode
-Boeffla wakelock blocker
-vibration control
-sound control
-the usual I/O schedulars like zen fiops deadline and such
-adreno boost
-fsync switch
-wireguard support
-HID support
-previously disabled otg is now enabled
-full usb support including.........
---serial
---ACM
---OBEX
---NCM
---ECM
---RNDIS
---EEM
---mass storage
---MTP and PTP
---MIDI
---DIAG
-ntfs
-devtmpfs and mount
-full bluetooth support
-Wifi injection
-dvb / sdr support
- use your own modules
-systemd/upstart support for dual boot
-LZMA compression to keep twrp
-binfmt_misc -------- you can do alot of cool stuff with this enabled like use exe programs ie wine and for you compilers you can effectively change the architecture of your device in a chroot to use qemu properly. what does that really mean you can compile as x86_64 on your aarch64 device like building your own kernel.
and every thing you need for your kali hacking excursions packed inside this kernel
source available at
P
https://github.com/Duhjoker/android_kernel_google_bonito/tree/Mad-Kali-MaxHunter-P3A-P
Q
https://github.com/Duhjoker/android_kernel_google_bonito/tree/Mad-Kali-MaxHunter-P3A-Q
R
https://github.com/Duhjoker/android_kernel_google_bonito/tree/Mad-Kali-MaxHunter-P3A-R
S
https://github.com/Duhjoker/android_kernel_google_bonito/tree/Mad-Kali-Maxhunter-P3A-S
Thanks to Lineage, ElementalX, Dirty Unicorns and beidl aka fredldotme.
Please use this kernel responsibly and mind the rights of others including and especially privacy.
To install flash Mad-Kali-MaxHunter-kernel.zip from twrp. also included are some libs and binaries and other such materials needed to get a fully working version of Kali-nethunter on your pixel 3A and 3A XL device. just unzip the kali-hacks.zip place in proper directories using twrp and give proper permissions.
Download Kali store install the chroot manager nethunter terminal and kex manager install your chroot and happy hunting
Once again and this is no laughing matter. please use this kernel responsibly and mind the rights of all people including and especially privacy.
The mad clown is not responsible for any thing you might do in good or bad concious
Download from here or my personal gihub repository to hold the prebuilt kernels in an anykernel3 zip. i update from time to time so check the dates on the zips.
GitHub - Duhjoker/Mad-Kali-MaxHunter-kernel-prebuilt: repository to hold prebuilt kali nethunter kernel
repository to hold prebuilt kali nethunter kernel. Contribute to Duhjoker/Mad-Kali-MaxHunter-kernel-prebuilt development by creating an account on GitHub.
github.com
COMING SOON
KALI-TOUCH! its like ubuntu touch but using a kali-linux root file system instead of ubuntu.
For pixel 3a sargo and bonito roms and more check out my mega!
16.68 GB folder on MEGA
74 files and 20 subfolders
mega.nz
change log:
Pie:::::::
10/9/21
improved systemd
10/10/21
now with built in wlan
Kernel can be used with any stock or custom rom
Q:::::::::
10/9/21
Brand new off the compiler
features::::::
same as Pie plus built in wlan.ko
Kernel can be used with any stock or custom rom
R::::::::::::
10/14/21
features::::::::::
same as above
S:::::::::::::
10/26/21
features:::::::::::
same as above
11/21/20
link time optimisation enabled
fix system warning on startup
what version its android 12 ??? thanks
regards
Can the pixel-3a deauth WPA networks?
the kernel versions are labled according thier corresponding letter in alphabetical order. p is 9, q is 10, r is 11 and 12 is s.
yes the pixel 3 is capable of de-auth of wpa networks although it will take longer than it would on a pc. if the tools are available the device can use them
all updated kernels will be found on my github page from here on out.
major update now for A12-S and A11-R kernels. the system warning at startup has been fixed. enjoy
can you make one for pixel 4a. i tried but failed
@Duhjoker
Ayy first off thanks for putting the kernal together! After tinkering with trying to get nethunter functional on my pixel 3a for about 3 days I figured it was time to reach out haha.
I did follow your instructions the best I could multiple ways. I now have re flashed lineage os many times and followed the guide from their site (https://wiki.lineageos.org/devices/sargo/install). I am running the p3a R kernal since I have android 11 running on the pixel. The kernal seems to be functional as it shows up as expected when looking inside of the nethunter app. I have magik v23 installed with root access and all is fine there. I did run into a hicups with the terminal throwing the error " "Required key not available"." when trying to run any commands from zsh from the kali terminal app.
I was able to resolve this problem by doing the following
SSH Bash: Required key not available
Hi guys, When I connect to my Nethunter through SSH from my laptop, (tried both root and kali as user). It seems the SSH bash environment is limited. with most commands I type in, the SSH terminal returns: -Bash: /usr/bin/TheCommandIJustTyped Required key not available I looked everywhere...
forums.kali.org
I've been able to solve the problem commenting the line:
#session optional pam_keyinit.so force revoke
in /etc/pam.d/sshd and /etc.pam.d/su-l files.
After restart chroot environment, write operations from chroot to Android encrypted data partition is working.
Click to expand...
Click to collapse
So I can get to a point where It appears that I have a "fully functional" nethunter app / terminal the problem arises when I actually try using it. I cannot seem to get any of the hardware functional. For example bluetooth interfaces listed under "bluetooth arsenal" show up as none. When trying to run the wlan1 or wlan0 in monitor mode it is not functional. I am not even able to scan for SSIDs of networks broadcasting.
I know you stated the following.
also included are some libs and binaries and other such materials needed to get a fully working version of Kali-nethunter on your pixel 3A and 3A XL device. just unzip the kali-hacks.zip place in proper directories using twrp and give proper permissions.
Click to expand...
Click to collapse
After many attempts and learning how the android filesystem / chroot are laid out I managed to copy the files from "kali-hacks.zip" into the "/system" directory. This made the most sense to me after poking around on the phone and online. This leads to my first question. Is this the correct file path to copy the files to? I applied a chroot 755 on the files and then ran "mount -o rw,remount /" to make root writable and simply copied all of the files over by doing "mv * /system" from the kali-hacks directory. This was all done as the root user from TWRP. I would assume if I did this correctly everything would be functional hardware wise. So either I am going about it all silly like or something is funky.
My second question is the following. Did you do anything to make sure that your file system is NOT encrypted? I know thats why zsh was giving me there error "Required key not available". Therefore, assuming that I did infact copy the kali_hack.zip files correctly I feel this may be the cause of my woes. When checking the kali nethunter documentation it does list that you need to make the system non-encrypted.
[Kernel]Kali-NetHunter kernel Pixel 3a and 3a XL sargo/bonito[Kernel]
WITH GREAT POWER COMES GREAT RESPONSIBILITY............ Please use kernel responsibly and respect the rights of others including and especially privacy! The mad tech clown is back with another Kernel for all of the Kali-linux-nethunter users...
forum.xda-developers.com
6. Flashing Universal DM-Verity & ForceEncrypt Disabler​IMPORTANT NOTE for Android 9, 10, & 11 users: Please ensure that you flash the Universal DM-Verity, ForceEncrypt Disabler and format the data partition prior to installing NetHunter. Magisk does not support user context changes on encrypted data partitions, which leads to errors when connecting to the Kali rootfs via ssh (i.e. “Required key not available”) if the data partition is encrypted.
Click to expand...
Click to collapse
Although funny enough when following the official docs the link from the site redirects you to "https://forum.xda-developers.com/t/...ncrypt-disk-quota-disabler-11-2-2020.3817389/" which then sends you to "https://github.com/Zackptg5/Disable_Dm-Verity_ForceEncrypt" which is depreciated and last updated 14 months ago... I still tried anyways out of desperation with a fresh install of lineage os using the method he provided to get a non encrypted filesystem. The outcome was not successful. (instructions I followed can be found in the XDA link above).
Thanks in advance if you get around to reading this. I have bashed my head against this for probably 20ish hours now over the last couple of days and exhausted all of my ideas. Any help is appreciated.
Recap on Questions (TL;DR)
1. How / at what time during install / where should I be copying the files in "kali-hacks.zip" to?
2. Did you do anything to make your file system not encrypted as recommended per the kali nethunter docs? If so how did you manage to do so?
The kali-hacks should be unzipped and copied to /syatem and i usually install them after getting the apks and rootfs installed.
As far as encrypted.... i do not know what you mean by that. Its best to let the gui app download the roots from thier server during install.
create for pixel 3 pls
Has anyone made this to use on pixel 3 XL yet?
hey guys i just updated the kernel to 12.1.
attached is a Mad-Kali-MaxHunter kernel for blueline and crosshatch pixel 3 (xl) only. let me know what you think
Super stoked for Kali-Touch! lmk if you need a tester - I've got spare phones.
PSA -
For anyone running the newest linage OS (19.1) on the pixel 3a and are struggling to get the nethunter app to boot properly after providing it root perms using magisk. Try the following, it worked for me.
get the app to boot properly you need to do the following
The issue was of Permissions - to solve the issue run the following commands in AndroidSU
Code:
pm grant com.offsec.nethunter android.permission.ACCESS_FINE_LOCATION
pm grant com.offsec.nethunter android.permission.ACCESS_COARSE_LOCATION
pm grant com.offsec.nethunter android.permission.READ_EXTERNAL_STORAGE
pm grant com.offsec.nethunter android.permission.WRITE_EXTERNAL_STORAGE
pm grant com.offsec.nethunter com.offsec.nhterm.permission.RUN_SCRIPT
pm grant com.offsec.nethunter com.offsec.nhterm.permission.RUN_SCRIPT_SU
pm grant com.offsec.nethunter com.offsec.nhterm.permission.RUN_SCRIPT_NH
pm grant com.offsec.nethunter com.offsec.nhterm.permission.RUN_SCRIPT_NH_LOGIN
NetHunter not open crashed (#306) · Issues · Kali Linux / NetHunter / Apps / kali-nethunter-app · GitLab
i have android version 11 on my phone and i can't use netuntar, its crashed every time
gitlab.com
Duhjoker said:
please make it available for pixel 4a (sunfish)
Click to expand...
Click to collapse
Hey guys, I'm trying to make it work but I'm out of luck
this is what I did:
1. I unlocked the phone and installed twrp recovery
2. I flashed the "Mad-Kali-MaxHunter-P3A-S.zip" using twrp
3. I used twrp to install magisk
4. Installed "KaliNethunter-v8.2(22).zip" using magisk modules
5. after reboot after updating the Nethunter app from the Nethunter Marketplace and giving it all the permissions that it requested it gives this error in the notification:
```
Nethunter: Startup
Root: OK.
BusyBox: OK.
Chroot: Chroot is not yet installed.
Make sure the above requirements are met.
```
and the Nethunter app keeps crashing as soon as it opens....
Possible to build some modules for this card?
GitHub - aircrack-ng/rtl8812au: RTL8812AU/21AU and RTL8814AU driver with monitor mode and frame injection
RTL8812AU/21AU and RTL8814AU driver with monitor mode and frame injection - GitHub - aircrack-ng/rtl8812au: RTL8812AU/21AU and RTL8814AU driver with monitor mode and frame injection
github.com

Categories

Resources