Themes / Apps / Mods [MOD/magisk/root] GoogleWiz - my magical Magisk module (for devs/sharing !!!) - Google Pixel 6 Pro

I'm posting this here for the benefit of the (developer) community.
Attached is my personal "magical" Magisk module for P6P.
I strongly suggest that you DO NOT INSTALL this ... first read below ... If you don't understand what is written below, stop reading and go back playing with your phone ;-)
What is this module doing:
- it "hides" a lot (> 80) of system APKs which I do not use (e.g. NFC, Pixel Tips, Security Hub, MusicFX, ...) - so these literally "disappear" from your phone (Magisk hiding); this works by "bind-mounting" an empty directory over the APKs' file system
- it has a bash shell for "su"
- ad blocking (hosts file, mounted as /etc/hosts)
- it has a series of init.d (mounted as /etc/init.d) and service.d (mounted as /etc/services.d) scripts that do various things (e.g. kernel tuning, disable various debugging, disable swap, run sqlite optimizer, charling limit, ext4 tweaks ...), some things will NOT be relevant to you (e.g. there are scripts that install obf maps for OSMAND)
- a number of binaries (e.g. bash, busybox, xmlstarlet, find, (g)parted, ...)
- a number of scripts (mounted in /system/bin) for my personal usage (e.g. a script to make all my settings "stick")
- enables VoLTE (check properties in system.prop file)
So, you need to unzip this module and check the stuff inside, modify as per your liking !!!
This module is a (long lived) decendent from an old (2018) Magisk based ROM on Galaxy S8 (https://forum.xda-developers.com/t/...iz-pixelize-your-s8-end-of-life-crj5.3750641/). That ROM was quite popular as it turned the Galaxy S8 into a Pixel like phone. For me personally it was a journey to learn how to develop Magisk modules and gradually became bigger and bigger ...
You CAN install it ... but it may NOT be to your liking (!!!) ... then just uninstall it from Magisk ... no harm done (except that you will have my settings) - check out the script LS99execonce to understand this
Devs: feel free to (re)use for whatever purpose ... sharing for the benefit of the community ... if you do use it, no need to mention me (but you can of course) ;-)
Most of the code is "sh" scripting (and a few "bash" scripts).
If you do run it, there will be logging info in /data/googlewiz, just do:
Code:
> adb shell
$ su
# cat /data/googlewiz/*
... and
# cat /data/LS00* (init.d scripts logging)
# cat /data/LS99* (services.d scripts logging)
Hopefully some of this can help you in developing your own magisk module.

Which file in your module lists which app get disabled/hidden?
I would prefer to go through them manually first

Unzip the module, then check all the directories which have an ".replace" file, e.g. on linux do:
Code:
> cd mydir
> unzip googlewiz.zip
> find . -name '.replace'
That wil show you the paths of the APKs which are hidden.
Sorry, I'm not a Windows guy ...
This is the list:
Code:
./system/product/app/YouTubeMusicPrebuilt/.replace
./system/product/app/SoundAmplifierPrebuilt/.replace
./system/product/app/VoiceAccessPrebuilt/.replace
./system/product/app/SafetyRegulatoryInfo/.replace
./system/product/app/PixelWallpapers2021/.replace
./system/product/app/talkback/.replace
./system/product/app/Videos/.replace
./system/product/app/VZWAPNLib/.replace
./system/product/app/DiagnosticsToolPrebuilt/.replace
./system/product/app/LocationHistoryPrebuilt/.replace
./system/product/app/MicropaperPrebuilt/.replace
./system/product/overlay/DisplayCutoutEmulationCorner/.replace
./system/product/overlay/CellBroadcastServiceOverlay/.replace
./system/product/overlay/CellBroadcastReceiverOverlay/.replace
./system/product/overlay/NavigationBarModeGesturalExtraWideBack/.replace
./system/product/overlay/DisplayCutoutAvoidAppsInCutout/.replace
./system/product/overlay/DisplayCutoutNoCutout/.replace
./system/product/overlay/FontNotoSerifSource/.replace
./system/product/overlay/NavigationBarModeGesturalNarrowBack/.replace
./system/product/overlay/OneHandedModeGestural/.replace
./system/product/overlay/NavigationBarModeGesturalWideBack/.replace
./system/product/overlay/NavigationBarMode3Button/.replace
./system/product/overlay/DisplayCutoutEmulationDouble/.replace
./system/product/overlay/DisplayCutoutEmulationWaterfall/.replace
./system/product/overlay/DisplayCutoutEmulationTall/.replace
./system/product/overlay/DisplayCutoutEmulationHole/.replace
./system/product/priv-app/Showcase/.replace
./system/product/priv-app/HotwordEnrollmentXGoogleFUSION/.replace
./system/product/priv-app/ScribePrebuilt/.replace
./system/product/priv-app/OTAConfigNoZeroTouchPrebuilt/.replace
./system/product/priv-app/OemDmTrigger/.replace
./system/product/priv-app/BetterBug/.replace
./system/product/priv-app/PartnerSetupPrebuilt/.replace
./system/product/priv-app/PixelLiveWallpaperPrebuilt/.replace
./system/product/priv-app/HelpRtcPrebuilt/.replace
./system/product/priv-app/DCMO/.replace
./system/product/priv-app/TipsPrebuilt/.replace
./system/product/priv-app/DreamlinerPrebuilt/.replace
./system/product/priv-app/AppDirectedSMSService/.replace
./system/product/priv-app/ConnMO/.replace
./system/product/priv-app/SafetyHubPrebuilt/.replace
./system/product/priv-app/CbrsNetworkMonitor/.replace
./system/product/priv-app/WellbeingPrebuilt/.replace
./system/product/priv-app/MaestroPrebuilt/.replace
./system/product/priv-app/CarrierMetrics/.replace
./system/product/priv-app/DiagMon/.replace
./system/product/priv-app/DreamlinerUpdater/.replace
./system/product/priv-app/DMService/.replace
./system/product/priv-app/HotwordEnrollmentOKGoogleFUSION/.replace
./system/app/GooglePrintRecommendationService/.replace
./system/app/PacProcessor/.replace
./system/app/BasicDreams/.replace
./system/app/NfcNci/.replace
./system/app/EasterEgg/.replace
./system/app/PartnerBookmarksProvider/.replace
./system/app/BookmarkProvider/.replace
./system/app/WallpaperBackup/.replace
./system/app/LiveWallpapersPicker/.replace
./system/app/BluetoothMidiService/.replace
./system/app/HTMLViewer/.replace
./system/system_ext/app/EmergencyInfoGoogleNoUi/.replace
./system/system_ext/priv-app/GoogleFeedback/.replace
./system/system_ext/priv-app/QuickAccessWallet/.replace
./system/system_ext/priv-app/MyVerizonServices/.replace
./system/system_ext/priv-app/obdm_stub/.replace
./system/system_ext/priv-app/StorageManagerGoogle/.replace
./system/system_ext/priv-app/WallpaperPickerGoogleRelease/.replace
./system/system_ext/priv-app/OBDM_Permissions/.replace
./system/system_ext/priv-app/LLKAgent/.replace
./system/system_ext/priv-app/PixelNfc/.replace
./system/priv-app/BuiltInPrintService/.replace
./system/priv-app/Traceur/.replace
./system/priv-app/LocalTransport/.replace
./system/priv-app/ManagedProvisioning/.replace
./system/priv-app/AppDirectedSMSService/.replace
./system/priv-app/TagGoogle/.replace
./system/priv-app/CellBroadcastLegacyApp/.replace
./system/priv-app/CallLogBackup/.replace
./system/priv-app/SharedStorageBackup/.replace
./system/priv-app/MmsService/.replace
./system/priv-app/MusicFX/.replace
./system/priv-app/BackupRestoreConfirmation/.replace

foobar66 said:
Unzip the module, then check all the directories which have an ".replace" file, e.g. on linux do:
Code:
> cd mydir
> unzip googlewiz.zip
> find . -name '.replace'
That wil show you the paths of the APKs which are hidden.
Sorry, I'm not a Windows guy ...
This is the list:
Code:
./system/product/app/YouTubeMusicPrebuilt/.replace
./system/product/app/SoundAmplifierPrebuilt/.replace
./system/product/app/VoiceAccessPrebuilt/.replace
./system/product/app/SafetyRegulatoryInfo/.replace
./system/product/app/PixelWallpapers2021/.replace
./system/product/app/talkback/.replace
./system/product/app/Videos/.replace
./system/product/app/VZWAPNLib/.replace
./system/product/app/DiagnosticsToolPrebuilt/.replace
./system/product/app/LocationHistoryPrebuilt/.replace
./system/product/app/MicropaperPrebuilt/.replace
./system/product/overlay/DisplayCutoutEmulationCorner/.replace
./system/product/overlay/CellBroadcastServiceOverlay/.replace
./system/product/overlay/CellBroadcastReceiverOverlay/.replace
./system/product/overlay/NavigationBarModeGesturalExtraWideBack/.replace
./system/product/overlay/DisplayCutoutAvoidAppsInCutout/.replace
./system/product/overlay/DisplayCutoutNoCutout/.replace
./system/product/overlay/FontNotoSerifSource/.replace
./system/product/overlay/NavigationBarModeGesturalNarrowBack/.replace
./system/product/overlay/OneHandedModeGestural/.replace
./system/product/overlay/NavigationBarModeGesturalWideBack/.replace
./system/product/overlay/NavigationBarMode3Button/.replace
./system/product/overlay/DisplayCutoutEmulationDouble/.replace
./system/product/overlay/DisplayCutoutEmulationWaterfall/.replace
./system/product/overlay/DisplayCutoutEmulationTall/.replace
./system/product/overlay/DisplayCutoutEmulationHole/.replace
./system/product/priv-app/Showcase/.replace
./system/product/priv-app/HotwordEnrollmentXGoogleFUSION/.replace
./system/product/priv-app/ScribePrebuilt/.replace
./system/product/priv-app/OTAConfigNoZeroTouchPrebuilt/.replace
./system/product/priv-app/OemDmTrigger/.replace
./system/product/priv-app/BetterBug/.replace
./system/product/priv-app/PartnerSetupPrebuilt/.replace
./system/product/priv-app/PixelLiveWallpaperPrebuilt/.replace
./system/product/priv-app/HelpRtcPrebuilt/.replace
./system/product/priv-app/DCMO/.replace
./system/product/priv-app/TipsPrebuilt/.replace
./system/product/priv-app/DreamlinerPrebuilt/.replace
./system/product/priv-app/AppDirectedSMSService/.replace
./system/product/priv-app/ConnMO/.replace
./system/product/priv-app/SafetyHubPrebuilt/.replace
./system/product/priv-app/CbrsNetworkMonitor/.replace
./system/product/priv-app/WellbeingPrebuilt/.replace
./system/product/priv-app/MaestroPrebuilt/.replace
./system/product/priv-app/CarrierMetrics/.replace
./system/product/priv-app/DiagMon/.replace
./system/product/priv-app/DreamlinerUpdater/.replace
./system/product/priv-app/DMService/.replace
./system/product/priv-app/HotwordEnrollmentOKGoogleFUSION/.replace
./system/app/GooglePrintRecommendationService/.replace
./system/app/PacProcessor/.replace
./system/app/BasicDreams/.replace
./system/app/NfcNci/.replace
./system/app/EasterEgg/.replace
./system/app/PartnerBookmarksProvider/.replace
./system/app/BookmarkProvider/.replace
./system/app/WallpaperBackup/.replace
./system/app/LiveWallpapersPicker/.replace
./system/app/BluetoothMidiService/.replace
./system/app/HTMLViewer/.replace
./system/system_ext/app/EmergencyInfoGoogleNoUi/.replace
./system/system_ext/priv-app/GoogleFeedback/.replace
./system/system_ext/priv-app/QuickAccessWallet/.replace
./system/system_ext/priv-app/MyVerizonServices/.replace
./system/system_ext/priv-app/obdm_stub/.replace
./system/system_ext/priv-app/StorageManagerGoogle/.replace
./system/system_ext/priv-app/WallpaperPickerGoogleRelease/.replace
./system/system_ext/priv-app/OBDM_Permissions/.replace
./system/system_ext/priv-app/LLKAgent/.replace
./system/system_ext/priv-app/PixelNfc/.replace
./system/priv-app/BuiltInPrintService/.replace
./system/priv-app/Traceur/.replace
./system/priv-app/LocalTransport/.replace
./system/priv-app/ManagedProvisioning/.replace
./system/priv-app/AppDirectedSMSService/.replace
./system/priv-app/TagGoogle/.replace
./system/priv-app/CellBroadcastLegacyApp/.replace
./system/priv-app/CallLogBackup/.replace
./system/priv-app/SharedStorageBackup/.replace
./system/priv-app/MmsService/.replace
./system/priv-app/MusicFX/.replace
./system/priv-app/BackupRestoreConfirmation/.replace
Click to expand...
Click to collapse
Np, I am a Linux user too
And you are sure that you can safely disable all that stuff?
I see several packages that I had disabled in AFWall+ and I noticed that some things got broken.

Utini said:
Np, I am a Linux user too
And you are sure that you can safely disable all that stuff?
I see several packages that I had disabled in AFWall+ and I noticed that some things got broken.
Click to expand...
Click to collapse
I don't have broken things. But I don't use certain things either, e.g. NFC, one handed mode, pixel tips, live wallpapers, eSIM ... all of these (and more) I have disabled ... but you have to judge for yourself!!!

I probably won't be using this, but this is awesome. I've done similar for one of my very old LG phones and tablets. More of the traditional bloatware, that is.

Like you, I've been disabling all of those same apks, pretty much every one you disabled except for NFC for the rare time I actually use it. I've done that probably for the last ten years on all my devices. You do see a slight speed increase and maybe some better battery life by disabling all of those. On my S21 Ultra I think I had about 135 apk's disabled. Great module.

Hello from Germany...
One of these settings prevents the correct display for some apps.
Here is an example from SwiftKey.
Do you know which one it could be?
In the first picture googlewiz is switched off.
The second one shows the different colors on the same keyboard.
In the third picture you can no longer see the enter button.
It seems to be something about black and white.
If I switch off dark mode with googlewiz switched on, it works without any problems.
greetz

V-Ripper said:
Here is an example from SwiftKey.
Click to expand...
Click to collapse
Hmmm ... could either be the (a) force dark setting or (b) the gesture pill removal (overlay).
Try the following:
Code:
> adb shell
$ su
# cmd overlay disable com.android.shell:NavBarFrameHeightOverlay
Then check SwiftKey again. Please report if OK or not.

I've been using this for a couple of days now & seems to be working brilliantly, thanks @foobar66!
I have highly modified the package to fit my usage - I have removed: adblocking (as I use adaway), your personal settings, the charge limit, some binaries & I have unfrozen some system apks, etc.
The module still is freezing 37 system apks & is also still running: block dev tweaks, ext4 tweaks, kernel tweaks, scheduling tweaks, swap off script, no log script, stop daemon script & swapiness script.
Everything seems to be running very well! I especially love the green "[email protected]" instead of "raven" when using shell

DanielF50 said:
Everything seems to be running very well! I especially love the green "[email protected]" instead of "raven" when using shell
Click to expand...
Click to collapse
Simple bash prompt ;-);-)
Actually, the hosts file in the magisk module is an (old) version of the AdAway one ...

Below is my most recent list of 'hidden' APKs (stuff that I don't use) ... but please check for yourself.
Code:
/system/app/BasicDreams/BasicDreams.apk
/system/app/BluetoothMidiService/BluetoothMidiService.apk
/system/app/BookmarkProvider/BookmarkProvider.apk
/system/app/CompanionDeviceManager/CompanionDeviceManager.apk
/system/app/EasterEgg/EasterEgg.apk
/system/app/GooglePrintRecommendationService/GooglePrintRecommendationService.apk
/system/app/HTMLViewer/HTMLViewer.apk
/system/app/LiveWallpapersPicker/LiveWallpapersPicker.apk
/system/app/NfcNci/NfcNci.apk
/system/app/PacProcessor/PacProcessor.apk
/system/app/PartnerBookmarksProvider/PartnerBookmarksProvider.apk
/system/app/SimAppDialog/SimAppDialog.apk
/system/app/Stk/Stk.apk
/system/app/WallpaperBackup/WallpaperBackup.apk
/system/priv-app/BackupRestoreConfirmation/BackupRestoreConfirmation.apk
/system/priv-app/BuiltInPrintService/BuiltInPrintService.apk
/system/priv-app/CallLogBackup/CallLogBackup.apk
/system/priv-app/CellBroadcastLegacyApp/CellBroadcastLegacyApp.apk
/system/priv-app/InputDevices/InputDevices.apk
/system/priv-app/LocalTransport/LocalTransport.apk
/system/priv-app/ManagedProvisioning/ManagedProvisioning.apk
/system/priv-app/MmsService/MmsService.apk
/system/priv-app/MtpService/MtpService.apk
/system/priv-app/MusicFX/MusicFX.apk
/system/priv-app/SharedStorageBackup/SharedStorageBackup.apk
/system/priv-app/TagGoogle/TagGoogle.apk
/system/priv-app/Traceur/Traceur.apk
/product/app/DiagnosticsToolPrebuilt/DiagnosticsToolPrebuilt.apk
/product/app/DevicePolicyPrebuilt/DevicePolicyPrebuilt.apk
/product/app/LocationHistoryPrebuilt/LocationHistoryPrebuilt.apk
/product/app/MicropaperPrebuilt/MicropaperPrebuilt.apk
/product/app/PixelWallpapers2021/PixelWallpapers2021.apk
/product/app/SafetyRegulatoryInfo/SafetyRegulatoryInfo.apk
/product/app/SoundAmplifierPrebuilt/SoundAmplifierPrebuilt.apk
/product/app/SSRestartDetector/SSRestartDetector.apk
/product/app/talkback/talkback.apk
/product/app/Videos/Videos.apk
/product/app/VZWAPNLib/VZWAPNLib.apk
/product/app/VoiceAccessPrebuilt/VoiceAccessPrebuilt.apk
/product/app/YouTubeMusicPrebuilt/YouTubeMusicPrebuilt.apk
/product/priv-app/AppDirectedSMSService/AppDirectedSMSService.apk
/product/priv-app/BetterBug/BetterBug.apk
/product/priv-app/CarrierMetrics/CarrierMetrics.apk
/product/priv-app/CarrierWifi/CarrierWifi.apk
/product/priv-app/CbrsNetworkMonitor/CbrsNetworkMonitor.apk
/product/priv-app/ConnMO/ConnMO.apk
/product/priv-app/DCMO/DCMO.apk
/product/priv-app/DiagMon/DiagMon.apk
/product/priv-app/DMService/DMService.apk
/product/priv-app/DreamlinerPrebuilt/DreamlinerPrebuilt.apk
/product/priv-app/DreamlinerUpdater/DreamlinerUpdater.apk
/product/priv-app/EuiccGoogle/EuiccGoogle.apk
/product/priv-app/GoogleOneTimeInitializer/GoogleOneTimeInitializer.apk
/product/priv-app/GoogleRestorePrebuilt/GoogleRestorePrebuilt.apk
/product/priv-app/HelpRtcPrebuilt/HelpRtcPrebuilt.apk
/product/priv-app/HotwordEnrollmentOKGoogleFUSION/HotwordEnrollmentOKGoogleFUSION.apk
/product/priv-app/HotwordEnrollmentXGoogleFUSION/HotwordEnrollmentXGoogleFUSION.apk
/product/priv-app/Iwlan/Iwlan.apk
/product/priv-app/MaestroPrebuilt/MaestroPrebuilt.apk
/product/priv-app/OemDmTrigger/OemDmTrigger.apk
/product/priv-app/OTAConfigNoZeroTouchPrebuilt/OTAConfigNoZeroTouchPrebuilt.apk
/product/priv-app/PartnerSetupPrebuilt/PartnerSetupPrebuilt.apk
/product/priv-app/PixelLiveWallpaperPrebuilt/PixelLiveWallpaperPrebuilt.apk
/product/priv-app/SafetyHubPrebuilt/SafetyHubPrebuilt.apk
/product/priv-app/SCONE/SCONE.apk
/product/priv-app/ScribePrebuilt/ScribePrebuilt.apk
/product/priv-app/SetupWizardPrebuilt/SetupWizardPrebuilt.apk
/product/priv-app/Showcase/Showcase.apk
/product/priv-app/TipsPrebuilt/TipsPrebuilt.apk
/product/priv-app/WellbeingPrebuilt/WellbeingPrebuilt.apk
/product/overlay/CellBroadcastReceiverOverlay/CellBroadcastReceiverOverlay.apk
/product/overlay/CellBroadcastServiceOverlay/CellBroadcastServiceOverlay.apk
/product/overlay/DisplayCutoutAvoidAppsInCutout/AvoidAppsInCutoutOverlay.apk
/product/overlay/DisplayCutoutEmulationCorner/DisplayCutoutEmulationCornerOverlay.apk
/product/overlay/DisplayCutoutEmulationDouble/DisplayCutoutEmulationDoubleOverlay.apk
/product/overlay/DisplayCutoutEmulationHole/DisplayCutoutEmulationHoleOverlay.apk
/product/overlay/DisplayCutoutEmulationTall/DisplayCutoutEmulationTallOverlay.apk
/product/overlay/DisplayCutoutEmulationWaterfall/DisplayCutoutEmulationWaterfallOverlay.apk
/product/overlay/DisplayCutoutNoCutout/NoCutoutOverlay.apk
/product/overlay/FontNotoSerifSource/FontNotoSerifSourceOverlay.apk
/product/overlay/NavigationBarMode3Button/NavigationBarMode3ButtonOverlay.apk
/product/overlay/NavigationBarModeGesturalExtraWideBack/NavigationBarModeGesturalOverlayExtraWideBack.apk
/product/overlay/NavigationBarModeGesturalNarrowBack/NavigationBarModeGesturalOverlayNarrowBack.apk
/product/overlay/NavigationBarModeGesturalWideBack/NavigationBarModeGesturalOverlayWideBack.apk
/product/overlay/OneHandedModeGestural/OneHandedModeGesturalOverlay.apk
/product/overlay/BuiltInPrintService__auto_generated_rro_product.apk
/product/overlay/NfcNci__auto_generated_rro_product.apk
/product/overlay/Traceur__auto_generated_rro_product.apk
/product/overlay/SafetyRegulatoryInfo__auto_generated_rro_product.apk
/product/overlay/ManagedProvisioningPixelOverlay.apk
/product/overlay/SettingsOverlayGLU0G.apk
/product/overlay/PixelSetupWizardOverlay.apk
/product/overlay/PixelSetupWizardOverlay2019.apk
/product/overlay/PixelSetupWizard__auto_generated_rro_product.apk
/product/overlay/SimAppDialog__auto_generated_rro_product.apk
/system_ext/app/EmergencyInfoGoogleNoUi/EmergencyInfoGoogleNoUi.apk
/system_ext/priv-app/EuiccSupportPixel/EuiccSupportPixel.apk
/system_ext/priv-app/EuiccSupportPixelPermissions/EuiccSupportPixelPermissions.apk
/system_ext/priv-app/GoogleFeedback/GoogleFeedback.apk
/system_ext/priv-app/LLKAgent/LLKAgent.apk
/system_ext/priv-app/MyVerizonServices/MyVerizonServices.apk
/system_ext/priv-app/OBDM_Permissions/OBDM_Permissions.apk
/system_ext/priv-app/obdm_stub/obdm_stub.apk
/system_ext/priv-app/PixelNfc/PixelNfc.apk
/system_ext/priv-app/PixelSetupWizard/PixelSetupWizard.apk
/system_ext/priv-app/QuickAccessWallet/QuickAccessWallet.apk
/system_ext/priv-app/ShannonRcs/ShannonRcs.apk
/system_ext/priv-app/StorageManagerGoogle/StorageManagerGoogle.apk
/system_ext/priv-app/UwbService/UwbService.apk
/system_ext/priv-app/WallpaperPickerGoogleRelease/WallpaperPickerGoogleRelease.apk
/vendor/overlay/NfcNci__auto_generated_rro_vendor.apk
/vendor/overlay/Traceur__auto_generated_rro_vendor.apk

DanielF50 said:
I've been using this for a couple of days now & seems to be working brilliantly, thanks @foobar66!
I have highly modified the package to fit my usage - I have removed: adblocking (as I use adaway), your personal settings, the charge limit, some binaries & I have unfrozen some system apks, etc.
The module still is freezing 37 system apks & is also still running: block dev tweaks, ext4 tweaks, kernel tweaks, scheduling tweaks, swap off script, no log script, stop daemon script & swapiness script.
Everything seems to be running very well! I especially love the green "[email protected]" instead of "raven" when using shell
Click to expand...
Click to collapse
Bye the way, if you do:
Code:
> adb shell
$ su
# gset mysettings
You will have a txt file /sdcard/mysettings ... if reflects your settings in {global/system/secure} namespace. If you ever need to reinstall your pone you can just command line 'source' that file to restore your settings.
Code:
> adb shell
$ su
# source /sdcard/mysettings
But please note that not all settings form the Settings app are stored in those namespaces! So it's not a 100% restore.

And ... bye the way ... you can check log files from the 2 main Magisk scripts (post-fs-data.sh and service.sh):
Code:
> adb shell
$ su
# data /data/googlewiz/*
The log files for the /etc/init.d/ scripts:
Code:
# cat /data/LS00*
And the log files for the /etc/services.d/ scripts:
Code:
# cat /data/LS99*

Wait, EXT4 tweaks? I thought we only had F2FS?

Nope ... mostly system/ro file systems on ext4/
I have not checked lately how relevant the ext4 tweaks still are ... come from a long history since the Galaxy S4 (lol).
Anyway ...
Code:
# ls -l /sys/fs/ext4/
# ls -l /sys/fs/f2fs/
F2FS for /data (of couse) since there is writing there.
And check /etc/vendor/fstab.*
Code:
system /system ext4 ro,barrier=1 wait,slotselect,avb=vbmeta_system,logical,first_st
age_mount,readahead_size_kb=128
system_ext /system_ext ext4 ro,barrier=1 wait,slotselect,avb=vbmeta_system,logical,first_st
age_mount
product /product ext4 ro,barrier=1 wait,slotselect,avb=vbmeta_system,logical,first_st
age_mount
vendor /vendor ext4 ro,barrier=1 wait,slotselect,avb=vbmeta_vendor,logical,first_st
age_mount
vendor_dlkm /vendor_dlkm ext4 ro,barrier=1 wait,slotselect,avb=vbmeta,logical,first_stage_mou
nt
/dev/block/platform/14700000.ufs/by-name/boot /boot emmc defaults slotselect,avb=boot,first_stage_mount
/dev/block/platform/14700000.ufs/by-name/efs /mnt/vendor/efs ext4 defaults,noatime,rw wait,check,formattable
/dev/block/platform/14700000.ufs/by-name/efs_backup /mnt/vendor/efs_backup ext4 defaults,noatime,rw wait,check,formattable
/dev/block/platform/14700000.ufs/by-name/modem_userdata /mnt/vendor/modem_userdata ext4 defaults,noatime,rw wait,check,formattable
/dev/block/platform/14700000.ufs/by-name/modem /mnt/vendor/modem_img ext4 ro,defaults,context=u:object_r:modem_img_file:s0,barrier=1 wait,slotsele
ct
/dev/block/platform/14700000.ufs/by-name/misc /misc emmc defaults wait
/dev/block/platform/14700000.ufs/by-name/metadata /metadata ext4 noatime,nosuid,nodev,data=journal,commit=1 wait,check,formattable,first_
stage_mount,metadata_csum
/dev/block/platform/14700000.ufs/by-name/pvmfw /pvmfw emmc defaults wait,slotselect,avb=pvmfw,first_stage_mount
/dev/block/platform/14700000.ufs/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=noba
rrier,inlinecrypt,compress_extension=apk,compress_extension=apex,compress_extension=so,atgc,checkpoint_merge latemount,wait,check,quota,formattable,sysfs_path=/dev/s
ys/block/bootdevice,checkpoint=fs,reservedsize=128M,fileencryption=::inlinecrypt_optimized+wrappedkey_v0,metadata_encryption=:wrappedkey_v0,keydirectory=/metadata/vold/
metadata_encryption,fscompress,readahead_size_kb=128
/dev/block/platform/14700000.ufs/by-name/vbmeta /vbmeta emmc defaults slotselect,first_stage_mount
/dev/block/zram0 none swap defaults zramsize=3221225472,max_comp_streams=8,zram_backin
gdev_size=512M
/devices/platform/11110000.usb* auto vfat defaults voldmanaged=usb:auto

foobar66 said:
Simple bash prompt ;-);-)
Actually, the hosts file in the magisk module is an (old) version of the AdAway one ...
Click to expand...
Click to collapse
Ah yes, the app just gets new updated everyday so I use that to keep up-to-date
foobar66 said:
Bye the way, if you do:
But please note that not all settings form the Settings app are stored in those namespaces! So it's not a 100% restore.
Click to expand...
Click to collapse
Great info, thanks!
foobar66 said:
And ... bye the way ... you can check log files from the 2 main Magisk scripts (post-fs-data.sh and service.sh):
Click to expand...
Click to collapse
Yes, I used these commands to confirm which parts I was running

foobar66 said:
Hmmm ... could either be the (a) force dark setting or (b) the gesture pill removal (overlay).
Try the following:
Code:
> adb shell
$ su
# cmd overlay disable com.android.shell:NavBarFrameHeightOverlay
Then check SwiftKey again. Please report if OK or not.
Click to expand...
Click to collapse
Hello.
I'll try this tomorrow.
Should googlewiz be activated when trying?

V-Ripper said:
Hello.
I'll try this tomorrow.
Should googlewiz be activated when trying?
Click to expand...
Click to collapse
No because you are just disabling an overlay which is already there.

just a suggestion/feedback as someone who has self created modules that do some of the same things, plus over 30 years in IT:
way too many things in ONE script...personally i separate mine out, not least because you can identify points of failure far easier....
i know it seems a good idea to "everything at once", but it rarely is, and its an even worse idea when you choose to share it, its like trying to herd cats when trying to sort out user issues....
also golden rule of android #1:
never apply something which one person says works 100% and magically for them to your own device
case in point ive just left my S20+ 5G for pixel life again, and previously i had a debloat list (for use with a friends officially listed debloat magisk module) that had 169 package son it. For years i declined to give anyone my personal debloat list, because even with the disclaimer "this works for me, as i dont use any Samsung apps and replace them with Google ones, and never use device function you might" i just know some kiddie will blanket use it and then come crying when it all goes wrong, and i personally dont need that level of drama in my life. I did give my list to the 2 devs i respect and know will treat it carefully, but i would never give it to an end user...i wont even tell end users which packages i hide in magisk or other apps like Hide My Applist, because people just wont make the mental leap to consider things rationally and think for even 30 seconds, "this may be personal to him and wont work for me". Sad but true

Related

[REF] Samsung's patches to Android's Linux kernel

Hi all,
I've created a patchset which contains all diffs between:
- kernel/common from current AOSP Git branch android-2.6.29
- GalaxyS/linux-2.6.29 from GT-i9000_OpenSource.zip/GalaxyS_Kernel.tar.gz, dated July 12, 2010, latest publicly available AFAIK.
For a complete HOWTO, see bottom of this post.
This can be very useful, as it shows exactly what Samsung changed or added, including some very helpful comments.
I'm sure this will reveal a boatload of interesting info, I will report here what I've found so far as fast as I can, please join in the fray!
(Note: I've found it very nice to use Midnight Commander under Linux: it allows you to browse patches as if they were files on a virtual filesystem (patchfs).)
Good Luck!
The patch files:
Samsung's GT-I9000 patches to Android's Linux kernel version 2.6.29 for Eclair.
Zip containing single patch file: link
Zip containing patches split into individual files: link
Hopefully all info that comes out of this can soon be Wikified.
UPDATE:
Supercurio has pointed out what appears to be the reference Samsung Git repository at git.kernel.org: link.
TMC_Sherpa has been working on a very interesting project here on XDA, comparing sources for different SGS models: link
Thanks for the information!
Here come the updates:
Samsung appear to have borrowed quite a bit of code from Simtec Electronics (an embedded systems supplier) and even from the OpenMoko project
They also used a (possibly customized) external tree from the Video4Linux project. I'll try to merge that into my tree, find the exact point in history for their merge. This will reduce the patch size somewhat.
A selection of files that may be of interest:
# Default kernel configs. There are quite a few board revisions out there, kernel hackers and ROM chefs, please take note!
# The .config used in default build is aries_rev03_defconfig with a custom initramfs, so you need to point CONFIG_INITRAMFS_SOURCE to the place where you store yours.
GalaxyS/linux-2.6.29/arch/arm/configs/aries_*
GalaxyS/linux-2.6.29/arch/arm/configs/jupiter_*
# Hardware setup and GPIO configuration (including GPS). Yay!
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/include/mach/gpio-core.h
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/include/mach/gpio.h
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/include/mach/gpio-jupiter.h
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/include/mach/gpio-p1p2.h
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/mach-jupiter-gps.c
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/mach-jupiter.c
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/jupiter-rfkill.c
# Device memory maps
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/include/mach/map.h
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/include/mach/memory.h
# Definitions used with the param.lfs file system, including the kernel boot commandline.
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/include/mach/param.h
# Jack and device detection driver
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/sec_jack.c
GalaxyS/linux-2.6.29/arch/arm/mach-s5pc110/include/mach/sec_jack.h
# Some interesting customizations...
GalaxyS/linux-2.6.29/drivers/cpufreq
GalaxyS/linux-2.6.29/kernel/power/main.c
# Another 'TRS' headset jack detector driver. Is this actually used?
GalaxyS/linux-2.6.29/drivers/input/trs_connector.c
# Quantum, Melfas, S3C (dev board?) touchscreen drivers and firmware blobs, new flip touch driver
GalaxyS/linux-2.6.29/drivers/input/touchscreen
# S3C, Melfas, Cypress touch keypad drivers and firmware blobs
GalaxyS/linux-2.6.29/drivers/input/keyboard
# Camera driver
GalaxyS/linux-2.6.29/drivers/media/video/samsung/fimc
# (HW accelerated?) JPEG driver
GalaxyS/linux-2.6.29/drivers/media/video/samsung/jpeg_v2
# (HW accelerated) AV codecs, with 'firmwares' (the only binary blobs (wrapped in byte arrays) I've been able to find in this kernel. Not bad, Samsung!)
GalaxyS/linux-2.6.29/drivers/media/video/samsung/mfc40
GalaxyS/linux-2.6.29/drivers/media/video/samsung/mfc50
# Image rotator driver
GalaxyS/linux-2.6.29/drivers/media/video/samsung/rotator
# Transport Stream Interface (for digital TV?)
GalaxyS/linux-2.6.29/drivers/media/video/samsung/tsi
# TV-out driver
GalaxyS/linux-2.6.29/drivers/media/video/samsung/tv20_ap
# More weird tweaks, completely reworked resume behaviour...
GalaxyS/linux-2.6.29/drivers/mmc
# Added battery measurement driver for S5PC110
GalaxyS/linux-2.6.29/kernel/drivers/power
# Added Maxim 8698 and 8998 voltage regulator drivers
GalaxyS/linux-2.6.29/drivers/regulator/
# Added accelerometer, compass and proximity sensor drivers
GalaxyS/linux-2.6.29/drivers/sensor
# Added serial port (UART) driver for Samsung SoCs
GalaxyS/linux-2.6.29/drivers/serial
# Android and Samsung have different ideas about this...
GalaxyS/linux-2.6.29/drivers/staging/android/lowmemorykiller.c
# Added Flash drivers: TinyFSR, Flex-OneNAND and LinuStoreIII
# This could be interesting to study in relation to RFS I/O bottleneck woes.
GalaxyS/linux-2.6.29/drivers/tfsr
# Samsung custom USB setup, includes VendorIDs and ProductIDs.
GalaxyS/linux-2.6.29/drivers/usb/gadget
# USB OTG driver. Does this actually work on the SGS?
GalaxyS/linux-2.6.29/drivers/usb/host
# Samsung LCD panel drivers (probably not interesting for SGS) but there is the mDNIe driver in there somewhere... Nice!
GalaxyS/linux-2.6.29/drivers/video/samsung
# SGS I9000 boot logos. These are among the things that make the patch so large.
GalaxyS/linux-2.6.29/drivers/video/samsung/logo_rgb24_wvga_landscape.h
# This one is disabled entirely...
GalaxyS/linux-2.6.29/drivers/video/samsung/logo_rgb24_wvga_portrait.h
# Obviously, some kernel module needs do_sync() . Hmm... RFS maybe? Why?
GalaxyS/linux-2.6.29/fs/sync.c
# Customization to FAT FS, comment marked: /* 2009-06-25/ Kyo.oh/ workaround code for hiding /sdcard/sd/
# Lag fixers, ROM chefs: take note!
GalaxyS/linux-2.6.29/fs/fat/namei_vfat.c
# Changes to YAFFS2. Hmm... Why don't they actually use the YAFFS2 driver?
GalaxyS/linux-2.6.29/fs/yaffs2
# Maybe this can help with deciphering flash setup?
GalaxyS/linux-2.6.29/include/linux/fsr_if.h
# Kernel log via USB
GalaxyS/linux-2.6.29/kernel/printk.c
# GAForensic? What's that?
GalaxyS/linux-2.6.29/kernel/sched.c
# Small Samsung(/AOSP?) changes, experimental drivers for several Wolfson audio chips, including the WM8994. (This is what I am working on mainly ATM.)
GalaxyS/linux-2.6.29/sound
HOWTO create your own (Linux only for the moment, sorry ).
This assumes you have the following tools available on your system: (ba)sh, diff, file, filterdiff (from patchutils package), find, fromdos (from frotodos package) git (from any of the Git packages), grep, gzip, splitdiff (from patchutils package), tar, unzip, zip (optional), and a web browser ( ).
Code:
# Creating a patchset for Samsung's GT-I9000 changes
# to the Android kernel
# Change to Android build dir if needed
# cd android
# Download SGS kernel source
# % Browse to http://opensource.samsung.com/
# % Click on 'Mobile' in top menubar
# % Choose file to download
# % Accept license
# [While the download is churning away...]
# Create dir which will hold the AOSP kernel Git repositories
mkdir kernel
# Clone the AOSP common kernel tree, android-2.6.29 (Eclair) branch
git clone -b android-2.6.29 git://android.git.kernel.org/kernel/common.git kernel/common
# Unpack source zip and kernel
unzip GT-I9000_OpenSource.zip
tar vxzf GalaxyS_Kernel.tar.gz
# Some files in Samsung's source have MS-DOS style, Unix style, and
# even mixed MS-DOS/Unix style line endings. Convert these to Unix style.
# Be careful not to touch the module binaries in GalaxyS/modules
# (unless you don't mind recompiling them.)
# This may take a while...
find GalaxyS -type f | xargs -n 1 file | LANG=C grep 'terminators$' | \
while read LINE; do FILE=${LINE%%:*}; fromdos -p "$FILE"; done
# Create initial raw patchset
# This may take a while...
diff -uprN kernel/common GalaxyS/linux-2.6.29 > android-2.6.29_GT-I9000.patch-raw
# Clean up unneeded patches
filterdiff -x '*/.git*' -x '*/.mailmap' -x '*/Module.symvers' android-2.6.29_GT-I9000.patch-raw > android-2.6.29_GT-I9000.patch
# Split the patch into multiple files
mkdir android-2.6.29_GT-I9000_patches
cd android-2.6.29_GT-I9000_patches
# splitdiff uses the dirname of the patch as directory to store files(!)
# so symlink it in here temporarily.
ln -s ../android-2.6.29_GT-I9000.patch
splitdiff -a -d android-2.6.29_GT-I9000.patch
rm android-2.6.29_GT-I9000.patch
cd ..
# Gzip the patch
gzip android-2.6.29_GT-I9000.patch
# Tar up the patchset
tar cvzf android-2.6.29_GT-I9000_patches.tar.gz android-2.6.29_GT-I9000_patches/
# Optionally, zip it up.
# zip android-2.6.29_GT-I9000_patches.zip android-2.6.29_GT-I9000_patches/*
# Done!
EDIT: Added TRS connector detection driver, touchscreen and touch keypad drivers
I would have thought this has been done already. xD
Extremely helpful and insightful, thanks mate =)
Stefanauss said:
I would have thought this has been done already. xD
Extremely helpful and insightful, thanks mate =)
Click to expand...
Click to collapse
Of course I searched, but couldn't find anyone who has done this and actually published the findings, that's why this thread exists
Bump, updates and cleanup.
Great stuff! bumping this thread so more developers can see it
Stickied. Thanks for the efforts miki, the mods agreed that it looks great just the way it is, and we appreciate that you're keeping it updated.
tv-out drivers, now we only need a adapter
micro usb->hdmi cables are only a few dollar
KeesKaas said:
tv-out drivers, now we only need a adapter
micro usb->hdmi cables are only a few dollar
Click to expand...
Click to collapse
The tv-out is for the headset jack. Although I'm sure it would be possible to modify the code, if it doesn't already work.
sirphunkee said:
Stickied. Thanks for the efforts miki, the mods agreed that it looks great just the way it is, and we appreciate that you're keeping it updated.
Click to expand...
Click to collapse
Thanks! I'll do my best to update it. I hope the kernel hackers and ROM chefs out there have good use for it.
I'm sorry,but if this meaning that possible to port an official AOSP 2.6.34/35 kernel to SGS just for AOSP build or CM6?
zygame said:
I'm sorry,but if this meaning that possible to port an official AOSP 2.6.34/35 kernel to SGS just for AOSP build or CM6?
Click to expand...
Click to collapse
Sure! But I think you will need quite a lot of experience with doing complicated Git rebase merges. The difference in kernel versions is quite big (you did bring your seven mile boots did you?) but nothing is impossible, ask Linus
I find Samsung's changes quite clean (not too many arbitrary tweaks scattered all over the place), so it is doable. I've seen many miracles worked by the XDA people, so I would say: go for it!
Another fly in the ointment is the drivers/media/video stuff, which comes from a snapshot of the Video4Linux project. I'll see if I can find a nice point in (Git repo) history to stick that onto the AOSP tree (or separate out Samsung's patches to that entirely) and redo the patchset.
Update: added battery measurement driver, Maxim voltage regulator drivers.
Update: added sensors: accelerometer, compass and proximity sensor.
Update: added Flash drivers: TinyFSR, Flex-OneNAND and LinuStoreIII.
Update: added USB Gadget driver.
Update: added display panel (including mDNIe) drivers.
Update: add FAT FS (hide /sdcard/sd) mod.
This looks like a beginning of something BIG
miki4242 said:
Sure! But I think you will need quite a lot of experience with doing complicated Git rebase merges. The difference in kernel versions is quite big (you did bring your seven mile boots did you?) but nothing is impossible, ask Linus
I find Samsung's changes quite clean (not too many arbitrary tweaks scattered all over the place), so it is doable. I've seen many miracles worked by the XDA people, so I would say: go for it!
Another fly in the ointment is the drivers/media/video stuff, which comes from a snapshot of the Video4Linux project. I'll see if I can find a nice point in (Git repo) history to stick that onto the AOSP tree (or separate out Samsung's patches to that entirely) and redo the patchset.
Click to expand...
Click to collapse
If we have the kernel running with samsung patches it should be not that much work to get a rom running. But we really should keep contact with the cm guys or the work will be done twice...
Phlogiston said:
If we have the kernel running with samsung patches it should be not that much work to get a rom running. But we really should keep contact with the cm guys or the work will be done twice...
Click to expand...
Click to collapse
Agreed!
There is some interesting stuff here:
http://github.com/wesgarner/android_device_samsung_vibrant forked from:
http://github.com/CyanogenMod/android_device_samsung_vibrant
Anyone tried to let run cm on top of the stock .29 kernel? Any reason this would totally fail?
PS: Maybe we should create a new thread about kernel hacking for cm here? Who would jump in?
miki4242 said:
Agreed!
Click to expand...
Click to collapse
Agreed again!
zygame said:
if this meaning that possible to port an official AOSP 2.6.34/35 kernel to SGS just for AOSP build or CM6?
Click to expand...
Click to collapse
That's what I'm wondering - I've always thought that it really shouldn't be that difficult (conceptually speaking) to get AOSP running given that we have the source for Samsung's modifications.
I'm not experienced with Android or Linux development myself, but I hope someone can do it - would love to see AOSP running, because it would give me confidence that we don't need to rely on Samsung for future updates. There was some previous received wisdom that SGS ROMs had to come from Samsung because of "encrypted drivers", but as pointed out here, there's only two kernel modules that are even binary.
(The whole "encrypted drivers" thing never made sense to me.. it would be way against the GPL, and CPUs don't run encrypted code, so it would have to be decrypted before use anyway? I've always been confident that someone was confusing "precompiled drivers" with "encrypted drivers" because they weren't human-readable.)
It would be neat to compile linux-zen.git with these patches for a try (as zen now includes long due linux latency patches which might just fix some of the lag issues on the sgs - even with ext4/what-not)
I'm wondering if it would work however, it seems to me Samsung hacked up the kernel a lot and forgot proper locking, memory allocs. Changing most significant options in 2.6.29 = kernel panic on boot... like SLUB or preemptive kernel..
Battery current support?
Nice work there. I just wonder whether there is any manner to measure the current drawn at a specific moment from the battery (in other androids it is possible and there is even a widget for that).
This would allow us to optimize battery usage by identifying app increasing the consumption.
Just check here: http://forum.xda-developers.com/showthread.php?t=723217&page=8

[ROM][Discontinued] ArchiDroid [CM_ROM][Linaro 4.7][Flexible] [V2.5.2] [01/08/14]

{
"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 2.X <-
A Port of JustArchis Rom to our S1
Changelog
ArchiDroid 2.5.2
- Added additional r_submix audio module, idea thanks to @nelsonw # This should help with chromecast
- Updated PA GAPPS to 25 July
- Updated Nova Launcher to 3.0.2
- Updated Google Keyboard
- Updated XPrivacy to 2.2.2
- Updated Onandroid to 9.51
- Updated cm and ArchDroid sources (31.07.14)
Download
All Files Mediafire
Stable: ArchiDroid 2.4.5 Mediafire
Experimental: ArchiDroid 2.5.2 Dev-Host, Mirror: Mediafire
Remember that you don't need anything else to flash. Google Apps are included already.
Known Issues
All known and unknown Cyanogen Rom bugs (if any)
INSTALLATION INSTRUCTIONS
- Download the latest build of ArchiDroid ROM
1.- Wipe data / factory reset (mandatory if you coming from STOCK OR 4.2.X version or any other ROM)
2.- Install the Main ROM via Aroma installer, make your choices and lean back.
3.- Reboot
Attention: first boot will last a couple of minutes, at least almost 5 minutes or a few more. So after flashing take a rest and drink a coffee or a beer !
And after rom has booted up, led it settle a bit, till all apps and settings are initialised!
UPDATE INSTRUCTIONS
- Download the latest build of ArchiDroid ROM
- Take a nandroid backup
- Flash ROM using recovery and aroma installer
- Reboot
- Enjoy!
Known Bugs
-tethering is not working proper fixed in v2.5.0
In Aroma Installer you can select for example:
- 3 different Kernels: Stock, Neo and Mackay
- different Launchers
- different Keyboards
- different Bootanimations
- many additional apps
- to add nav bar
- to select: ro.config.low_ram=true or ro.config.low_ram=false (transparent statusbar)
and many other things
Follow ArchiDroid On XDA!
Write A Review!
Rate This Thread!
Buy JustArchi a Beer!
Like ArchiDroid On Facebook!
Hit Thanks!
XDA:DevDB Information
[ROM] [4.4.4. - KTU84P] [OmniROM] [Linaro 4.7] [Experimental] [Flexible] [Excellent] [01/08/14] ArchiDroid V2.5.2 | Power In Your Hands, a ROM for the Samsung Galaxy S1 I9000
This Rom is an official kanging of i9300 thread by @JustArchi lead developer and author of ArchiDroid ®. So all credits and thanks goes to JustArchi!!
Contributors
rodman01
ROM OS Version: 4.4.x KitKat
ROM Kernel: Linux 3.0.x
Based On: CyanogenROM / ArchiDroid / SelfKANG
Version Information
Status: Experimental 4.4.4 v
Created 2014-04-23
Last Updated 2014-08-01
[SIZE="+3"]ArchiDroid's FAQ / Q&A Section for i9300[/SIZE]​[SIZE="+1"]There is a special thread in the SIII section with and for FAQs. If you are interested in, I am sure there are good infos about the rom, for everybody and also related to our S1.[/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
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:
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.
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:
From debian site:
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
First of all many thanks to JustArchi, who gave me the permission to port this rom
and helped me not only one time to get all things to work :good:!!!
Many many thanks JustArchi for the help and support!​
ArchiDroid Core
- AROMA Installer
- AROMA Filemanager
- Didhiy Kernel
- Neo 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
- Spirit 2
- 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
I'm very happy to see ArchiDroid running also on Galaxy S .
Let me know @rodman01 if you need any help or a helpful hand, and watch my github for ArchiDroid updates .
Thanks, yes I am happy too, that I got it to work finally (kernel choice is working, but selectable modes I skipped for the moment)...your help to get this all was highly appreciated and needed and I am sure I will come back again with questions . And yes sure, I will watch your github and when I as soon as I have time, I will create branch on my repo with the changes I made :good:.
rodman01 said:
Thanks, yes I am happy too, that I got it to work finally (kernel choice is working, but selectable modes I skipped for the moment)...your help to get this all was highly appreciated and needed and I am sure I will come back again with questions . And yes sure, I will watch your github and when I as soon as I have time, I will create branch on my repo with the changes I made :good:.
Click to expand...
Click to collapse
If I can suggest anything...
Make sure that my backend works properly on SGS, you can check logs in /data/media/0/ArchiDroid, and use ArchiDroid app to check if everything works properly (haveged, dnsmasq, dnsproxy2, pixelserv etc. should be ON). This give you a few ArchiDroid-unique features described in development thread. I used advanced SGS3-optimizations, so I'm wondering if you can launch it on SGS .
Apart from that my github is a real mine of knowledge, so if you dig deep enough you should get answers to everything .
And of course, I'm very glad to see that you made it!
Yes sure you can and I will check it...to be honest haven't realized this and afraid that this won't work , but will see and probably can fix this in one of the next versions (if possible in general for and with the S1?).
rodman01 said:
Yes sure you can and I will check it...to be honest haven't realized this and afraid that this won't work , but will see and probably can fix this in one of the next versions (if possible in general for and with the S1?).
Click to expand...
Click to collapse
I'll need to recompile these binaries for generic ARM target instead of SGS3 then, just watch my github and cherry-pick proper commit when it arrives .
haveged, dnsmasq, dnsproxy2, pixelserv are on and it seems that they are running. In init.log there are a few lines mentioning for example: no such file or directory. If you want and if helpfull I can pass you the logs you want.
rodman01 said:
haveged, dnsmasq, dnsproxy2, pixelserv are on and it seems that they are running. In init.log there are a few lines mentioning for example: no such file or directory. If you want and if helpfull I can pass you the logs you want.
Click to expand...
Click to collapse
If my binaries are running properly then it's great, you should have working adblock and entropy >= 1024.
Send me RunOnce and Init logs .
Yes sure no problem. Here are the log files attached....
rodman01 said:
Yes sure no problem. Here are the log files attached....
Click to expand...
Click to collapse
Wed Apr 23 00:17:20 CEST 2014
ArchiDroid 2.4.3 EXPERIMENTAL [KVT49L]
Linux localhost 3.0.101-KK44-x-aries-cma #1 PREEMPT Tue Apr 1 07:47:49 WIB 2014 armv7l GNU/Linux
INFO: ArchiDroid_RunOnce executed!
INFO: I'm a child!
WARNING: Forcing Install mode, even if Update mode found!
INFO: Install mode detected, I'm either after full wipe or forced to think so. Turning on ADMANY and DBUPDATE
I found ./de.robv.android.xposed.installer which need merging (data)
I found ./ds.cpuoverlay which need merging (data)
I found ./com.android.settings which need merging (data)
I found ./eu.chainfire.supersu which need merging (data)
I found ./org.omnirom.device which need merging (data)
INFO: I found 5 folders which need merging (data)
INFO: boot-dmesg NOT detected, turning off logcat banner
INFO: RunOnce Semaphore started
INFO: Android created settings.db for me, how cute! Performing DBUPDATE
INFO: Applying AOSP-specific DBUPDATE
INFO: Finished DBUPDATE
INFO: I'm currently merging com.android.settings, called by ADMANY
INFO: Done! 4 to go
INFO: I'm currently merging de.robv.android.xposed.installer, called by ADMANY
INFO: Done! 3 to go
INFO: I'm currently merging ds.cpuoverlay, called by ADMANY
INFO: Done! 2 to go
INFO: I'm currently merging eu.chainfire.supersu, called by ADMANY
INFO: Done! 1 to go
INFO: I'm currently merging org.omnirom.device, called by ADMANY
INFO: Done! 0 to go
INFO: I looped 91 times and didn't have to exit from infinite loop, that's nice (RunOnce Semaphore)
INFO: Calling Post-Installation functions (if any)
INFO: Could not detect RunOnce in init.d after cleanup, that's good
INFO: Reboot required, I'm rebooting the device right now
INFO: ArchiDroid RunOnce finished
Wed Apr 23 00:21:17 CEST 2014
Click to expand...
Click to collapse
RunOnce works great!
However Init not so .
HAVEGED: ArchiDroid entropy set to: 1024. Available entropy can't get below this level
HAVEGED: Current available entropy: 183
Click to expand...
Click to collapse
Looks like haveged is not working at all.
Apart from that, one more issue found:
/system/xbin/ARCHIDROID_INIT[438]: can't create /dev/archidroid/cron/events/internal/MONITOR_START_HAVEGED: No such file or directory
Click to expand...
Click to collapse
Is /dev directory available in your system?
Code:
ADPROC="/dev/archidroid"
mkdir -p "$ADPROC"
Because this piece of code should create archidroid dir in /dev.
---------- Post added at 10:37 PM ---------- Previous post was at 10:29 PM ----------
Also, check Cron.log in ArchiDroid dir (/data/media/0/ArchiDroid) if it's not infinite-looping due to that... .
JustArchi said:
Is /dev directory available in your system?
Code:
ADPROC="/dev/archidroid"
mkdir -p "$ADPROC"
Because this piece of code should create archidroid dir in /dev.
Click to expand...
Click to collapse
Yes the folder is available, but almost all files have 0.0 b size, could it be that sym links and/or missing or wrong permissions are the reason?
rodman01 said:
Yes the folder is available, but almost all files have 0.0 b size, could it be that sym links and/or missing or wrong permissions are the reason?
Click to expand...
Click to collapse
Check if you can create a folder in it as root: mkdir /dev/whatever
Perhaps I'll need to move my ADPROC somewhere else, as your device may not support folders in /dev.
Also, I added a safety check for that .
https://github.com/JustArchi/ArchiDroid/commit/b8cae2000d8802e7f9e270eb43b3c621895d9340
JustArchi said:
Check if you can create a folder in it as root: mkdir /dev/whatever
Perhaps I'll need to move my ADPROC somewhere else, as your device may not support folders in /dev.
Also, I added a safety check for that .
https://github.com/JustArchi/ArchiDroid/commit/b8cae2000d8802e7f9e270eb43b3c621895d9340
Click to expand...
Click to collapse
Yes you are right, seems that creating folders in /dev is not possible.
rodman01 said:
Yes you are right, seems that creating folders in /dev is not possible.
Click to expand...
Click to collapse
Try as root, as user you'll always get permission denied .
ok sorry, but no folder wasn't created, although terminal has asked for su permissions and had been given. But no new folder to see.
rodman01 said:
ok sorry, but no folder wasn't created, although terminal has asked for su permissions and had been given. But no new folder to see.
Click to expand...
Click to collapse
I'll need to add some more tunables to properly support your device. As for now you should sync with my work (mostly https://github.com/JustArchi/ArchiDroid/commit/b8cae2000d8802e7f9e270eb43b3c621895d9340) and ignore those errors .
Thanks for your help and as for now :good:...will sync it and try a new build, think tomorrow.

[TOOL][v1.2.0] Batch Deodexing Tools using Android Device

[Tool/Utility][v1.2.0]Apktool Mobile Batch Deodexing - Run Batch Deodex Jobs Using Your Android Device!
*** Disclamer
Your device is shipped without root for a reason. Modifying system files that are normally off limits carries the risk of being caught in a situation where you will be unable to fix the damage unless you plan ahead.
It is wise to not proceed unless you have a means of restoring your device in the event of a catastrophic event and that you are confident in your ability to restore any issues you create.
I am not and will not be responsible for any harm that may come to your device or to your sanity as a result of **** up.
For more on what's expected, new members should help themselves to the video below.
Description
A toolset for performing batch deodexing straight from your device. Comes installable as a flashable zip and can easily be modified by advanced users to suit their needs. Just drop all your odex and corresponding archives into a folder and run one simple terminal command (or use Linux Script Handler within your File Manager) and deodezed versions will be outputted to a separate folder.
I wrote this because Apktool Mobile lacks any batch features.
COMPATIBLE FOR ALL ANDROID DEVICES RUNNING ICS OR LATER!
Project is just listed here because I had to choose a location specific to a certain device when creating the project. Mods, feel free to move if desired.
Learn more about deodexing and the differences between an odexed system and deodexed system
Installed Files/Directories:
/sdcard/bdt - Directory with our smali and baksmali jars as well as directories to place batch jobs in as well as output folders. There is a readme in each folder describing it's function.
/data/misc/bdt - Directory which contains the Java Runtime Environment as well as all dependent libraries.
/system/bin - Two scripts are installed here. The first is "bdt" and contains all path variables in case you need to edit a path (ex. you download newer smali/baksmali versions to use, or change the name of the bdt directory on your /sdcard). This also contains wrapper functions athat do all the work. The second file is "batch-deodex" and once you have placed your odex (and corresponding apk/jar) files into the /sdcard/bdt/files-to-deodex folder open a command prompt and run this script to deodex all the odex files into dex files and then insert into the corresponding archive.
{
"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"
}
Installation Instructions and Usage
Download the latest version from one of the hosts in the downloads section and simply flash it in recovery. You could always manually extract the contents but then you'd also have to chmod quite a bit to set the permissions.
To uninstall, flash the uninstall zip that's also in the downloads section, or manually delete /system/bin/bdt, /system/bin/batch-deodex, /data/misc/bdt folder, and /sdcard/bdt folder.
Batch baksmali/smali
To run a batch decompile, move your odex (or deodexed apk or jars) files into /sdcard/bdt/files-to-deodex and fire a command prompt up and type:
Code:
su
. /system/bin/bdt # Import paths and functions
batch-baksmali
The source folders will be outputted to /sdcard/bdt/smali-source.
To compile a batch of deodexed source folders we just do essentially the same thing. Open up a command prompt and type:
Code:
su
. /system/bin/bdt
bbdth-smali
Doing so will create a dex file for each source folder and this will be outputted to /sdcard/bdt/dex-out.
Batch deodexing
Performing a batch deodex works much the same way. Copy all the odex files and their corresponding apk or jar into /sdcard/bdt/files-to-deodex then open a command prompt up and type:
Code:
su
# no need to import anything for this
batch-deodex
Just that easy. The script may take a while depending on how many files you're deodexing just as with the other scripts so if running a lot be patient.
The deodex script moves all odex files to ../files-to-baksmali and then calls batch-backsmali. Then the script calls batch-smali to create the dex files. After that's done it enumerates through the dex files and finds each one's corresponding archive and once it does it uses the
Code:
zip -jq {archive} classes.dex
to insert classes.dex into the archive without extracting anything or changing any compression settings, etc.
Once complete you'll have your deodexed archives and the script cleans up all other directories. The other two scripts don't do this.
Known Issues
-- Discovered that some ROMs are telling me that my scripts don't exists when they very well do, so of you are seeing a "sh: {scriptname}: The file or directory cannot be found" then just run by using the Linux Script Handler within your File Manager until I figure this out or until the ROM dev gets in touch.
-- I just discovered this error while preparing these test screenshots. It didn't effect the deodexing process though but I'll look into fixing this tomorrow. UPDATE: Haven't looked into this yet as it has no effect on the outcome. I think it's occurring because on the final loop when running a batch and when all is finished it still runs one last time, thinking it's looking for a jar file. Once I get these other minor details done I'll publish on github. Actually there is published code there now, but ir needs to be removed and updated.
Downloads
Batch Deodex Tools 1.2.0 - Box
Batch Deodex Tools 1.2.0 - Dropbox
Uninstall ZIP for 1.1.0
Changelog
Code:
1.2.0 Released: -- 08/21/14
-- fixed an issue causing the /sdcard/BDT folder to not be properly flashed
-- some editing made to the scripts in preparation for uploading to github
1.1.0 Released: -- 06/26/14
-- turned into a stand alone project
-- optimized the scripts
-- flashable in recovery
-- also created flashable zip to uninstall
1.0.1 Released: -- 06/21/14
-- initial release
TO DO
-- Migrate the JRE off /data/... to prepare for Android L. Was going to move to /data/app-lib where it probably should have been to begin but no point now, so will remain in /data/misc/bdt for the time. Rwas more in the Addendum in second post
-- Add Box, Dropbop, and Mega hosts as well. Well having just a Drive and Box host should accommodate the demand. If the demand increases I'll adjust accordingly.
-- Publish code to github.
-- Scratched making this into an APK... Having it as is makes it easier for advanced users to make modifications (use custom files, etc) on the fly
Thanks To/Credits
Code:
* Brut.all for giving us apktool and much more
*
XDA:DevDB Information
Batch Deodex Tools - Android, Tool/Utility for the LG G2
Contributors
MidnightHarvester
Version Information
Status: Stable
Current Stable Version: 1.2.0
Stable Release Date: 2014-08-21
Created 2014-06-22
Last Updated 2014-08-21
Reserved
APPENDUM
Consider this a diary. Dates are when the thoughts or discoveries hit me, not release dates
Aug 15 - After modifying the tookset so it"s Android L ready by moving the JRE to /system/{wherever}, after flashing now the BDT directory doesn't get flashed to the sdcard. I'll need to do a little fiddling with the updater script, then release it once it's working. Granted you can just manually extract and copy that directory over easily but I'd prefer a fully working flaahable..
Aug 19 - Noticed there has been updated smali and baksmali jars, so either an incremental update and most likely just a patch will be worked I n and releaaed. Because of the update I'm also looking at any other files that may have been updated.
Aug 20 - I've discovered that on some devices (specifcally, CloudyG3 1.3), that t
here arr some issues running the scripts via terminal as apparently ... they don't exist. Executing them via Linux Script Handler within a File Manager should work until I figure this out)
Aug 20 - Releases will be migrated over time to my Box account, probably Dropbox account, as well as Mega. Archived releases will also be uploaded, and the OP will be updated as each is moved.
Aug 21 - Fixed a bug preventing the /sdcard/bdt directory from being installed on flash. Also made a few revisions to the code, nothing spectacular. Also uploaded to Box and Dropbox and ditched the Drive host. Incremental update to 1.2 0.
Good job buddy. Keep it up. Will give a try it soon.
Sent from my GT-I9100 using Tapatalk 2
Thanks! I'll be publishing an update in a day or so. I'm creating a stand alone project that won't require root. Right now root is required because the scripts need to access the JRE bin that's located in the data directory of apktool. I'm moving JRE lib (and Java binary) and smali and baksmali jars into a flashable zip.
It'll also be a lot easier to maintain this way. I completely killed my phone yesterday while cleaning up the scripts. After doing a batch deodex as it is now it will clean up the working directories and delete
everything except the deodexed archives.
I modified the paths hoping to create less work in the long run and after testing the modified script by phone rebooted back up and I got "unable to find setup" message and a blank screen. I must have left a "/" off of a path and ended up wiping everything in /sdcard/ ?
The error on boot was caused by the fact I always delete the LG setup app as I never anticipate deleting my SD card. So I was stuck at a black screen with nothing to restore since I wiped the SD card.
Eventually I realized I could pull the notification bar down still, and make it into settings by long pressing a quick toggle. Once I discovered I could open Google Now after enabling it in search settings I was in my way since I could use that to open Chrome and Root Explorer, etc.
I ended up restoring my system back and just wiped /data as well since I already wiped my SD card. Then spent the rest of the day restoring my device and luckily I had most everything backed up onto Drive.
Needless to say no changes were published in yesterday. I can imagine the backlash I would have gotten if I did lol. If I had a penny for each time I've mucked my device up while working on something I'd have, well maybe a dollar but still that's a lot
It shouldn't take long to get the standalone build out. I don't plan on turning the standalone build into an apk though as its easy enough to run via terminal emulator or file manager and take up far less space.
Sent from my VS980 4G using Tapatalk
I'll find another host to upload the install zip to as well as the Drive host in the OP. The zip is too large to attach here. I hope this simplification over installation appeals to more ?
Version 1.1.0 is now live. Installation boils down to just flashing the install zip in recovery. Read OP for additional information on how to use it.
Dang man! You beat me to it hahaha! I had started on this as a personal project for myself earlier today. However, I am wanting to just implement the process strictly through the recovery and by locating/finding all .odex files in my system to later deodex and place back accordingly all without me touching a thing but just running the script. I'm currently digging through your work right now to see if anything may be helpful for what I am aiming to do. Nevertheless, greatly appreciate you sharing this project.
How do you make an odexed apk into am installable apk? I wanna take the LG QVoice apk from an odexed rom and be able to install it like a normal app without having to add it to /system/app or /system/priv-app. Would just deodexing the apk do that?
Skizzy034 said:
How do you make an odexed apk into am installable apk? I wanna take the LG QVoice apk from an odexed rom and be able to install it like a normal app without having to add it to /system/app or /system/priv-app. Would just deodexing the apk do that?
Click to expand...
Click to collapse
You would most likely need to deodex that app and then install it via /data/app.
Make sure that system app you are referring to doesn't use any lib files or other dependencies. Some system apps do and it would be needed to port them over to your device for them to work (and possibly some work on the app itself once decompiled).
Sent from my C525c using Tapatalk
Modding.MyMind said:
You would most likely need to deodex that app and then install it via /data/app.
Make sure that system app you are referring to doesn't use any lib files or other dependencies. Some system apps do and it would be needed to port them over to your device for them to work (and possibly some work on the app itself once decompiled).
Sent from my C525c using Tapatalk
Click to expand...
Click to collapse
Yea I didn't think of lib files for that app. It makes sense it would need it. Thanks.
Modding.MyMind said:
Dang man! You beat me to it hahaha! I had started on this as a personal project for myself earlier today. However, I am wanting to just implement the process strictly through the recovery and by locating/finding all .odex files in my system to later deodex and place back accordingly all without me touching a thing but just running the script. I'm currently digging through your work right now to see if anything may be helpful for what I am aiming to do. Nevertheless, greatly appreciate you sharing this project.
Click to expand...
Click to collapse
That's an awesome idea bro. You'd need the jre in /data/misc/jdr somewhere. You may be able to run it off the scars in recovery since you can set permissions to the /sdcard mount there but not sure.
Create a script that 'finds' all odex files system wide and corresponding archive files and use the run_program edify script command to run the script so that you can deodex everything from recovery with one slide of a button.
There's not too much that would have to be changed in the script other than changing some of working directory variables as you go. Be careful in the batch-deodex script if borrowing from that as that deletes all odex, apk, and jar files in the /BDT/*/ except for the readme files.
Edit: If you need any advice or help on that project hit me up, as I could probably get it working by the end of the day. Well sooner not this day as my son is here but tomorrow.. Sorry I didn't comment the script that much but there wasn't really much to comment, so I mainly just commented the paths.
MidnightHarvester said:
That's an awesome idea bro. You'd need the jre in /data/misc/jdr somewhere. You may be able to run it off the scars in recovery since you can set permissions to the /sdcard mount there but not sure.
Create a script that 'finds' all odex files system wide and corresponding archive files and use the run_program edify script command to run the script so that you can deodex everything from recovery with one slide of a button.
There's not too much that would have to be changed in the script other than changing some of working directory variables as you go. Be careful in the batch-deodex script if borrowing from that as that deletes all odex, apk, and jar files in the /BDT/*/ except for the readme files.
Click to expand...
Click to collapse
Thanks. I had already set up my project folder along with my deodex script before I came across this thread (what were the odds lol). Was having issues getting the script to work at all until I looked at yours and notice you were exporting the LD_LIBRARY path. I implemented that idea in my script and now I'm getting a few failures for linking executables based on certain commands such as grep for example.
The script is a combination of premade works from different people which I have put together as followed. Currently, the script is a bit rough on what I am aiming to do but my goal for now is to get it to successfully find and deodex all necessary files. Once accomplished, I will proceed forward.
Script:
PHP:
#!/sbin/sh
cd $(dirname "$0")
DEODEXED_APK="/data/DEODEXED.log"
if [ ! -f $DEODEXED_APK ]; then
busybox touch $DEODEXED_APK;
fi;
prop="/system"
smalibaksmali_dir="/data/local/tmp/smali"
java_dir="/data/local/tmp/jvm/java-7-openjdk-armhf/jre/bin/java"
#tmp="$(dirname "$1")"
export LD_LIBRARY_PATH="/data/local/tmp/jvm/java-7-openjdk-armhf"
# Deodexes every .odex file
DEODEX() {
local API="$(busybox grep "ro.build.version.sdk" "$prop/build.prop" | busybox cut -d'=' -f2)"
echo "Detected API level $API" >> $DEODEXED_APK
busybox find "$prop" -type f -iname "*.odex" | while read line; do
local FILE="$(basename "$line")"
local FILEDIR="$(dirname "$line")"
echo "Deodexing $FILE" >> $DEODEXED_APK
echo "Disassembling $FILE..." >> $DEODEXED_APK
$java_dir -Xmx512m -jar $smalibacksmali_dir/baksmali-2.0.2.jar -a "$API" -d "$prop/framework" -x "$FILEDIR/$FILE"
if [[ $? -ne 0 ]]; then
echo "ERROR DEODEXING $FILE, ABORTING!" >> $DEODEXED_APK
rm -rf out
return 1
fi
echo "Assembling into classes.dex..."
$java_dir -Xmx512m -jar $smalibacksmali_dir/smali-2.0.2.jar -a "$API" -o classes.dex out
if [[ ! -e classes.dex ]]; then
echo "ERROR DEODEXING $FILE, ABORTING!" >> $DEODEXED_APK
rm -rf out
return 1
fi
FILE="$(busybox echo "$FILE" | busybox rev | busybox cut -d'.' -f2- | busybox rev)"
local FOUND=0
for EXTENSION in "jar" "apk"; do
if [[ -e "$FILEDIR/$FILE.$EXTENSION" ]]; then
echo "Packing back into $FILE.$EXTENSION..."
zip -rq "$FILEDIR/$FILE.$EXTENSION" classes.dex
rm -f classes.dex
FOUND=1
break
fi
done
if [[ "$FOUND" -eq 0 ]]; then
echo "ERROR, No output found?!"
rm -rf out
rm -f classes.dex
return 1
fi
rm -f "$line"
rm -rf out
done
echo "Deodexing finished"
}
# Start Processing Here
DEODEX
Sent from my C525c using Tapatalk
Saved while I read script after kid stops jumping on me lol
LD_LIBRARY_PATH threw me off to. Somewhere in java or bad small or small expects it to point to the data/data/per.pqy.apktool/lix files.
MidnightHarvester said:
Exporting LD_LIBRARY_PATH and pointing that to wherever you have the lib files stored which in apktool are in /data/data/per.pqy.apktool/lix is key cause either java or baksmali or small reference that Android environment variable.
That took me a while too until I realized what I needed to do. You can cut down on size quite a bit and copy the lib files in /data/misc/bdt in my project as those are the only ones needed for smali and baksmali. With that figured out you'll have it done in no time. You could always flash these tools and then make a script like
Code:
# import my 'bdt' script
. /system/bin/bdt
# copy all odex, apks, and jars into files-to-deodex - could
# use lath variables instead of full pathnames
cp /system/app/. *odex /sdcard/BDT/files-to-deeodex
cp /system/app/. *apk /sdcard/BDT/files-to-deeodex
cp /system/priv-app/. *odex /sdcard/BDT/files-to-deeodex
cp /system/priv-app/. *apk /sdcard/BDT/files-to-deeodex
cp /system/framework/. *odex /sdcard/BDT/files-to-deeodex
cp /system/framework. *apk /sdcard/BDT/files-to-deeodex
# call batch-deodex function
batch-deodex
Then make sure all the deoxed archives are in the deodexed-out directory and if check a few make sure classes. dex are in them lol. Then if running from recovery, copy the new deodexed archives into appropriate places and set permissions (recursively unless you're insane ).
Sounds a lot like what you're doing though. Also gives me an idea for version 2 which also gives the option to deoxed the entire system and then create a flushable zip with all the deodexed archives inside. Will probably work on that tomorrow after my son is gone. Keep me posted ed on the progress on your work though as I haven't had much in out back regarding this.
Click to expand...
Click to collapse
I like your idea about making a flashable zip once it is done. I have it working now.
I made a small typo which resolved my earlier problem.
I used "smalibaksmali_dir" as my variable which pointed to the smali directory.
However, later in my script I spelled 'bak' with a 'c' - smalibacksmali_dir.
I will keep you posted man. I was shocked when i found your thread because prior to I had spoken with a relative about my project and how it appeared no one had done this. Then I found you lol. Kudos for your work bro.
Sent from my C525c using Tapatalk
---------- Post added at 07:54 PM ---------- Previous post was at 06:58 PM ----------
Here is a screenshot with my personal script/project running.
Sent from my C525c using Tapatalk
@MidnightHarvester, my script is working great now. However, I noticed that this bogs down the device greatly. To deodex the Rom from the device will take WAY TOO LONG then if you were to do so using a descent computer. However, if merely deodexing an app here or an app there then it's fine and tolerable but not for all *.odex files at once lol.
There has to be some way to make this move along faster. Otherwise, the wait begins for phones with better processors and more ram.
Sent from my C525c using Tapatalk
Modding.MyMind said:
@MidnightHarvester, my script is working great now. However, I noticed that this bogs down the device greatly. To deodex the Rom from the device will take WAY TOO LONG then if you were to do so using a descent computer. However, if merely deodexing an app here or an app there then it's fine and tolerable but not for all *.odex files at once lol.
There has to be some way to make this move along faster. Otherwise, the wait begins for phones with better processors and more ram.
Sent from my C525c using Tapatalk
Click to expand...
Click to collapse
I'm pretty sure that the scripts are only utilizing one thread (unless I'm mistaken). Is there a way in bash to start a new thread or at least call on a binary and pass over a callback function? I'll have to look into it.
When I deodexing my /system/priv-app folder I just let it run overnight. There isn't anything really in the script I can do to speed things up much as the majority of the work is being used during the baksmali and smali calls.
That's one reason I didn't echo any output like your script did which I really wanted to but I've found that things tend to run faster without output being sent to stdout. Might not be a huge hit but...
Maybe if I an get it to deodex in recovery nobody would be competing for resources? Definitely keep updated on the thread as this isn't anywhere near done yet.
I'm glad I found somebody else working on this. For a while I thought no one was that interested since there has been PC tools to do this for ages. Problem is for some (like myself) is that THIS is my PC .
I'm trying to think on how to speed things up and drawing a blank. There aren't enough odex files in all of /system for there to be issued with looping. I think the baksmaling and smaling just take time. Take a look at Matt's old Privacy Blocker app (same Matt that developed xUltimate deodex tools on PC). It takes ages to baksmali and smali there as well.
My first early version though was even worse. I actually was decompiling resources as well in the archive and creating a smali folder and moving the decompiler source as well into there and recompiling the entire apk/jar lol. Don't ask me why.
I need to borrow an idea from you as well and let the user set API level. Normally omitting it should be fine (defaults to latest doesn't it?) but having the choices might help of anyone comes across a picky app.
In the meantime if deodexing am entire folder I'd recommend just doing it at night while you sleep. If you can, use a tool to enable all four cores and set all cores to performance mode and leave the Ax plugged in. *shrugs* I have AIDE installed so if I can get into the baksmali/smali source code maybe I can at least have a look.
Edit: I'm running a multithreading test now. You can run a command in another thread by placing '&' after the command. If it works I'll update.
@MidnightHarvester, I too use my device as it were my own computer which is why I make up the things which I do lol. Seems we have much in common. I actually learned about the idea of using multithreads with '&' just the other night as I was researching for ways to optimize my script. Another method is to use 'wait' which will put any future commands on hold until the current one is finished. That should out less stress on the cpu. Another idea is to limit the use of pipes. The more pipes being implemented the more usage the cpu has to dish out.
I believe flashing and running this in the recovery may speed this up as you mentioned that it would required less resources being used during operations, but the question is how much would the improvement be lol.
Keep me updated with using multithreads and feel free to take away whatever you find to be useful from my deodex script.
Expect many future changes to it to optimize it as much as possible.
In addition, using 'while read line' can increase the performance on speed if the following commands afterwards are not causing an overhaul.
Sent from my C525c using Tapatalk
---------- Post added at 03:10 PM ---------- Previous post was at 03:04 PM ----------
I will be pushing my project to my github later on today. Will be easier to keep up with any changes I make. Will take note in README.md that the project is still in development and to use with GRAVE caution lol.
Sent from my C525c using Tapatalk
---------- Post added at 03:13 PM ---------- Previous post was at 03:10 PM ----------
It's ashame I don't currently have any way to build the smali/baksmali sources from my phone.
Need to look in to it and see if any flags could optimize the final build to produce a more proficient workload in performance.
Sent from my C525c using Tapatalk
So, I am working on getting my project to work in the recovery. Looks like some troubleshooting is in store.
From my recovery.log:
Code:
about to run program [/tmp/deodex.sh] with 1 args
CANNOT LINK EXECUTABLE: could not load library "libc.so" needed by "busybox"; caused by library "libc.so" not found
CANNOT LINK EXECUTABLE: could not load library "libc.so" needed by "busybox"; caused by library "libc.so" not found
CANNOT LINK EXECUTABLE: could not load library "libc.so" needed by "busybox"; caused by library "libc.so" not found
Detected API level
CANNOT LINK EXECUTABLE: could not load library "libc.so" needed by "busybox"; caused by library "libc.so" not found
CANNOT LINK EXECUTABLE: could not load library "libc.so" needed by "sort"; caused by library "libc.so" not found
Deodexing finished
CANNOT LINK EXECUTABLE: could not load library "libc.so" needed by "busybox"; caused by library "libc.so" not found
run_program: child exited with status 1
Sent from my C525c using Tapatalk
---------- Post added at 05:33 PM ---------- Previous post was at 05:00 PM ----------
Resolved my problem. Export path for sbin was being overwritten by the script so it prevented busybox from being used. To resolve it you just need to insure that sbin is included to the path as well.
Edit: this was tested with TWRP
PHP:
export LD_LIBRARY_PATH="/sbin":"/tmp/jvm/java-7-openjdk-armhf"
Sent from my C525c using Tapatalk
:cyclop
Modding.MyMind said:
I like your idea about making a flashable zip once it is done. I have it working now.
I made a small typo which resolved my earlier problem.
I used "smalibaksmali_dir" as my variable which pointed to the smali directory.
However, later in my script I spelled 'bak' with a 'c' - smalibacksmali_dir.
I will keep you posted man. I was shocked when i found your thread because prior to I had spoken with a relative about my project and how it appeared no one had done this. Then I found you lol. Kudos for your work bro.
Sent from my C525c using Tapatalk
---------- Post added at 07:54 PM ---------- Previous post was at 06:58 PM ----------
Here is a screenshot with my personal script/project running.
Sent from my C525c using Tapatalk
Click to expand...
Click to collapse
No probs cyclops. Between family I don't get a chance to get on hereuch but that's all changing here Very soon. I really glad you're taking off where i left off. I saw that there's a GUI out now I haven't read the thread yet so not sure if it's your work or not, but I'm glad others are running with it. Beauty of open source. I rewrote a lot and published to github under GPL but unfortunately during the rewriting I broke something and haven't been back to fox it yet.
I need to as yje code is streamlined as well as being on github open where all can see and make commits. I would get on that but it seems the GUI version has taken off and this is more for legacy but who knows
I also noticed someone else had a btch deodex script published on github though no as robust but I should have borrowed off him instead of reinventing the wheel. Too bad I didn't see that until later.
Inteied my luck at multithreading the shell commands but that would require a LOT of counters keeping track of example which processes are still decompiling and which are recompiling to avoid collisions, so I lwdr it be for now. And now that the GUI is out maybe ibcan lend a hand there if needed.
Is the GUI just a command line GUI or an actual app?I'll look when done reading. If it's an actual app multithreading would be much easier and i wouldn't mind helping out on the team. If its a shell GUI like old Windows apktool versions I commend you. Takes patience to mundnely write out the interface
Either way glas there's interest and happy others with more time to devote can carry on.
@MidnightHarvester
Hello sir,
I'm trying to decompile settings.apk with apktool for android. It won't do it correctly, and I'm wondering if it's because it should be deodexed first. The only 2 I've been able to recompile are htc-resources.apk and framework-res.apk on HTC Evo 3D 4.0.3ics
That's first question, will be able to recompile settings after deodex?
I don't understand this command,
. /system/bin/bdt
bbdth-smali
Are these on one line, separate?
I'm fairly new to modding, will you help me please?
The commands listed, when pasted into terminal, errors a lot. Using SManager to run works, but what is got from it isn't a deodexed app.-
When running batch-deodex(I'm using bdt from v.1.1.0 because it throws out several errors with bdt from v.1.2.0, I haven't looked through it, so I'm not sure if it's just not echo ing them), well, first I put the settings.apk in files-to-deodex folder, create odex of it in apktool(is this right thing to do?) Settings.odex is created in same folder, then ran batch-deodex.
The exact same settings.odex is placed into files-to-baksmali. And same settings.apk is placed in deodexed-out. In the dex-out folder are same 2 files called classes.dex and Settings.dex. and in the smali-source is Settings folder with a boat load of smalis.
After it's done:
exec sh '/system/bin/batch-deodex'
in/batch-deodex' <
rm failed for -rf, No such file or directory
rm failed for -f, No such file or directory
cp: can't stat '/sdcard/BDT/files-to-deodex/*.jar': No such file or directory
rm failed for -f, No such file or directory
rm failed for -f, No such file or directory
rm failed for -f, No such file or directory
rm failed for -f, No such file or directory
rm failed for -f, No such file or directory
And here's the log
Error occured while loading boot class path files. Aborting. org.jf.util.ExceptionWithContext: Cannot locate boot class path file /system/framework/conscrypt.odex at org.jf.dexlib2.analysis.ClassPath.loadClassPathEntry(ClassPat h.java:217) at org.jf.dexlib2.analysis.ClassPath.fromClassPath(ClassPath.jav a:161) at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:59) at org.jf.baksmali.main.main(main.java:274)
What am I doing wrong?
How do I get to having deodexed app?
Sent from above using xparent tapatalk blue

[ROM][UNOFFICIAL][P][F500,LS991,H81x,US991,VS986] LineageOS 16.0

{
"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"
}
Code:
/*
* I'm not responsible for bricked devices, dead SD cards, thermonuclear war, or you getting fired because the alarm app failed (like it did for me...).
* Please do some research if you have any concerns about features included in the products you find here 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.
* Your warranty will be void if you tamper with any part of your device / software.
* Same statement for XDA.
*/
About LineageOS​
LineageOS is a free, community built, aftermarket firmware distribution of Android 9 (pie), which is designed to increase performance and reliability over stock Android for your device.
LineageOS is based on the Android Open Source Project with extra contributions from many people within the Android community. It can be used without any need to have any Google application installed. Linked below is a package that has come from another Android project that restore the Google parts. LineageOS does still include various hardware-specific code, which is also slowly being open-sourced anyway.
**** These builds are for both: official unlocked and UsU'd devices ****
UsU? http://bit.do/unlockg4​
Requirements​
Your device need to be unlocked either officially (h815 international or h811) or by UsU
Your bootloader stack should be on MM 20p (20x for H811) or higher! (see FAQ #8 for how to upgrade your bootloader stack without lgup BUT for your convenience I have alternatively created TWRP flashable files for that !!!! (click))
in particular that means this thread is for:
F500 (UsU'd)
H810 (UsU'd)
H811
H812 (UsU'd)
H815 (official unlocked or UsU'd)
H819 (UsU'd)
LS991 (UsU'd)
US991 (UsU'd)
VS986 (UsU'd)
Latest TWRP - PREVIEW build: click
Do a full Nandroid backup before doing anything!
Installation​
This single very first step is for UsU'd devices only:
If you have ever flashed the UsU baseband package: Clean flash the modem partition from your backup in TWRP.
If you do not know if you ever flashed it simply flash your modem partition again and you can be sure. This can't do any harm.
If you have no backup:
- TWRP flashable MM modems (N will not work)
Full clean install as described here (FAQ "#2") is highly recommended. DO NOT REPORT ISSUES when you have skipped that step!
Flash LOS
Optional (f-droid is already included): Flash GApps (9.0 - ARM64) if you like to use google apps
Optional (if you want root): Flash the official LOS root-addon (addonsu-16.0-arm64-signed.zip) or Magisk (ensure you read FAQ #1 when using Magisk though)
Boot (will take a bit on first boot!!!)
Enjoy
Features​
Pure LineageOS ROM experience
F-Droid included (Open Source alternative to Google Play)
Torch workaround included (no root)
BT voice FIXED
Known issues​I can't test everything on my own, so a lot of things only show up after a release. That means:
- back up regularly and frequently!
- report issues the issue tracker (see next)
Check the current issues at the github tracker (feel free to help, provide logs etc!
If you find a bug not listed, follow the instructions here and provide me with the logs: FAQ #1
Download​Get your builds from my leech server
https://leech.binbash.rocks:8008/lineage/16.0/
Note:
Builds are updated as soon as possible. There is no build cycle.
Information pertaining to your device is displayed accordingly.
The current build is the latest for your device.
Changelogs​
only at my Telegram group
Credits​
LineageOS
The Suicide-Squirrel team (ThePiGuy, kessaras, steadfasterX)
aoleary
WiZaRd981
berkantkz
sdembiske
and more..
Sources​
build manifest
LEGACY XDA DB info​XDA:DevDB Information
lineage-16.0, ROM for the LG G4
Contributors
steadfasterX, ThePiGuy, kessaras, aoleary, WiZaRd981, HardStyl3r
ROM OS Version: 9.x Pie
ROM Kernel: Linux 3.10.x
ROM Firmware Required: latest MM / N (exact version is model dependent)
Based On: pure LineageOS
Version Information
Status: Stable
Created 2019-05-10
Frequently Asked Questions (FAQ)
Q #01: I want to report an issue. What is the proper way to do so?
I'm glad that you are asking: before doing so check the KNOWN ISSUES topic in the OP and ofc the other FAQ's listed here!
If you encountered a kernel panic follow FAQ #6 in this post instead.
If you have issues with "just" the boot process follow FAQ #7 for a very easy way to grab the boot logs.
if you have an audio issue follow FAQ #10 instead.
If your issue is not listed there click here to proceed:
If your issue is not listed there follow the directions here briefly and I may can fix it.
Often selinux can cause issues so try that at very first:
Code:
adb shell
su
(or "adb root" when enabled in developer settings)
setenforce permissive
Try again and if the issue is gone when in permissive mode: provide me a logcat as described here -> on step 3 I need the SELINUX log (option D)
If that does not solve your issue follow the logcat GUIDE to provide a valid log depending on what your issue is.
Ensure you have done a full CLEAN install before doing so (refer to FAQ #2 for what that means).
Warning: NO SUPPORT when:
- magisk is installed (known to cause issues sometimes - regardless of the ROM or version)
- Xposed is installed (known to cause issues sometimes - regardless of the ROM or version)
If you have installed any of these UNINSTALL or better do a FULL CLEAN install (see FAQ #2) before doing anything else. Often enough these above causes several issues like battery draining, problems on booting and much more. Even when they may work properly you should re-produce your issue without them first and follow the above to grab the log.
Magisk is a great piece of software and besides that it is Open Source which SuperSu never was.
I just saying I do not "support" issues with LOS when you have Magisk installed. Why? It is (like Xposed) extendable with modules (made by whoever) and those can cause billions of issues.
Other then that magisk was sometimes the reason for battery drain etc. Magisk modifies the boot "process" and sits very deep in the system (which is needed to make it work ofc) but that has the potential to make a system/ROM unstable or result in strange behaviors.
so in order to support a specific issue I have to be sure the ROM is in a "clean" state, no magisk, no xposed. The LOS root-addon is tested with LOS and made for it so that is not an issue but for the rest there are so many things which can going wrong..
Q #02: I want to install clean, how? What is a clean install? What is the recommended way to flash a new ROM version?
A clean install ensures that there are no leftovers from any previous install. One can say that there are 2 phases of a clean flash:
1) regular
2) full - when you (still) encounter issues
Usually the regular one is fully ok when flashing a new ROM version but if you encounter strange issues nobody else is reporting or if a release post is recommending it you should do a full clean install instead.
A regular clean install can be done like this:
WIPE -> Advanced -> select: System + Cache
Flash the ROM
reflash root addon/magisk if you want root
reflash opengapps if you want to use Google crap
A full clean install needs 2 steps more then the regular:
follow the steps for regular clean
go back in WIPE -> touch the "FORMAT data" button and type "yes" to format the internal storage (you will LOOSE ALL YOUR DATA - obviously)
REBOOT -> Recovery
Flash the ROM
reflash root addon/magisk if you want root
reflash opengapps if you want to use Google crap
It is absolutely recommended to create a backup before and COPYING IT to your PC(!) before doing the above.
Q #03: Are there any plans or a chance of official LOS builds?
TL;DR answer is: no.
Background:
LineageOS has "some" requirements before they accept it to do official builds: device-support-requirements.
For sure we do not met all and the most problematic one will be the kernel reqs as do provide a good battery life and a fast kernel kessaras had made unacceptable (for LOS) changes regarding several parts of that requirement topic. So a new kernel (branch) is needed to remove all the improvements we made which are not accepted. This process alone can take weeks (if you do not want to loose every good thing here). A much easier approach here would be to build a "just working" LOS stock kernel without any improvements and fixes and tell everyone: "Flash LOS, then a TITAN kernel afterwards". So while that might be the easier approach it will nevertheless take time to do that kernel and include the reqs + sec patches to the day.
Besides that a bit work is needed to fulfill some of the others like that.
Other then that and that is one of the most important things here:
Even when the device was accepted going official in the past (14.1... long time ago..) an incredible amount of changes happened to get oreo and now pie running. All these will be put to the test. Which actually means every commit we made will be discussed (worst case, yea, but ..) and changed. That can be from a simple "the commit message is wrong" to "pls re-write the code here". You maybe get an idea that this process is nerve-wracking (for me) and costs a lot of my free time.
Before RIL has been fixed (which had happened in the end of June 2019 first) it would have been impossible, I guess.
Now the base is fine, we could put a big amount of time into going to official to get finally ........ yea, what?
Well.. I would free resources on my build and leech server (I don't care - atm)
I would save bandwidth (I don't care - atm)
I would not need to tamper around anymore with (i.e jenkins) build issues (I don't care - atm)
you?
you would get a (LOS signed) build with a slow kernel, bad battery life and all the goodies missing... unless I build LOS kernels to bring those things back.
ok but to be honest. I can fully understand that request and I would feel better by myself when I were you. You do not know me so are my builds trustworthy ? Who knows. I could be a bad guy. :fingers-crossed:
Besides that I wrote above "I don't care - atm" so that might change in the future right? Correct.. there is no guarantee how long I can provide new builds or offer them on my leech server. There is nothing at the horizon that this might change soon but who knows? I can say that I am incredible happy with my OnePlus 6T and - believe it or not - I run STOCK OxygenOS here.. Why? It is just enough for me. So no need to do any dev there - which means all my dev time is still going here - to the G4. It is also a personal project to learn stuff around the Android eco system and woa.. who knows maybe Q came one day to the G4 as well..
... and yea official builds would give you some kind of guarantee that builds will happen - while that might change with my unofficial builds some day.
So.. as said in the TLDR above: No I personally do not have any plans in going official for the described reasons.
If someone else wants to go that way and needs help, I am here. But I cannot spend my whole free time on that.
Q #04: Google Play shows that my device is not "certified" - how can I fix that?
First of all you must be on the latest build. I fixed that from the latest July (2019) builds on.
If your issue persists click here to proceed:
The second thing is you must not be rooted by the LOS root addon (afaik). Magisk has its own protections to ensure you stay certified but I hadn't the time to test the LOS root-addon.
You also need to know that google play remembers your devices last state so if you are on the latest build and still having that issue do this and it will be certified again:
android settings -> apps -> find play store -> clear data (yes data, not cache) -> reboot -> open play store -> wait 2..5 minutes -> check certified state again
Q #05: It looks like the CPU cores 5 and 6 are disabled - how can I fix that?
TLDR;
There is no fix required! it is fully ok when those are idle. they get hot plugged whenever needed.
Details:
we have 2 clusters of CPU cores resulting in a Hexa-core CPU set: (4x1.4 GHz Cortex-A53 & 2x1.8 GHz Cortex-A57)
the big one (2 CPU cores - higher performance = more battery drain, more heat which potentially causing the: bootloop issue) and the little (4 CPU cores - less battery drain but a bit slower) are handled dynamically based on the load of your device.
the big cluster will run ONLY when it is NEEDED - i.e. high load.
so when you look closer: those are not DISABLED they are IDLE which is a big difference.
Q #06: I get a kernel panic or green/purple/blue screen how to grab logs for this?
You need a ROM with pstore fully enabled and working (pstore = debug kernel panics/oops happened in a ROM)!
All builds starting from 2019-08-15 on support pstore due to: commit#1, commit#2, commit#3
This is a 2-site change if you want to make use of it in TWRP you must install the latest TWRP "PREVIEW" release as well (TWRP is only able to show pstore logs when the ROM is able to write them so I needed to fix pstore in the ROM first (see above commits #1 + #2 )).
Besides those 2 patches these kernel configs were set: PSTORE
You can check if a ROM does support writing pstore logs by:
as soon as possible on a fresh boot:
Code:
adb shell
dmesg | grep "ramoops|pstore"
Code:
[ 0.000000] cma: Found [email protected], memory base 0x000000001fe00000, size 2 MiB, limit 0xffffffffffffffff
[ 0.000000] cma: CMA: reserved 2 MiB at 0x000000001fe00000 for ramoops_mem
[ 0.200846] cma: Assigned CMA region at 0 to ramoops.78 device
[B][ 3.957553] console [pstore-1] enabled
[ 3.957939] ramoops: attached [email protected], ecc: 16/0[/B]
[ 3.958079] drv probe : 200 ramoops 3744
[ 6.262463] SELinux: initialized (dev pstore, type pstore), uses genfs_contexts
or (if you are not fast enough) this ensures mostly the same check:
Code:
adb shell
ls -la /dev/pmsg0
Code:
crw-rw-rw- 1 camera camera 254, 0 2015-01-05 04:54 /dev/pmsg0
If you get no output your ROM does not support pstore logs.
From now on when you encounter a kernel panic and you are able to reboot without taking out the battery (taking out the battery will erase RAM):
1) reboot (without taking out the battery!) to either TWRP or (if you have root access) to your ROM
2) grab everything need from here: /sys/fs/pstore/ (e.g. adb pull /sys/fs/pstore/)
If you don't have a pc near you can do it directly from the device as well:
Enable the terminal app in developer options or download any
Open the terminal app.
su
cd /sdcard/Download
tar czf pstore.tgz /sys/fs/pstore
Attach pstore.tgz to your post.
It is crucial important that you do this only after the reboot happened . It's not important "when" though - as long as the device stays powered on.
Developers note:
convert PMSG log (requires a linux system):
Code:
tr -cd '\11\12\15\40-\176' < pmsg-ramoops-0 | sed 's/TENS\s/\n/g' > readable-pmsg.txt
Q #07a: I get a kernel panic on boot or having other boot issues but the pstore log are empty! What should I do?
Q #07b: How can I provide a clean boot log?
Since a while there is a very easy way to provide debug logs for the boot process. Before my convenient logging you had to follow FAQ #1 to grab them and it was a bit of PITA for some users.
So here you go for a much easier way:
boot Android
once booted : reboot to TWRP
when you have a bootloop instead: take the battery out just before the bootloop occurs, or better press the key combo to get into TWRP all the time to eventually get there directly
once in TWRP ensure that "Cache" is mounted in the "Mount" menu (if not mount it by ticking the box)
open a terminal on your PC and type:
Code:
adb pull /cache/debug/boot_lc_crash.txt
adb pull /cache/debug/boot_lc_full.txt
adb pull /cache/debug/boot_lc_kernel.txt
paste one by one to a paste service like https://del.dog/ , https://paste.systemli.org/ or https://paste.omnirom.org/
Q #8: upgrade your bootloader stack only?! Read here how:
If you don't mind you can use lgup as long as you do not have an UsU'd device!
For UsU devices follow the UsU FAQ #20 instead of this one!!!!!
If you just wanna upgrade the bootloader stack without loosing data: Check the OP topic "Requirements" of this thread because:
it has a link to TWRP flashable files for updating your bootloader with just 1 click ..
Anyways if you still want to go on doing it manually instead of the easy way then:
Download a KDZ of your device model.
Keep in mind that there a frankenstein devices out there (means refurbished devices with mixed hardware inside so you think u have model XXX as it was shown in Android but the mainboard is NOT the same!).
How to identify a Frankenstein device? Read FAQ #21 in the UsU thread.
IMPORTANT: Check the ARB of that KDZ (SALT v3.11 will show the ARB of a KDZ on extract!) - If you are unsure - DO NOT PROCEED. you can easily hard brick your device if!
Extract that KDZ with SALT - DO NOT USE ANY OTHER TOOL FOR EXTRACTING! The known windows tools like LG Firmware extract does not extract what we need here and not in the way we need it! So do not use that! You have been warned..
Open a terminal in the directory where you SALT backup before flashing UsU (or your extracted KDZ) is.
Then put your device in fastboot mode and type these commands (you have another file extension? read FAQ #24 of the UsU thread):
Again this guide is NOT for UsU'd devices!!!
Code:
fastboot flash aboot aboot.bin
fastboot flash factory factory.bin
fastboot flash hyp hyp.bin
fastboot flash modem modem.bin
fastboot flash pmic pmic.bin
fastboot flash rpm rpm.bin
fastboot flash sbl1 sbl1.bin
fastboot flash sdi sdi.bin
fastboot flash sec sec.bin
fastboot flash tz tz.bin
Alternative with TWRP (if the above fastboot cmds work for you no need to do this!):
Again this guide is NOT for UsU'd devices!!!
Code:
Boot TWRP
adb push factory.bin /tmp/
adb push hyp.bin /tmp/
adb push modem.bin /tmp/
adb push pmic.bin /tmp/
adb push rpm.bin /tmp/
adb push sbl1.bin /tmp/
adb push sdi.bin /tmp/
adb push sec.bin /tmp/
adb push tz.bin /tmp/
adb push aboot.bin /tmp/
adb shell sync
adb shell "dd if=/tmp/factory.bin of=/dev/block/bootdevice/by-name/factory"
adb shell "dd if=/tmp/modem.bin of=/dev/block/bootdevice/by-name/modem"
adb shell "dd if=/tmp/hyp.bin of=/dev/block/bootdevice/by-name/hyp"
adb shell "dd if=/tmp/pmic.bin of=/dev/block/bootdevice/by-name/pmic"
adb shell "dd if=/tmp/rpm.bin of=/dev/block/bootdevice/by-name/rpm"
adb shell "dd if=/tmp/sbl1.bin of=/dev/block/bootdevice/by-name/sbl1"
adb shell "dd if=/tmp/sdi.bin of=/dev/block/bootdevice/by-name/sdi"
adb shell "dd if=/tmp/sec.bin of=/dev/block/bootdevice/by-name/sec"
adb shell "dd if=/tmp/tz.bin of=/dev/block/bootdevice/by-name/tz"
adb shell "dd if=/tmp/aboot.bin of=/dev/block/bootdevice/by-name/aboot"
Download this verify tool to ensure the flashing was successful: [ATTACH]4687157[/ATTACH] ([URL="http://leech.binbash.it:8008/misc/verifyflash.zip"]mirror --> verifyflash.zip[/URL])
Usage:
extract verifyflash.zip
adb push verifyflash.sh /tmp/
adb shell chmod 755 /tmp/verifyflash.sh
adb shell /tmp/verifyflash.sh
Read the output of the flashing on the screen and in your terminal. Do NOT flash anything else! Just the above - but ALL of the above! (if you miss a single file you will HARD BRICK)
If something is failing do NOT continue and try to re-do the above commands. if it still fails write in this thread or better come into IRC (when between Monday and Friday)!
If something failing here it WILL brick your phone.
Q #9: A life without Google?! Read here how:
A life without Google ? Is that possible ? ...and why you should consider it ?
So why? That's easy to answer and if those are worth it depends totally on your personal needs:
1) BATTERY. Google services are draining a LOT of your battery, so to get the most out of your battery you should abandon Google gapps
2) PRIVACY. Almost all Google apps phoning home to Google! You don't care about that? You really should. You have nothing to hide? Oh dear believe me you have no idea how much of your private data you do NOT want to share. Keep also in mind that you give your private data not to a company only , there are always humans behind and what they do.. You do not believe me? Read on
BREAKING NEWS:
You can go on with the following steps or simply head-over to /e/ OS which is LOS but completely Google-Free + microG fully working pre-installed:
check it out here!
WARNING:
The last build supporting this spoofing method was 20210307. Everything later has that patch removed. Sorry for any inconvenience but maintaining that patch took more time then thought and for those who really care about privacy there is now /e/ OS available containing full microG support. I will leave the instructions here for those who cannot or do not want to switch to /e/ OS.
So if you feel one or both reasons might fit your personal needs here are some first steps to go (if you do NOT want to switch to /e/ OS):
1) all my builds come with FDroid which is a special app store containing just free open-source apps. As this might be a very limited I recommend to install Aurora from here which is a frontend for Google play. So search in FDroid for "Aurora Store" and let it install. Start Aurora and choose anonymous!!! and you can install everything from play as before.
2) install the microG repo in FDroid. Just open that link from your G4 and it will install the repo:
https://microg.org/fdroid/repo?fing...EB6DAB39B73157451582CBD138E86C468ACC395D14165
3) due to the fact that many apps depends on Google services as backend you need to do 2 things now:
a) developer options -> scroll down to signature spoofing and enable it *(read FAQ #11 why)
b) Download the current stable "Services Core" apk from here: https://microg.org/download.html and install it like that:
Code:
adb install com.google.android.gms-[REPLACETHIS].apk
c) if you have root:
Code:
adb shell
su
mount -o remount,rw /system
exit
adb push /tmp/com.google.android.gms-[REPLACETHIS].apk /system/priv-app/GsmCore.apk
if you do not have root, boot to TWRP now and mount system, then:
Code:
adb push /tmp/com.google.android.gms-[REPLACETHIS].apk /system/priv-app/GsmCore.apk
4) Install a location backend provider to make location services work without Google (yea Google is spying you..).
There are several available, just search for them in F-Droid:
Apple UnifiedNlp Backend uses Apple’s Wifi database.
LocalGsmNlpBackend uses downloaded GSM Cell data (local)
LocalWifiNlpBackend uses (on-device generated) WiFi data (local)
Déjà Vu Location Service uses (on-device generated) WiFi + GSM Cell data (local) * recommended
MozillaNlpBackend uses Mozilla Location Services * recommended
Radiocells.org UnifiedNlp Backend uses Radiocells.org
Also install a reverse location backend:
- e.g. NominatimNlpBackend (currently the only I know)
5) Now it's time to configure microG. Go in the app drawer and open microG settings:
you will be prompted or a notification is showing for setting permissions, go through all of them and choose allow.
UnifiedNlp settings:
- Configure the location backend service (choose the one you installed in step 4)
- Configure the address lookup backend (choose the one you installed in step 4)
Go back to the main screen of microG:
Choose Self-Check:
- Tap "System grants signature spoofing permission" and you wou get a request for allowing that (which you should do..)
- Tap Battery optimizations ignored to ensure microG is function properly
- Ensure "UnifiedNlp is registered in system" is checked (if not repeat the above steps for pushing the APK to system/priv-app)
- Ensure "Location Backends" is checked (if not repeat UnifiedNlp settings above)
Read the installation wiki for microG and install whatever else you might need:
- https://github.com/microg/android_packages_apps_GmsCore/wiki/Installation
6) reboot & re-do the self-check in microG settings
7) ensure the location service is *NOT* set to GPS-only (for LOS that means enable battery saving)
8) some general things now:
you might need to switch to alternatives sometimes. I use Waze instead of Google maps even though Google would work (but I don't like the Google spys). I use FairEmail as I love my privacy and supporting open-source. Usually you can find always an alternative, often paid apps offer activations and buying without Google play and that is often even cheaper (e.g. AquaMail costs 39€ on play and 30€ on their website etc).
There is one thing which really hurts me when it comes to gapps-less life: no smart lock. I really enjoyed it but for me the both reasons above have more weight then this.
So as you can see a life without Google has its advantages but also some changes are needed. If it's worth it depends on you. I can just recommend it
Q #10: issues with audio (e.g. echo's, silence on one or the other site, ..)? Read here how to provide a specific log for that:
Do the following steps:
1) Ensure you have adb set up on your PC, and have adb debugging and adb root enabled in developer options on your phone
2) Then perform the following (all one command)
On Linux:
adb root ; adb shell "stop audioserver; logcat -c -b all; start audioserver" && sleep 10 && adb logcat -b all |egrep -vi "(dialer|telecom|ril|gsm|touch|brightn|dct|QC-time-services|SST|sensors|AlarmMan|Lights|perfp)"
Click to expand...
Click to collapse
On windows:
adb root ; adb shell "stop audioserver; logcat -c -b all; start audioserver && sleep 10 && logcat -b all |egrep -vi '(dialer|telecom|ril|gsm|touch|brightn|dct|QC-time-services|SST|sensors|AlarmMan|Lights|perfp)' "
Click to expand...
Click to collapse
3) Then re-produce your audo issue and cancel the logcat from step 2 before hanging up!
4) Share the logcat output from the console screen using paste.omnirom.org
Q #11: I'm scared about that microG , I don't want to expose my phone so is this LOS version a security risk?
First of all you need a lot of trust installing ANY custom ROM. A developer can do nasty things right? Besides that yes microG allowing to let apps act like as they are another app, also known as signature spoofing. This CAN be a good and a bad thing. Read on why my LOS is different:
In general the microG patch is an all or nothing. A ROM which supports microG (i.e. signature spoofing) have that feature enabled, always. That's what I don't like.
I want the user to decide if he wants to take the risk or not and not exposing a feature for everyone even when they don't need it.
That's why the user must enable it explicitly in developer options before it gets activated (as described in FAQ #9).
All details of the implementation and why can be found here:
https://github.com/steadfasterX/android_signature_spoofing
https://github.com/Suicide-Squirrel/issues_pie/issues/30
Q #12: The ROM is lagging and/or the device gets very hot/warm, what can I do to help fixing that?
Ensure you read and understand about the ILAPO first.
If you encounter any overheat or lagging issues follow this:
Code:
adb shell
logcat -b all -d | egrep -i "thermal|kill" > /sdcard/Download/log.txt
ps -A >> /sdcard/Download/log.txt
free -m >> /sdcard/Download/log.txt
logcat -b crash -d >> /sdcard/Download/log.txt
exit
adb pull /sdcard/Download/log.txt
Share the log.txt as an attachment of your reply (bc txt is fine for that) or - as usual - by your favorite paste service
Q #13: I have graphic glitches / issues, what can I do?
My builds using skiaGL instead of OpenGL since a while. skia is the new and faster renderer coming with pie by default but it can cause graphic glitches in some applications and/or situations.
Is there any fix for skiaGL coming? No, details here .
To check if your current ROM version is using skiaGL do this:
Code:
adb shell getprop debug.hwui.renderer
If you get an empty result it means skiaGL is active.
If for any reason you wanna go back and enforce OpenGL you can do so by
temporary (immediately activated):
Code:
adb root (must be enabled in dev options)
adb shell setprop debug.hwui.renderer opengl
or make that change persistent:
Code:
boot TWRP
backup system
mount system
adb shell
echo "debug.hwui.renderer=opengl" >> /system/build.prop
sync
reboot
.-
User recommendations to enhance the LOS experience
The following contains a list of 3rd party apps or mods to enhance the default LOS experience.
They are not tested by myself but recommended by the community for whatever reason..
If you miss something here post in the thread at least the app name, the google play store link to that app and a short description why it is that good.
Camera:
Google Cam as it has more options/settings.
Download Google Cam #1
or the trCamera_V5 port of Google Cam as recommended by Gigio755 here as finally videos are shown in gallery and you have also a lots of settings and advanced settings
Note: disable 2x and wide camera (in advanced settings) to avoid accidental touch and crashing camera app (just this)
Download Google Cam #2
Hedgecam 2 because it has tons of customization features & best in class (free app) manual video control options
Download Hedgecam 2
Launcher:
Nova Launcher because it feels more snappy
Download Nova Launcher
Keyboards:
Simple Keyboard because it is just that (a keyboard), also good for your privacy and available via F-Droid
Google Gboard because it has so many (but keep in mind: spying) features
Fleksy because I like it
Root:
Magisk because the LOS root-addon will be deprecated in LOS 17 and ofc because Magisk has so many nice features like hiding etc.
Download Magisk - only there - nowhere else!
Web Browser:
Via Browser, a very fast browser, clean UI, decently customizable. noteworthy features: 1) Back without reloading & 2) Use volume buttons to scroll.
Download Via Browser
Misc / Tools:
AnyMote for remote controlling IR devices because it seems to be the most stable and working one
Download AnyMote
Simple gallery pro (free when downloaded in F-Droid) as a replacement for the gallery app as it has a lot of customization options and feels much better
Download Simple Gallery Pro (F-Droid store, which is included in all LOS builds, free) alternative Download (Play Store, paid)
Frost for Facebook, a web based FB client, light, fast, & customizable. Allows for some extra control over notifications compared to the app (afaik) and it's also less cluttered
Download Frost for Facebook
TUNING:
Kernel Adiutor settings by User gkg2k for a faster and smoother experience: check out his great guide here
Note: I recommend to skip the RAM settings mentioned there when using build 20200324 or later. If you feel you still need those settings try it first without nevertheless .. I made a lot of improvements since that mentioned build so give it a go first.
.-
Nice. I never used UsU before, is that really necessary? I'm unlocked.
Glad we got Pie too. Hope it gets much more stable asap. Great work :good:
:highfive: can't wait, android pie plus LOS 16 is coming! Many thanks
Sent from my Samsung Galaxy S8+ using XDA Labs
Deleted
pedrogcsb said:
Nice. I never used UsU before, is that really necessary? I'm unlocked.
Click to expand...
Click to collapse
where do you read that UsU is necessary..?
.-
No builds atm ...
terema91 said:
No builds atm ...
Click to expand...
Click to collapse
dunno how i can say it more clear that this is in progress... https://i.imgur.com/bffYoNp.png
.-
No progress atm ...
terema91 said:
No progress atm ...
Click to expand...
Click to collapse
really? you must be god.
thread is closed for now as I do not have the time to feed trolls
.-
Builds are up for:
H811
H815
H815 - UsU
VS986
H812
H810
Before reporting issues ensure you have read the KNOWN ISSUES topic in the OP before
Keep in mind that this is brand new stuff so it may contain issues unknown yet!
That's why the whole project is declared as BETA - not STABLE.
It wasn't until Pie felt stable enough for everyday use that I released it publicly, but I still can't test everything on my own, so a lot of things only show up after a release.
So back up regularly and frequently.
If you find a bug, follow the instructions here and provide me with the logs: http://bit.do/logcat
.-
Does this have to be done for an LG G4 LS991 SV1? Or can I just straight up root no problem? Sorry. New to all this!
Stavinair Bluewing said:
Does this have to be done for an LG G4 LS991 SV1? Or can I just straight up root no problem? Sorry. New to all this!
Click to expand...
Click to collapse
afaik there is no SV1 for the LS991 but you really should go to the UsU thread and take the time to read first.
.,
This rom pass safetynet! Great, from time to time I have some lags but in general is fine, the performance of the battery is really good, many thanks and great work @steadfasterX
Sent from my Samsung Galaxy S8+ using XDA Labs
Just to say "thank you guys" for all this work !
Grazie mille, Merci beaucoup !
Looks great so far! I don't know why SELinux is disabled for me though... Is it because I flashed the ROM, Gapps, Magisk, then the high resolution video fix at the same time?
Edit: UI is a bit choppy (not too bad though), and app icons sometimes don't show when you're moving icons from the app drawer to your home screen for me. Also brightness slider might be a bit broken...
Sir Daniel III said:
Looks great so far! I don't know why SELinux is disabled for me though... Is it because I flashed the ROM, Gapps, Magisk, then the high resolution video fix at the same time?
Edit: UI is a bit choppy (not too bad though), and app icons sometimes don't show when you're moving icons from the app drawer to your home screen for me. Also brightness slider might be a bit broken...
Click to expand...
Click to collapse
regarding SELinux read the known issues. it is not enforcing atm.
yes the GL renderer is not optimal but you can try Pie's new default one if you like (known to have glitches)
just execute this (as root I guess)
Code:
setprop debug.hwui.renderer skiagl
That one works well for me but has sometimes in some situation graphic bugs. It will take effective immediately and will not survive a reboot (so must be set then again).
.-
Also, I have trouble backing up data via TWRP.... It says something about it unable to locate a storage device.

[ROM][magisk-based]*** GoogleWiz *** {Pixelize your OnePlus 7T pro}

***
{
"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"
}
Wiz *** Pixelize your OnePlus 7T pro
"Extreme debloat: Go where OnePlus has never gone before"
You thought that OnePlus phones were pretty stock Android? Hmmm .... think again ... there's still lots of stuff on these phones that you actually don't need (or want).
For example, did you know they have an engineering mode? Did you know that they can connect to your phone remotely? Did you know that when the phone starts up it connects to a OnePlus server in the back? Well, I don't want all that ...
In addition, there are even standard things in Android that only 0.01% of the people ever use ... for example ... tracing, android dumps, ... these things are disabled in this ROM.
Then there's bits and pieces of Qualcomm stuff that you actually do not need/want (I don't even know what they do).
This is a ROM in the form of a Magisk (thanks: @topjohnwu) module. That's great (I think). You can install it on top of the normal OnePlus software. If you don't like it or want to revert back to the "standard" OnePlus software, just remove the Magisk module and ... done!
Upfront "warning"
There are a few features which I personally do not use. When you install this module then:
- you will no longer have face unlock
- you will not have VoLTE (I have disabled this because it does not work on my carrier)
Basic requirement
(1) Your OnePlus 7T pro must be ROOTED! Without root, do not read any further as you will not be able to use this ROM. There are other threads in the OnePlus 7T Pro pro forums which explain how to root (so please don't start asking how to do this).
(2) You must also be on the latest OnePlus software: 10.0.7.HD01BA (since I own a EU model of the OnePlus 7T pro, I have ONLY tested this ROM in this device/software). It "may" work on other variants of the device ... but I don't know. I can't answer questions to that either.
(3) You must have access to ADB over USB. If you don't know what this means, stop reading, then this is not for you.
Kernel requirement
This ROM will work with the standard out-of-the-box OnePlus 7T pro kernel. However, I would strongly advice you to flash the "arter97" kernel (see https://forum.xda-developers.com/on...development/arter97-kernel-oneplus-7-t3952578). It's a fantastic kernel and this ROM has some optimizations which go very well with this kernel (don't worry, they will work on the standard kernel as well).
Download?
Interested? Start downloading the magisk module from the link below (but please read further for installation instructions !!!).
https://drive.google.com/file/d/1XpiDKFQiuFuuTBvbKMAsxMH-B9Obi-Gz/view?usp=sharing
(click on the donwload icon upper right of screen)
The link contains always the LATEST version; check the changelog in post #2 below. You can find the file size and md5sum there as well.
Changelog
See post #2 below.
History
I once owned a Galaxy S8. ***GoogleWiz*** was one one the most popular ROMs on that phone. See https://forum.xda-developers.com/ga...t/rom-googlewiz-oreo-extreme-debloat-t3750641. The difference is that I have now converted this to a Magisk module (reason: the "dynamic partitioning scheme" of Android Q makes it really hard to flash in the classical way; as you know even full TWRP functionality does currently not exist for the OnePlus 7T pro.
(Re)Using this work
Other devs, please feel free to (re)use this for your own work ... I am not asking anything from anybody, no donation, no thanks, no beer ... you don't even have to mention that you (re)use this. We are here on XDA to share and learn from eachother. If you unzip the Magisk module, you can see exactly what is inside. But ... there has been quite some work into this. It was not created in 5 minutes. But I do this as a "hobby" ... I have always rooted and customized my Android phones. So hopefully you will enjoy. Source code in post #3 (https://forum.xda-developers.com/showpost.php?p=81887167&postcount=3).
Telegram
No telegram group; I don't have time for that, so do not ask please.
Features
The ROM does NOT contain OnePlus applications! The only OnePlus applications are "Settings" and "Camera".
Nova launcher (https://play.google.com/store/apps/details?id=com.teslacoilsw.launcher)
SwiftKey keyboard (https://play.google.com/store/apps/details?id=com.touchtype.swiftkey)
Google
play services (which can be put into doze mode)
play store (https://play.google.com/store)
photos (used as gallery; but NOT integrated with camera) (https://play.google.com/store/apps/details?id=com.google.android.apps.photos)
dialer (https://play.google.com/store/apps/details?id=com.google.android.dialer) with spam detect and nearby places
contacts (https://play.google.com/store/apps/details?id=com.google.android.contacts)
messaging (https://play.google.com/store/apps/details?id=com.google.android.apps.messaging)
text-to-speech (https://play.google.com/store/apps/details?id=com.google.android.tts)
gmail (https://play.google.com/store/apps/details?id=com.google.android.gm)
keep (https://play.google.com/store/apps/details?id=com.google.android.keep)
drive (https://play.google.com/store/apps/details?id=com.google.android.apps.docs)
maps (https://play.google.com/store/apps/details?id=com.google.android.apps.maps)
chrome (https://play.google.com/store/apps/details?id=com.android.chrome)
clock (with Spotify integration) (https://play.google.com/store/apps/details?id=com.google.android.deskclock)
calendar (https://play.google.com/store/apps/details?id=com.google.android.calendar)
calculator (https://play.google.com/store/apps/details?id=com.google.android.calculator)
search app integrated with Nova search bar (https://www.google.com/search/about/)
assistant (https://www.apkmirror.com/apk/google-inc/google-assistant/)
tasks (https://play.google.com/store/apps/details?id=com.google.android.apps.tasks)
translate (https://play.google.com/store/apps/details?id=com.google.android.apps.translate)
earth (https://play.google.com/store/apps/details?id=com.google.earth)
fit (https://play.google.com/store/apps/details?id=com.google.android.apps.fitness)
now cards integrated with Nova launcher (see https://forum.xda-developers.com/showpost.php?p=75591011&postcount=4)
lens (https://play.google.com/store/apps/details?id=com.google.ar.lens)
news (https://play.google.com/store/apps/details?id=com.google.android.apps.magazines)
chromecast (aka Google home) (https://play.google.com/store/apps/details?id=com.google.android.apps.chromecast.app)
youtube (https://play.google.com/store/apps/details?id=com.google.android.youtube)
markup (https://9to5google.com/2018/03/07/android-p-dp1-markup-screenshot-editor/)
measure (https://play.google.com/store/apps/details?id=com.google.tango.measure)
weather (just type "weather" in the google search app; it will offer you to get an icon on the desktop)
android auto (Google's car mode) (https://www.android.com/auto/)
snapseed photo editor (https://play.google.com/store/apps/details?id=com.niksoftware.snapseed)
docs (https://play.google.com/store/apps/details?id=com.google.android.apps.docs.editors.docs)
slides (https://play.google.com/store/apps/details?id=com.google.android.apps.docs.editors.slides)
spreadsheets (https://play.google.com/store/apps/details?id=com.google.android.apps.docs.editors.sheets)
streetview (https://play.google.com/store/apps/details?id=com.google.android.street)
pixel icons in statusbar, quick settings tiles
pixel ringtones, notifications, UI sounds
camera2 API enabled (but I don't think this actuall does something useful)
- OnePlus bloatware removed (dialer, phone, messages, calculator, notes, gallery, zen, ...) + lots of background APKs
- OnePlus background processes (which send data to OnePlus) are disabled
- ad-free through large "hosts" file (works both for apps and web pages)
- lots of optimizations, really, *lots* of them (too many to list)
- support for init.d / services.d (see posts below if you want to use this)
- passes SafetyNet (I am using Google Pay and some Belgian NFC pay apps)
- "clean" and as close as possible to a Pixel phone
- optimized network/wifi config
- optimized touchboost (slightly faster application startup)
- optimized kernel scheduling settings
- disabled all kernel debugging/tracing
- frequency scaling throughout full CPU frequency ranges (saves battery and better performance when needed)
- disables swapping / zram (who needs this with 8GB of RAM)?
- bash shell in "su" mode (when using "adb shell")
- latest busybox (by @osm0sis)
- 1x7 icon row for quick settings, 5 icons per row when you swipe down the full quick settings
- added .xml permission files to enable Pixel exclusive features (e.g. Google dialer)
- optimized .proto, .conf, .json, .ini, .sql files in the system
- improved thumbnail quality
- dalvik VM optimized settings (for "speed")
- auto clean junk files at boot time
- optimized audio settings
- optimized camera settings (e.g. supernight mode; but personally I don't see a difference in the night pictures)
- disabled "factory" and "engineering" mode
- reduced wifi scan interval
- auto sqlite optimization at boot time (only runs every 3 days)
- support for both 2.4GHz and 5GHz wifi bonding
- speaker and headset volume boost
Installation (really IMPORTANT to read)
You must start from the 10.0.7 "standard" OnePlus 7T pro software. I suggest you do a clean install from factory reset. Strictly speaking a full reset is not needed (so you could just go and install the Magisk module on your phone) but there may be certain side effects in that case. Anyway, assuming you will do a full reset, follow the instructions below:
Go to Settings > System > Reset options > Erase all data (factory reset)
Proceed through the normal setup sequence: accept the terms and conditions of OnePlus, skip the User Experience Program, skip the System Stability Program, skip the Push Notifications, skip the Built-in App Updates, connect to your wifi network, do NOT copy apps and data, enter your google account email of phone number, enter your google password, do 2 factor authentication (if you have enabled this on your google account), if a dialog pops up with "Add your current account", do that, disable Backup to Google Drive, disable Use Location, disable Send Usage and Diagnostic Data, type NEXT to use fingerprint, enter PIN code (twice), set up 1 or more fingerprints, you see a message about Google Assistant, press NEXT, you see a message about Google Pay, press Got It, skip the Anything Else screen, choose your screen calibration, choose font (slight preference for Roboto, better compatibility with Google apps), choose Navigation bar or Gestures, press START on the Setup Complete screen, you are now in the OnePlus launcher, allow carrier location service, swipe down the notification which says: Android Setup, click on Finish Setup, copy your data if you want that, press START, system will now check for updates, let it complete, copy your data from cloud or iphone, continue until you are back in the OnePlus launcher, go to Settings > About phone, tap build number 7 times to activate developer options (if you don't know what this is, search XDA)., enter your PIN, press back arrow, go to Settings > System > Developer options, enable "Advanced reboot", disable "Automatic system updates", enable "USB debugging mode", connect your phone to a PC, a dialog will pop up to Allow USB debugging (tick "Always allow from this computer") and press ALLOW, install the LATEST Magisk Manager APK (see https://forum.xda-developers.com/apps/magisk/official-magisk-v7-universal-systemless-t3473445), push the Magisk Manager APK to your phone, e.g.
Code:
> adb push MagiskManager-v7.5.1.apk /sdcard/
open the app drawer, open the app called "Files", on the upper right, click the 3 dots, then "Show internal storage", on the upper left, click the 3 lines, select "OnePlus 7T Pro", scroll down and click on MagiskManager-v7.5.1.apk; install the app, open Magisk Manager, it will say your phone requires Additional Setup, click OK ... your phone will reboot 5 seconds later, open Play Store, select My Apps and Games, it will say that a number of updates are pending, press "Update all", exit Play Store, reopen it ... it might still say that there are pending updates, do them, activate NETFLIX ... do it NOW ... (if you first install the Magisk module, you will no longer be able to activate Netflix), push the downloaded magisk module to your phone
Code:
> adb push mm-googlewiz.zip /sdcard/
open the Magisk Manager app, press the 3 lines (top left of screen), press Modules, press + button (and allow Magisk Manager to access media), press the 3 lines top left in the file manager, select OnePlus 7T pro, scroll down and click on the mm-googlewiz.zip file, Magisk Manager will now install the module ... you will see some text output on the screen ... wait until installation is done (it will take a minute or so), press the yellow Reboot button which appears (your phone will reboot), unlock the lock screen by entering your PIN, let the ROM settle 30 secs ... it will say "Restarting" and reboot once more your phone, unlock the lock screen by entering your PIN, open the drawer, open the Settings app (will be in black mode [my personal liking] ... you can change later back to white), press Apps & Notifications, select Default Apps, press home app and select Nova Launcher, open Settings, press Apps & Notifications, select Default Apps => select "Phone app" and then select "Phone" (this is the Google phone app)
Now you will have NOVA launcher as default ... which you can customize to your liking (much better than OnePlus launcher).
Open Drawer, use the app Nova-settings to customize.
Open Drawer, click on "Nova Google Companion" => this will enable left swipe Google Now behavior in Nova launcher
Done! .... now you can further customize your phone in any way you want ...
Bootloop?
If - after installation - you should get into a bootloop then check the following thread (https://forum.xda-developers.com/7t-pro/how-to/guide-remove-magisk-modules-twrp-t3995677) for how to remove the Magisk module.
Disclaimer
I will try to support questions / feedback. I will not answer questions such as "Can you please add OnePlus feature X,Y,Z" ... I have deliberately removed them. If you want OnePlus apps, use the standard OnePlus software.. The usual applies: no warranty, installing this void warranty, install at your own risk, ... I am not responsible for soft or hard bricks. Your phone must be rooted (again).
Help ... I really don't like it ... I want to remove it ...
Stay calm. Open Magisk Manager, press the 3 lines top left on screen, press Modules, then press the trash icon next to "googlewiz" module and reboot ... you will have the standard OnePlus software again.
Removing Google apps
You can remove Google apps from the ROM as follows. Go to the following URL: https://raw.githubusercontent.com/foobar66/googlewiz/master/googlewiz.config click right and then "Save as". Save the file using "googlewiz.config" as file name. Note that this file is a LINUX plan vanilla text file. The file will look as follows:
Code:
keep=1
lens=1
news=1
assistant=1
sheets=1
snapseed=1
street=1
home=1
measure=1
fit=1
tasks=1
earth=1
slides=1
clock=1
calculator=1
docs=1
Edit the file and put "xyz=0" for Google apps that you do NOT want to install. Above is respectively for Google {Keep, Lens, News, Assistant, Sheets, Snapseed, Streetview, Home, Measure, Fit, Tasks, Earth, Slides, Clock, Calculator, Docs}. Put the file onto your sdcard, e.g. via adb ("adb push googlewiz.config /sdcard/"). Download today's version ([version: 2020-03-30 18:28]) of the module (or later). Re-install the module via Magisk manager and reboot. You will see debug output on the screen during module installation which Google apps are getting removed.
Credits
@topjohnwu, @osm0sis, @Zackptg5, @DeadmanxXD, @arter97
Changelog
[version: 2020-02-28 17:28]
Initial version
File size: 877404687, MD5: 038c3285a68e2be5421dc1a3eb2d041e
[version: 2020-03-01 08:34]
- fix some permissions in system/xbin files
- updated com.google.android.apps.docs.editors.sheets
- updated com.google.android.apps.turbo
File size: 881052548, MD5: 7fed9105aaba0bb1def6ca145527ea4d
[version: 2020-03-01 10:54]
- use original APN files
- update com.google.android.apps.docs.editors.sheets
File size: 881149942, MD5: 93d54a90fef970d7250723895b7c6cec
[version: 2020-03-11 18:46]
- small bug fixes
- upgraded a number of Google apps to latest version
File size: 898125981, MD5: 4b82cff7e572da635f6ca252ec54f58f
[version: 2020-03-30 18:28]
- updates to Google apps
- supports configuration file /sdcard/googlewiz.config
File size: 898132639, MD5: 1bcfa989673f3e59a378243306dc3d94
[2020-04-30 07:09]
- updated to Google apps
- update to latest OnePlus camera
- added Android Auto phone screen
File size: 963547129, MD5: 67a5057d0e882ec38b7e5101c8d0bbe7
How was this Magisk module created?
Actually the Magisk module is generated by a bash script (I use linux) starting from the original OnePlus software zips.
The script is attached to this thread. Download the zip file attached and then rename the file by removing the ".zip" extention). You will have a plain Linux bash shell script file. No secrets. Sharing all in the open (which I believe should be the spirit of XDA).
Reuse as you like ...
Source code
Feel free to (re)use ... no secrets, no hidden stuff, no need to thanks, no need to donate ...
https://github.com/foobar66/googlewiz
My only request ... if you make an interesting improvement, please share with the community so we all can benefit from it!
Misc stuff
a) How do you debloat? Well ... there are different ways.
- some init.rc files are not needed, the Magisk module bind-mounts "empty" files over the original ones so they do not run
- OnePlus APKs are "debloated" by bind-mounting an "empty" APK over them; Android will no longer recognize them as valid applications
- some background processes are not needed, they are "debloated" by bind-mounting empty files over the executables in /system/bin
Unzip the Magisk module, look at the file called "service.sh" and you will understand how this is done (partly).
Check out the previous post where you can find the bash shell script which I use to "generate" the Magisk module.
b) Debug info
To see what the module has done during boot, there is a dedicated log file /data/googlewiz/googlewiz.log, do:
Code:
> adb shell
$ su
# cat /data/googlewiz/googlewiz.log
c) Logging of init.d and services.d scripts. Init.d scripts run immediately together with Android boot. services.d scripts run once /sdcard is mounted. To see the debug output do:
Code:
> adb shell
$ su
# cat /data/LS00*
# cat /data/LS99*
d) You talk about "bloatware" ... what is actually "removed"?
Code:
./system/vendor/app/com.qualcomm.qti.improvetouch.service/com.qualcomm.qti.improvetouch.service.apk
./system/vendor/app/PowerOffAlarm/PowerOffAlarm.apk
./system/vendor/app/CACertService/CACertService.apk
./system/vendor/app/CneApp/CneApp.apk
./system/vendor/app/IWlanService/IWlanService.apk
./system/vendor/app/pasrservice/pasrservice.apk
./system/product/app/remotesimlockservice/remotesimlockservice.apk
./system/product/app/SimSettings/SimSettings.apk
./system/product/app/Duo/Duo.apk
./system/product/app/QdcmFF/QdcmFF.apk
./system/product/app/OPCarrierLocation/OPCarrierLocation.apk
./system/product/app/datastatusnotification/datastatusnotification.apk
./system/product/app/embms/embms.apk
./system/product/app/GoogleLocationHistory/GoogleLocationHistory.apk
./system/product/app/uceShimService/uceShimService.apk
./system/product/app/Music2/Music2.apk
./system/product/app/imssettings/imssettings.apk
./system/product/app/PerformanceMode/PerformanceMode.apk
./system/product/app/uimgbaservice/uimgbaservice.apk
./system/product/app/TTS/TTS.apk
./system/product/app/talkback/talkback.apk
./system/product/app/Videos/Videos.apk
./system/product/app/uimlpaservice/uimlpaservice.apk
./system/product/app/DynamicDDSService/DynamicDDSService.apk
./system/product/app/uimremoteclient/uimremoteclient.apk
./system/product/app/com.qualcomm.qti.services.secureui/com.qualcomm.qti.services.secureui.apk
./system/product/app/LatinImeGoogle/LatinImeGoogle.apk
./system/product/app/DeviceInfo/DeviceInfo.apk
./system/product/app/CallFeaturesSetting/CallFeaturesSetting.apk
./system/product/app/TmoEngMode/TmoEngMode.apk
./system/product/app/ConfURIDialer/ConfURIDialer.apk
./system/product/app/uimremoteserver/uimremoteserver.apk
./system/product/app/colorservice/colorservice.apk
./system/product/app/remoteSimLockAuthentication/remoteSimLockAuthentication.apk
./system/product/priv-app/GoogleFeedback/GoogleFeedback.apk
./system/product/priv-app/StorageManager/StorageManager.apk
./system/product/priv-app/GoogleRestore/GoogleRestore.apk
./system/product/priv-app/CarrierConfig/CarrierConfig.apk
./system/product/priv-app/OPAppLocker/OPAppLocker.apk
./system/product/priv-app/GooglePartnerSetup/GooglePartnerSetup.apk
./system/product/priv-app/daxService/daxService.apk
./system/product/priv-app/dpmserviceapp/dpmserviceapp.apk
./system/product/priv-app/seccamservice/seccamservice.apk
./system/product/priv-app/QAS_DVC_MSP/QAS_DVC_MSP.apk
./system/product/priv-app/WallpaperCropper/WallpaperCropper.apk
./system/product/priv-app/AndroidAutoStub/AndroidAutoStub.apk
./system/product/priv-app/ims/ims.apk
./system/product/priv-app/ConfigUpdater/ConfigUpdater.apk
./system/app/OPAppUpgrader/OPAppUpgrader.apk
./system/app/OPLiveWallpaper/OPLiveWallpaper.apk
./system/app/OPBugReportLite/OPBugReportLite.apk
./system/app/OPFilemanager/OPFilemanager.apk
./system/app/DeskClock/DeskClock.apk
./system/app/BuiltInPrintService/BuiltInPrintService.apk
./system/app/NVBackupUI/NVBackupUI.apk
./system/app/GooglePrintRecommendationService/GooglePrintRecommendationService.apk
./system/app/OPBreathMode/OPBreathMode.apk
./system/app/OPSoundTuner/OPSoundTuner.apk
./system/app/SimAppDialog/SimAppDialog.apk
./system/app/WapiCertManage/WapiCertManage.apk
./system/app/EngSpecialTest/EngSpecialTest.apk
./system/app/Backup/Backup.apk
./system/app/Traceur/Traceur.apk
./system/app/PacProcessor/PacProcessor.apk
./system/app/CarrierDefaultApp/CarrierDefaultApp.apk
./system/app/OPScreenRecord/OPScreenRecord.apk
./system/app/CompanionDeviceManager/CompanionDeviceManager.apk
./system/app/OPMmsLocationFramework/OPMmsLocationFramework.apk
./system/app/SmscPlugger/SmscPlugger.apk
./system/app/OPGamingSpace/OPGamingSpace.apk
./system/app/OPBackup/OPBackup.apk
./system/app/BasicDreams/BasicDreams.apk
./system/app/OemAutoTestServer/OemAutoTestServer.apk
./system/app/ARCore_stub/ARCore_stub.apk
./system/app/EngineeringMode/EngineeringMode.apk
./system/app/SoterService/SoterService.apk
./system/app/OPIntelliService/OPIntelliService.apk
./system/app/PartnerBookmarksProvider/PartnerBookmarksProvider.apk
./system/app/OPGeoIpTime/OPGeoIpTime.apk
./system/app/WAPPushManager/WAPPushManager.apk
./system/app/oem_tcma/oem_tcma.apk
./system/app/SensorTestTool/SensorTestTool.apk
./system/app/WifiRfTestApk/WifiRfTestApk.apk
./system/app/BackupRestoreRemoteService/BackupRestoreRemoteService.apk
./system/app/SdCardService/SdCardService.apk
./system/app/BookmarkProvider/BookmarkProvider.apk
./system/app/PhotosOnline/PhotosOnline.apk
./system/app/OPPush/OPPush.apk
./system/app/QColor/QColor.apk
./system/app/Calculator/Calculator.apk
./system/app/AntHalService/AntHalService.apk
./system/app/WallpaperBackup/WallpaperBackup.apk
./system/app/CtsShimPrebuilt/CtsShimPrebuilt.apk
./system/app/OEMLogKit/OEMLogKit.apk
./system/app/OPCommonLogTool/OPCommonLogTool.apk
./system/app/PlayAutoInstallConfig/PlayAutoInstallConfig.apk
./system/app/LiveWallpapersPicker/LiveWallpapersPicker.apk
./system/app/BluetoothMidiService/BluetoothMidiService.apk
./system/app/Rftoolkit/Rftoolkit.apk
./system/app/EasterEgg_O2/EasterEgg_O2.apk
./system/app/HTMLViewer/HTMLViewer.apk
./system/app/OPWallpaperResources/OPWallpaperResources.apk
./system/app/Netflix_Stub/Netflix_Stub.apk
./system/app/BTtestmode/BTtestmode.apk
./system/app/OPTelephonyDiagnoseManager/OPTelephonyDiagnoseManager.apk
./system/app/OPSesAuthentication/OPSesAuthentication.apk
./system/app/LogKitSdService/LogKitSdService.apk
./system/app/Netflix_Activation/Netflix_Activation.apk
./system/app/NFCTestMode/NFCTestMode.apk
./system/priv-app/Houston/Houston.apk
./system/priv-app/OPMms/OPMms.apk
./system/priv-app/InputDevices/InputDevices.apk
./system/priv-app/ProxyHandler/ProxyHandler.apk
./system/priv-app/DynamicSystemInstallationService/DynamicSystemInstallationService.apk
./system/priv-app/OPAppCategoryProvider/OPAppCategoryProvider.apk
./system/priv-app/OPCellBroadcastReceiver/OPCellBroadcastReceiver.apk
./system/priv-app/OPFaceUnlock/OPFaceUnlock.apk
./system/priv-app/LocalTransport/LocalTransport.apk
./system/priv-app/Contacts/Contacts.apk
./system/priv-app/HotwordEnrollmentOKGoogleWCD9340/HotwordEnrollmentOKGoogleWCD9340.apk
./system/priv-app/ONS/ONS.apk
./system/priv-app/ManagedProvisioning/ManagedProvisioning.apk
./system/priv-app/TagGoogle/TagGoogle.apk
./system/priv-app/RcsSDK/RcsSDK.apk
./system/priv-app/CallLogBackup/CallLogBackup.apk
./system/priv-app/OnePlusGallery/OnePlusGallery.apk
./system/priv-app/OPDeviceManager/OPDeviceManager.apk
./system/priv-app/WfdService/WfdService.apk
./system/priv-app/OPDeviceManagerProvider/OPDeviceManagerProvider.apk
./system/priv-app/CtsShimPrivPrebuilt/CtsShimPrivPrebuilt.apk
./system/priv-app/IFAAService/IFAAService.apk
./system/priv-app/SharedStorageBackup/SharedStorageBackup.apk
./system/priv-app/HotwordEnrollmentXGoogleWCD9340/HotwordEnrollmentXGoogleWCD9340.apk
./system/priv-app/MmsService/MmsService.apk
./system/priv-app/EmergencyInfo/EmergencyInfo.apk
./system/priv-app/BackupRestoreConfirmation/BackupRestoreConfirmation.apk
./system/priv-app/Dialer/Dialer.apk
./system/priv-app/OPSimContacts/OPSimContacts.apk
d) Which /etc/init scripts are disabled?
Code:
system/etc/init/tombstoned.rc
system/etc/init/perfetto.rc
system/etc/init/atrace.rc
system/etc/init/bluetooth-events.rc
system/etc/init/[email protected]
system/etc/init/perfservice.rc
system/etc/init/heapprofd.rc
system/etc/init/dumpstate.rc
system/etc/init/sarahd.rc
system/etc/init/incidentd.rc
system/etc/init/traceur.rc
system/etc/init/iorapd.rc
system/etc/init/bootstat.rc
system/etc/init/mdnsd.rc
system/etc/init/uncrypt.rc
system/etc/init/engineermode.rc
system/etc/init/recovery-persist.rc
system/etc/init/caffed.rc
system/etc/init/update_verifier.rc
system/etc/init/rss_hwm_reset.rc
system/etc/init/wfdservice.rc
system/etc/init/update_engine.rc
system/etc/init/recovery-refresh.rc
system/etc/init/flags_health_check.rc
system/etc/init/statsd.rc
e) If you want to have full "black", use Substratum (https://play.google.com/store/apps/details?id=projekt.substratum) and the Swift Black theme (https://play.google.com/store/apps/details?id=com.brit.swiftblack.layers). That will allow you to mod all the Google apps (and others) into full black mode.
f) "adb logcat" does not seem to move ... correct, to re-enable it do:
Code:
> adb shell
$ su
# setprop log.tag I
i use face unlock...
yenkoPR said:
i use face unlock...
Click to expand...
Click to collapse
Good for you, stick with OnePlus standard software.
Nice one might give this a blast later thanks op?
Ok what have I done wrong lol ?
jaythenut said:
Ok what have I done wrong lol ?
Click to expand...
Click to collapse
You downloaded from: https://mega.nz/#!2BZSiCwR!A4VQ6ZhSr...Sd_8F5W8Njb5Sg
I downloaded and it installs fine for me (just to be sure I was not using a local copy) ... it installs fine for me.
Check the md5 sum if you know how to do that: 3fb9c987cbe94874471c7c699e65d8a1
foobar66 said:
You downloaded from: https://mega.nz/#!2BZSiCwR!A4VQ6ZhSr...Sd_8F5W8Njb5Sg
I downloaded and it installs fine for me (just to be sure I was not using a local copy) ... it installs fine for me.
Check the md5 sum if you know how to do that: 3fb9c987cbe94874471c7c699e65d8a1
Click to expand...
Click to collapse
Asking for decryption key ?
jaythenut said:
Asking for decryption key
Click to expand...
Click to collapse
Weird ... that is the first time I see mega doing this ...
I will upload to a different cloud storage ... please wait a few mins ...
Edit: uploading to my Google drive ... will take 30 mins ...
Edit: OK ... file is uploaded to Google drive, please use following link:
https://drive.google.com/file/d/1XpiDKFQiuFuuTBvbKMAsxMH-B9Obi-Gz/view?usp=sharing
(click on the donwload icon upper right of screen)
File size: 877404687, MD5: 038c3285a68e2be5421dc1a3eb2d041e
I will update OP as well.
Can I 'dirty install' over the latest global stock ROM (already rooted with Magisk)?
Is the stock call recorder activated on this ROM?
Also, any possibility of working V4A being bundled in with this ROM? (I had no luck via the adb method).
Many thanks.
elmor0 said:
Can I 'dirty install' over the latest global stock ROM (already rooted with Magisk)?
Click to expand...
Click to collapse
Is the stock call recorder activated on this ROM?
Also, any possibility of working V4A being bundled in with this ROM? (I had no luck via the adb method).
Many thanks.[/QUOTE]
Dirty install should be possible.
ROM uses the Google dialer, so no call recording for now.
V4A ... never tried it so far, I would need to investigate ... try to find a Magisk module for it (not sure if that exists).
Done a dirty flash all seems to be working fine so far ?
Hi, thx for your work. Sadly for me its not working. Going to endless boot. Followed every Step. Sadly I didnt realize that I have Netflix installed wich was not Active and now even after removing the Modules it Says not Compatible with my Device....My Vault... Is there a Workaround for this?
Iam on Hd 1.0.0.7 AB
Edit: got it fixed with Netflix but even after full reset Iam not able to boot this Module
iceraum said:
Hi, thx for your work. Sadly for me its not working. Going to endless boot. Followed every Step. Sadly I didnt realize that I have Netflix installed wich was not Active and now even after removing the Modules it Says not Compatible with my Device....My Vault... Is there a Workaround for this?
Iam on Hd 1.0.0.7 AB
Edit: got it fixed with Netflix but even after full reset Iam not able to boot this Module
Click to expand...
Click to collapse
Did you have any other Magiks modules active when you tried to install this one?
foobar66 said:
Did you have any other Magiks modules active when you tried to install this one?
Click to expand...
Click to collapse
No. Just Clean new Install after Factory reset.
can i use this rom for op7p ?
and one question. hows swipe to home animation doing here? i've tried nova launcher on stock rom but swipe to home doesnt work properly and i the app icon doesn't collapse nicely
Dark Fear said:
can i use this rom for op7p ?
and one question. hows swipe to home animation doing here? i've tried nova launcher on stock rom but swipe to home doesnt work properly and i the app icon doesn't collapse nicely
Click to expand...
Click to collapse
I don't know it if will work for op7p ... try ...
Swipe to home works fine for me on OnePlus 7T pro
iceraum said:
No. Just Clean new Install after Factory reset.
Click to expand...
Click to collapse
Which country are you in? Just realize that I might have copied the wrong APN file ... (but not sure this is why it does not work in your case).
I am uploading a new version with the original APN files ... please wait a bit.
Edit: new version available (use original download link).

Categories

Resources