"Roll your own" SKINNY MIUI - Revised 09/04/16

Do you retain MIUI Home Launcher?

  • Yes

    Votes: 62 55.9%
  • No

    Votes: 49 44.1%

  • Total voters
    111
Search This thread

jajk

Senior Member
Jul 18, 2014
1,533
1,651
Skinny MIUI is all about preserving the good; Working premium drivers for Camera, CPU control, Notification LEDs, Bluetooth, FM Radio etc. while resolving what is bad in the stock offering.
All deletions assume the user has absolutely no interest in being part of the Xiaomi ecosphere. Leave now if that is not you.
This guide applies to MIUI stable versions 7.1.1 thru to 7.2.5 only. Developer, Beta or Eng versions are not good candidates.

STAGE 1:
Boot.img mods: (this is not creating a custom kernel!!!)

The stock boot.img is unpacked, init.d support added and many entries that are not relevant to our hardware removed.
Disabling lines trying to load non-existent services from init.rc, init.mt6795.rc and ueventd.rc etc. stops a bit of churning on each and every boot and frees up a bit of RAM.
There are intentionally no other tweaks contained within the boot.img. All tweaks are done in init.d scripts accessible outside the boot.img.
Note: This boot image made from 7.1.4 will work back to ver 7.1.1 and forward to 7.2.50 / 6.3.31 and is superior to the stock boot images contained in those ROMs.
At this point you can flash the modified boot.img to your phone if you already have a stock MIUI 7.1.1 to 7.2.50 installation that you are going to keep.
If you are going to do a clean install, replace the boot.img in your ROM zip file with this modified one. (backup the original first)

The boot.img is found here: (Now links to folder with all versions available)
https://drive.google.com/folderview?id=0BwdRTuyj12_yRk9Kcm1pZkxuZzg&usp=sharing
 
Last edited:

jajk

Senior Member
Jul 18, 2014
1,533
1,651
STAGE 2:
Full install:
I recommend you install my TWRP 3.02-2 version from here:
https://drive.google.com/open?id=0BwdRTuyj12_yWWp0SUpGV1pzT1k

Before installing your chosen ROM:
Check that the updater script found: \META-INF\com\google\android\updater-script is not going to install Preloader, Uboot (lk), Recovery or logo partitions. If so, edit the updater-script to prevent this happening. This is to reduce the risk of a soft-brick or being locked out of your phone.
Do a factory reset in TWRP (wipe Data, Dalvik, Cache) before installing any ROM.

Install your chosen ROM. Trying to slim down the ROM before install is an arduous affair which tends to end in bootloops so we leave the original ROM alone in this respect..
Do the install without connecting to mobile or WiFi networks and just skip at screens prompting for network connectivity and creating accounts.
Reboot into TWRP once finished with the initial Setup to avoid Recovery from being deleted on first boot.
Install an updated SuperSU zip package from TWRP recovery - V2.46 to 2.71 work equally well.
Do not install a root package other than SuperSU - most online ones are malware!
Update the outdated and incomplete Busybox installation. I have created a TWRP flashable zip to upgrade to the latest version 1.25.0. This is the second edition which has better binaries and no longer creates symlinks to busybox commands.
https://drive.google.com/open?id=0BwdRTuyj12_yd0s1QmNLRzdveFk
Now install a root capable filemanager (Root Explorer or Total Commander recommended). Open it and gain root permissions. Open /etc/perfservscntbl.txt in a text editor and edit as follows:

Code:
CMD_SET_CPU_FREQ, SCN_APP_TOUCH, 403000
CMD_SET_CPU_CORE, SCN_APP_TOUCH, 1

This will lower the number of cores used and the frequency at which it runs when a screen touch is detected (referred to as Touch Boost) Changes are activated on reboot.

Now create a file named 01_tweaks in the /etc/init.d folder. Change the permission of the file to 0755
Tips on creating scripts:
  • The EOL(end-of-line) characters must be in Unix format - not Windows. Make sure you are using a text editor that saves in Unix format.
  • Note also that many script files need a blank line at the end to work correctly. Get in the habit of always doing this whether needed or not.
  • Any line starting with a # character and anything after a # character on a line is not processed and is referred to as "commented out"
  • Script files must start with the header #!/system/bin/sh as the first line.
  • Init.d scripts are processed in alpha-numeric filename order hence the common usage of 01_xxx, 02_xxx format for names.

Copy these lines into the 01_tweaks file: Note: Different values for 2.2GHz cpu and freq limited operation.

Code:
#!/system/bin/sh

### Tweak Interactive CPU Governor
echo 806000 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
echo 85 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
echo "90 403000:80 806000:85 1326000:90 1625000:95 1950000:99" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
echo 32000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
echo 10000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
echo 15000 > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
echo 20000 > /sys/devices/system/cpu/cpufreq/interactive/timer_slack

### Tweak IO Scheduler
echo deadline > /sys/block/mmcblk0/queue/scheduler ### choose between cfq, bfq or deadline
### Enable this line if using cfq or bfq scheduler only
# echo 0 > /sys/block/mmcblk0/queue/iosched/slice_idle
echo 256 > /sys/block/mmcblk0/queue/read_ahead_kb

### Enable zram swap
# echo 1073741824 > /sys/block/zram0/disksize ### 536870912 = 512MB 1073741824 = 1GB
# /system/bin/tiny_mkswap /dev/block/zram0
# /system/bin/tiny_swapon /dev/block/zram0

### Tweak Entropy to avoid regular depletion of available pool
echo 512 > /proc/sys/kernel/random/read_wakeup_threshold
echo 1024 > /proc/sys/kernel/random/write_wakeup_threshold

#Tweak for wifi router connection issues
#echo 1 > /proc/sys/net/ipv6/conf/wlan0/disable_ipv6

### FSTRIM: Enable once after installation is finalized and then monthly ##### needs an updated busybox installation to work
# busybox fstrim /data
# busybox fstrim /cache
# busybox fstrim /system
Options: Add / replace lines to do the following:

1. freq limit a 2GHz cpu to 1781MHz (recommended setting)

echo "90 403000:80 806000:85 1326000:90 1625000:95 1781000:99" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
echo 1781000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 1781000 > /proc/cpufreq/cpufreq_limited_max_freq_by_user

2. Full speed 2.2GHz cpu


echo "90 403000:80 806000:85 1326000:90 1664000:95 2158000:99" > /sys/devices/system/cpu/cpufreq/interactive/target_loads

3. freq limit a 2.2GHz cpu to 1885MHz (recommended setting)

echo "90 403000:80 806000:85 1326000:90 1664000:95 1885000:99" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
echo 1885000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 1885000 > /proc/cpufreq/cpufreq_limited_max_freq_by_user

4. Add a limit to the maximum number of cpu cores allowed to come online (for possible battery saving maybe...)

#Limit max cpu cores available (range 2 - 8)
echo 4 > /proc/hps/num_limit_low_batt
echo 4 > /proc/hps/num_limit_power_serv
echo 4 > /proc/hps/num_limit_thermal
echo 4 > /proc/hps/num_limit_ultra_power_saving


Edit /system/build.prop. Change the line: ro.sf.lcd_density from the default 480 to a value between 400 (everything smaller, more on screen) to 520 (everything larger, less on screen) to suit your taste and eyesight. You can test this out first by issuing the wm density command in a terminal app. e.g wm density 440 will immediately change the density to 440dpi, wm density reset will put it back to whatever the build.prop setting is. Adjust the text size in Settings in conjunction with this to get the best result.

At this point you have a functional set of tweaks that are all tested and proven to provide a battery and performance improvement. There are a lot of detrimental or placebo tweaks out there so be a little bit discerning in what else you add to these tweaks - sometimes less is more. Now is not the time to load up those tweaks!

Do a TWRP backup of System, Data, Boot and NVram partition now to save your efforts up to this point.
 
Last edited:

jajk

Senior Member
Jul 18, 2014
1,533
1,651
STAGE 3:
Now its time to get Skinny: You will need an app that can uninstall and freeze system apps. I use SD Maids App Control feature for this purpose.

Warning: If you intend to use app lock, you will unfortunately need to keep some fingerprint service files. See the post below and a few before it to understand the problem. Thanks to @DarthJabba9 for his work.
I believe that app lock also disables MIUI Optimization if enabled.
http://forum.xda-developers.com/showpost.php?p=67242356&postcount=583

First phase is to get rid of the obvious bloat apps and Xiaomi in-house apps....these in the list below are safe to remove.
Tick off what you have removed and reboot each 10 or so deletions and backup, don't try to delete everything in one hit as you will end up stuck at boot.
WARNING: This removes some functionality that may be useful to some users. You either want the function or you don't - it is your finger pressing the buttons!
Some people may choose to keep the MIUI Home Launcher interface. In this case, keep MIUI Wallpaper as well.

Must keep these - Do not delete:
Updater - disable autostarts, do not freeze
Theme Manager - disable autostarts
Security (com.miui.securitycenter) - leave as-is
FwkPlugin
Network Assistant app
MiuiSDK - disable autostarts
AuthManager
Webview (update via Playstore once install finished)
Xiaomi service framework - disable autostarts, freeze app

Definitely O.K to delete list:

Wallpaper Apps:
Android Live Wallpapers
Black Hole
Bubbles
com.android.wallpaper.holospiral
Live Wallpaper Picker
Music Visualization Wallpapers
Phase Beam
Photo Screensavers
*Miui MiWallpaper * keep if also keeping MIUI Home Launcher.

Xiaomi/MTK Apps:
Analytics
Assistant
Back up Home screen layout (cloud backup)
Backup - delete if you don't use it (use TWRP instead)
Battery Warning - deleting this does not affect battery charging or display
Battery Saver - deleting this improves battery life
Blocklist (AntiSpam) - delete if you don't use it
com.miui.mipub
File Explorer - delete (you should already have a root capable file browser)
Find device - use the generic Google version if you really must, not the Xiaomi one supplied.
FingerprintService
FPCSensorTestTool
FTPreCheck
FWUpgrade
gallery (com.mfashiongallery.emag daily wallpapers)
Games
Home screen
JeejenMIUIContainer
com.securitycore.miui_t (Tencent virus scanner plugin to Security Center)
KLO Bug report
LocationEM2
Metok
MI Account
Mi Cloud
Mi Credit
Mi Drop
Mi Home
MI Service Security Framework
Mi VIP
Mi Voice
Mi Wallet
Miravision
MTKAndroidSuiteDaemon
MtkFloatMenu
MTKLogger
Music
MusicFx
Notes - if you don't use it, delete it.
PowerKeeper (Battery Saver) - deleting this improves battery life
Report Bug
Security service plugin (not securitycenter app)
SystemAd
System Launcher (Miui Home) replace with an alternative Launcher, allow autostart in Security first then delete. ADW Launcher recommended for lightweight and simple functionality (set to 4x6 looks good).
Traffic Control
Uniplay
UpgradeSys
VCalendar
Video
Voice Unlock
VoiceAssist
Weather
Weather provider
Whetstone delete app and delete folder /etc/WhetstonePermission ****Whetstone is linked with several other apps to make it hard to get rid of. It may cause some temporary FC issues - these will pass.
Xiaomi Assistant
Yellow Pages
com.jeejen.knowledge
com.jeejen.store
com.ximalaya.ting.android
com.xiaomi pass
com.xiaomi.o2o
com.xiaomi.jr
Cheetah Mobile CleanMaster SDK + Cleaner - delete
NetworkLocation (com.baidu.map.location) delete app, delete folder: /system/vendor/operator and delete corpses

Android/Google Apps:
Browser - suggest replace with Polarity Browser - minimal permissions required, Ad Blocking, lightweight and fast
Documents
Google Keyboard - replace with something lighter - Hackers Keyboard v1.38.2 recommended
Google Pinyin input
Google Feedback
Google partnersetup
HTML Viewer
Email
Mail
Pico TTS
Print Spooler
com.android.browser.provider
PacProcessor

Note: If you have apps reappear as if by magic, they are being reconstructed from cached information. SD Maid has an excellent "Corpse Finder" function that will delete the orphaned files and prevent this happening. Clear corpses after each reboot.

Second phase is to toggle off the autostarts (receivers) on the apps that do not need to start by default. This is not the same as freezing an app. Some apps will still start by themselves - do not worry too much about this.

Atci_service
Backup
Blocklist
com.mediatek.batterywarning
Download Manager
Google Contacts Sync
Google One Time Init
MIUI SDK (don't freeze)
MTK NLP Service
Notes
One Time Init
Sim Toolkit
Themes (Theme Manager)
Updater
Xiaomi service framework (should also be frozen)

Third phase is to clean up left behind folders and files

/data/miui/app/customized/ remove any app folders that you have uninstalled
/data/miui/app/noncustomized/ remove any app folders that you have uninstalled
delete folder /data/miui/mms
delete folder /data/miui/gallery
delete contents of /data/miui/cust
delete folder /etc/jeejen
delete etc/voicecommand and etc/voiceextension folders if you have removed voice related apps
delete /system/tts folder if you have removed Pico TTS
delete folder /system/etc/radv
/etc/fake_cdrom_install.iso - delete file
/etc/IAmCdRom.iso - delete file
/system/addon.d delete folder
/system/app/jjcontainer/ - delete folder
/system/app/jjhome/ - delete folder
/system/app/jjknowledge/ - delete folder
/system/app/jjstore/ - delete folder

Libs you can remove:
/vendor/lib
libfingerprint_tac.so
libfpcalgorithm.so

/vendor/lib64

libcom_fingerprints_productiontestmanager.so
libcom_fingerprints_sensor.so
libfingerprint_tac.so

/system/lib
libcaFingerPrintShared.so
libcom_fingerprints_service.so
libfamily_jni.so
libjeejenAisound.so
libjeejenmsc.so
libMiraVision_jni.so (if deleted MiraVision App)
libpatcher_game_jni
libvoicerecognition.so (if voice recognition apps deleted)
libvoicerecognition_jni.so (if voice recognition apps deleted)
libweibosdkcore.so
libwhetstone_jni.so (if deleted Whetstone App)
libwhetstone_sdk.so (if deleted Whetstone App)
libxiaomimediaplayer.so (if xiaomi media player deleted)
libxiaomimediaplayerwrapper.so (if xiaomi media player deleted)

/system/lib64
libairtunes_jni.so
libairtunes.so
libBankCardRecognizer.so
libcaFingerPrintShared.so
libcom_fingerprints_service.so
libduokantext.so
libjni_latinimegoogle.so (if deleted Google keyboard)
libjni_pacprocessor.so (if deleted PacProcessor)
libMiraVision_jni.so (if deleted MiraVision App)
libpatcher_game_jni.so
libttspico.so
libweibosdkcore.so
libwhetstone_jni.so (if deleted Whetstone App)
libwhetstone_sdk.so (if deleted Whetstone App)
libxmpass_sdk_patcher.so
xmpass_libweibosdkcore.so

Establish network connectivity.
If Gapps is required but not installed, download open_gapps-arm64-5.0-pico version. You can install individual extra Google apps at any stage later on.
Go through all MIUI Settings and turn off everything you do not need running.
Install your favorite media player, web browser etc. to replace the deleted original apps.

Can replace Calendar and Messenger with Google Calendar and Google Messenger to remove some more Xiaomi dependencies. Contacts & Dialer are much harder to replace - True Phone is the only viable option.
To further limit Xiaomi unsolicited communications, rename (or delete) /system/xbin/tunman to tunmanbak. (This is a tunneling protocol driver that Xiaomi uses without your knowledge or permission).
The startup is disabled in the boot.img but it can still be started after boot unless renamed.

To skinny the Themes footprint:
Go to /system/media/theme/
Delete elder-default folder if no use.
Delete entire contents of miui_mod_icons folder
Delete items in /system/media/theme/default/ that are not going to be used.
Delete items in /system/media/lockscreen/ and /system/media/wallpaper/ that are not going to be used.

Now install your favorite app for monitoring CPU parameters and make sure that on idle, there is only one cpu core running and it sits predominantly on 403MHz. It will jump a little bit but that is normal with the inevitable background activities. Increase the timer_rate if you want more stability at idle rather than cranking up the load figures too far. Up to 50000 or down to 30000 is O.K (remember we are talking microseconds here so 50000 = 50mS)

Congratulations! You now you have a "Super Skinny" MIUI installation. Do a backup now!!!!

Now you will feel the AOSP shining through - and still you have working everything!
 
Last edited:

jajk

Senior Member
Jul 18, 2014
1,533
1,651
This post will list useful tools and items that need further investigation.
Apps for finding and disabling things:
Wakelock Detector-Root - monitor and records wakelock activity
GSAM - monitors what apps / services are consuming battery
Disable Service - disable services started on an app by app basis
SD Maid, Titanium Backup - Freeze / remove apps, toggle autostarts (receivers)

Modify your quick start grid size:
https://drive.google.com/file/d/0BwdRTuyj12_yYlphU3A0UWprcXc/view?usp=sharing

Modify MIUI Homescreen grid:
https://mega.nz/#F!yJdkxbBa!WSIqrhwUQwD7qjzxOuo1Yw

Issues:
Find a way to completely disable XMPush service with and without Xiaomi services framework installed.
Xiaomi Services Framework causes Sim connectivity issues if deleted - do not delete. There will always be one XMPush instance running.

Find out what is causing Audio On wakelock reported by GSAM
Quote: Originally Posted by DarthJabba9
With regard to the "Audio On" wakelock (aka AudioMix Wakelock) reported bt GSAM, I found this somewhere in this forum: "The nexus 6 had the same wakelock and most of us got rid of it by unchecking "use NuPlayer" in developer options". I have now unchecked that option, and will see over the next day or so whether it resolves the problem. This appears to be the fix


What triggers no sim / no service errors
Removing Xiaomi Services Framework is the culprit

Why do some files / folders not show up in root filemanagers?
MIUI locks the files / folders to prevent them being used or shown.

Why does zram not work anymore?
Rename tiny_mkswap, tiny_swapon, tiny_swapoff to teeny_mkswap, teeny_swapon, teeny_swapoff
Make sure owner is root shell and permissions are 0755 for all 3 files.
edit the init.d script to reflect the change in filenames. Now it will work again!
 
Last edited:

jajk

Senior Member
Jul 18, 2014
1,533
1,651
Example full Skinny ROM based on MR7.2.30 ID:
This is how my phone is set up, it has 100% functionality, zero FCs and zero battery drain on idle. The init.d settings are exactly as provided. Compare the directory listings to your own to see what is deleted.
The other major variation to this is for people who want to keep MIUI Launcher (and MIUI Wallpaper), everything else should remain the same. This cost you a bit more RAM usage and slightly more cpu activity (less battery) but is still impressive compared to stock.

/system/app
ApplicationsProvider
AtciService
AutoDialer
BSPTelephonyDevTool
Bluetooth
CaptivePortalLogin
CertInstaller
DeskClock
DownloadProviderUi
DrmProvider
EngineerMode
EngineerModeSim
FM
GoogleCalendarSyncAdapter
GoogleContactsSyncAdapter
KeyChain
MTKThermalManager
MiuiCompass
NetworkAssistant2
NlpService
Omacp
PackageInstaller
Provision
SuperSU
SystemHelper
ThemeManager
Updater
UserDictionaryProvider
WebViewGoogle
XiaomiServiceFramework
YGPS
cit
mcRegistry
miui
miuisystem

/system/priv-app
AuthManager
BackupRestoreConfirmation
BarcodeScanner
CDS_INFO
CalendarProvider
ContactsProvider
DefaultContainerService
DownloadProvider
ExternalStorageProvider
FusedLocation
GoogleBackupTransport
GoogleLoginService
GoogleOneTimeInitializer
GoogleServicesFramework
InCallUI
InputDevices
ManagedProvisioning
MediaProvider
MiuiCamera
MiuiGallery
MiuiKeyguard
MiuiSystemUI
MmsService
OneTimeInitializer
Phonesky
PrebuiltGmsCore
ProxyHandler
SecurityCenter
Settings
SettingsProvider
SharedStorageBackup
Shell
Stk1
TeleService
Telecom
TelephonyProvider
VpnDialogs
WallpaperCropper
com.ghisler.android.TotalCommander ### Total Commander installed as system app
com.hb.dialer.free ### True Phone replacement for Xiaomi Contacts & Dialer
org.adw.launcher ### ADW Launcher installed as system app

Other base apps in /data/app:
com.google.android.apps.messaging ### replacement Google Messenger
com.google.android.calendar ### replacement Google Calendar
com.duokan.phone.remotecontroller ### stock IR remote controller app
pcr.browser.polarity ### Polarity Browser
com.grarak.kerneladiutor ### Kernel Adiutor * disable autostarts*
org.pocketworkstation.pckeyboard ### Hackerskeyboard-v1.38.2 replaces Google keyboard
jackpal.androidterm ### Android Terminal
 
Last edited:

elaurens

Senior Member
Aug 19, 2010
61
6
Thanks a bunch for the info. This is exactly what I'm looking for (my slimming down attempts always resulted in bootloops, so I've been playing it pretty safe so far).
Is this something you repeat every time an update is being pushed to your RN2?
 

jajk

Senior Member
Jul 18, 2014
1,533
1,651
@elaurens By doing this you are forgoing the use of OTA Updates which will unravel everything you have achieved.
I had to go through quite a few bootloops before creating the "safe lists" - I suffer so you can all benefit.
If you are starting with 7.1.4 everything is perfect and needs no more updating;)

Keep your eye out for additions to these lists as I discover or remember them:rolleyes:
 

jajk

Senior Member
Jul 18, 2014
1,533
1,651
I have tried this:
http://forum.xda-developers.com/red...d-enable-clearmotion-miui-based-roms-t3278552
to enable ClearMotion and can vouch for it being safe - as in no malware and no breaking things. It adds the following to Build.prop and puts some hacked drivers in /system/lib.

persist.sys.display.clearMotion=1
persist.clearMotion.fblevel.nrm=255
persist.clearMotion.fblevel.bdr=255
ro.mtk_clearmotion_support=1
ro.mtk_slow_motion_support=1
ro.mtk_16x_slowmotion_support=1

Is this a worthwhile thing to do? There are no negatives in doing so as far as I can see but I don't really have anything that can give this a proper workout.
Can anyone see a difference in video playback? (Must have hardware acceleration selected) I won't recommend this if there is no perceivable gain.
 

sikica133

Senior Member
Nov 15, 2012
282
91
Rijeka
most of the stuff works fine, everything checks out, It's not really anything new, but i find it well written, and it's not just a "placebo build.prop tweaks edit" which is a +. its a smart thing to have it all in a single thread.
however there're some issues with init.d script. even if you get init working, sometimes it just simply wont apply any of the tweaks. interestingly enough, i forced it to create a new text file on every boot, and that works. not really sure whats causing this prob.
anyways, by some magic I eventually made it apply the script, not really sure if it was cause of the rom change, or just pure luck lol
 

jajk

Senior Member
Jul 18, 2014
1,533
1,651
@sikica133 and anyone else having init.d problems:
init.d problems are usually one of the following:
1. incorrect folder permissions.
2. incorrect file permissions
3. No line feed at the end of the file (blank line)
4. incomplete or missing Busybox install
5. missing header in the text
6. Loosing SU privileges

Check init.d folder has 0755 permissions
Check file has at least 0644 permissions
Check and/or insert a line feed at the end of the file
Install busybox on rails, run the cleanup and busybox install, uninstall busybox on rails after this (this gives you an up-to-date and more complete busybox installation)
First line of file must be exactly #!/system/bin/sh
Reinstall a fresh version of SuperSu through TWRP

I sometimes get caught out myself by editing a file on the PC and transferring it back without fixing permissions afterwards:silly:

I have the ultimate build.prop tweak that I will share with you all now, stand back, it is very powerful;)

persist.sys.use_qualcomm_performance_features_instead=1
 

sikica133

Senior Member
Nov 15, 2012
282
91
Rijeka
nah, i was testing it with a updater-script doing 0755 on all scripts. busybox should be fine cause other scripts did their job. dunno, could be some funny issue on my end. works now, i was just wtf, everything works, this doesnt. no idea what was going one tbh, but it works

could be incompatibility with bbox and the script itself? im running it without feedline atm, and it applies it all. same script i used before when it didnt do anything.
 
Last edited:

jajk

Senior Member
Jul 18, 2014
1,533
1,651
MIUI 7.1.4 and I assume all other versions has a very old and incomplete version of busybox installed (I think it was v1.20?).
It does not have fstrim command (plus a few others) included which is why I recommend updating.
 

Xabadou

Senior Member
Nov 27, 2014
53
23
I tried init.d and 01_tweaks script (whith correct permissions).
The system is more time in 806 Mhz., deep sleep not works properly.
I use Stable 7.1.1 .
Deleting script, deep sleep works fine.
Need I install or update busybox for resolve my issue?
 

jajk

Senior Member
Jul 18, 2014
1,533
1,651
@Xabadou This script is the starting point. If you do not "skinny down" MIUI, there are so many things running in the background that you will find it difficult to sit on idle frequency.
How far into skinnying down have you gone?
Also, if you have a 2.2GHz cpu, the 2nd line below frequencies in bold must be modified to valid frequency for that cpu.
If you are not going to skinny down to a great extent, then it helps to bump some of the load settings up a touch.
These are the original lines:
echo 80 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
echo 90 403000:70 806000:81 1183000:84 1326000:87 1469000:90 1625000:93 1781000:96 1950000:99 > /sys/devices/system/cpu/cpufreq/interactive/target_loads
# for 2.2GHz cpu: echo 90 403000:70 806000:81 1183000:84 1326000:87 1482000:90 1664000:93 1885000:96 2158000:99 > /sys/devices/system/cpu/cpufreq/interactive/target_loads
Modify to:
echo 85 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
echo 95 403000:75 806000:81 1183000:84 1326000:87 1469000:90 1625000:93 1781000:96 1950000:99 > /sys/devices/system/cpu/cpufreq/interactive/target_loads
This is enough to get it to sit on 403MHz idle in most cases. If you go higher, you will start compromising smoothness. There are no problems at all with entering deep sleep.
If you are still having problems, you have an app running that is badly behaved - identify it and deal with it.
Refer back post #10, I mention why you should upgrade busybox.

I am running my phone beyond Super Skinny and loving it. Super stable and battery friendly while still being a performance beast. You should notice even at the point of trimming down to Skinny, this phone really starts to liven up.
 
Last edited:

DarthJabba9

Recognized Developer
May 5, 2014
4,185
4,331
Greater London
I am running my phone beyond Super Skinny and loving it. Super stable and battery friendly while still being a performance beast. You should notice even at the point of trimming down to Skinny, this phone really starts to liven up.
Do you have a list of the apks (and directories) that you deleted in order to get the skinny ROM? Such a list would be useful for writing a script to automate the task.

P.S.: you might have noticed that I am a script fanatic - I generally find that it is less error-prone to automate such tasks with a script - and you only need to get the script right once.
 

Xabadou

Senior Member
Nov 27, 2014
53
23
I use stable 7.1.1 by xiaomi.eu whith your modded kernel and a lot of apps frozen (App Quarantine).
Modified kernel works very good.
Just now I have updated busybox.
I have 2.0 ghz version.
I will try again the script.

Clear Motion mod works fine in MIUI roms but you must use MX Player for play videos.

---------- Post added at 01:20 PM ---------- Previous post was at 01:11 PM ----------

persist.sys.use_qualcomm_performance_features_inst ead=1

Works qualcomm tweaks whith mediatek processors?
 
  • Like
Reactions: thetrukos

jajk

Senior Member
Jul 18, 2014
1,533
1,651
@DarthJabba9 The lists ares already mentioned - 1 to get to skinny, 1 to get to super skinny but if you do this in a script on a live system you will likely end up in a bootloop because there are too many odex and cache entries orphaned for Android to handle in one hit. If you intend to apply a script to the ROM files before installation, that is a different story. It takes a bit of effort to figure out how and where MIUI is loading a lot of its components from but is doable.
Why I have not offered a complete ready to go package? It is too easy for users to do it themselves and add their preferences along the way. For those that have actually followed through with the process, I can guarantee that they will instantly loose interest in any other custom ROM.
@Xabadou Thanks for the clarification on ClearMotion. I run VLC set to hardware acceleration and can't see the split screen test mode. Video looks fine regardless, so really hard to tell if anything has changed.
Do the apps that you quarantine stay not running? I had problems with quite a few apps running regardless of being frozen or not so had to uninstall.
You, along with everyone else are not running a modified kernel - the kernel remains intact since we do not decompile and recompile or compile it from source.
The "persist.sys.use_qualcomm_performance_features_instead=1" tweak is a sarcastic dig at the many tweak offerings that do absolutely nothing:silly:
You asked the question showing you were not ready to accept this at face value:good:

If there is no evidence of a tweak doing something positive, don't blindly use it!!!
 

jajk

Senior Member
Jul 18, 2014
1,533
1,651
Last edited:

DarthJabba9

Recognized Developer
May 5, 2014
4,185
4,331
Greater London
@DarthJabba9 The lists ares already mentioned - 1 to get to skinny, 1 to get to super skinny but if you do this in a script on a live system you will likely end up in a bootloop because there are too many odex and cache entries orphaned for Android to handle in one hit. If you intend to apply a script to the ROM files before installation, that is a different story. It takes a bit of effort to figure out how and where MIUI is loading a lot of its components from but is doable.
Why I have not offered a complete ready to go package? It is too easy for users to do it themselves and add their preferences along the way.
Fair enough ...
 

DarthJabba9

Recognized Developer
May 5, 2014
4,185
4,331
Greater London
I will share my custom Super Skinny MIUI boot.img based on MIUI7.1.4 since it is now stable ... It is unpacked and repacked using AndroidMasterChef (downloaded from Needrom). I do not have problems unpacking and repacking again. If you try to unpack and have problems, use the same tool.
Thanks for the image. It cannot be unpacked with standard linux tools, but it unpacks ok with AndroidMasterChef.
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 26
    Skinny MIUI is all about preserving the good; Working premium drivers for Camera, CPU control, Notification LEDs, Bluetooth, FM Radio etc. while resolving what is bad in the stock offering.
    All deletions assume the user has absolutely no interest in being part of the Xiaomi ecosphere. Leave now if that is not you.
    This guide applies to MIUI stable versions 7.1.1 thru to 7.2.5 only. Developer, Beta or Eng versions are not good candidates.

    STAGE 1:
    Boot.img mods: (this is not creating a custom kernel!!!)

    The stock boot.img is unpacked, init.d support added and many entries that are not relevant to our hardware removed.
    Disabling lines trying to load non-existent services from init.rc, init.mt6795.rc and ueventd.rc etc. stops a bit of churning on each and every boot and frees up a bit of RAM.
    There are intentionally no other tweaks contained within the boot.img. All tweaks are done in init.d scripts accessible outside the boot.img.
    Note: This boot image made from 7.1.4 will work back to ver 7.1.1 and forward to 7.2.50 / 6.3.31 and is superior to the stock boot images contained in those ROMs.
    At this point you can flash the modified boot.img to your phone if you already have a stock MIUI 7.1.1 to 7.2.50 installation that you are going to keep.
    If you are going to do a clean install, replace the boot.img in your ROM zip file with this modified one. (backup the original first)

    The boot.img is found here: (Now links to folder with all versions available)
    https://drive.google.com/folderview?id=0BwdRTuyj12_yRk9Kcm1pZkxuZzg&usp=sharing
    15
    STAGE 3:
    Now its time to get Skinny: You will need an app that can uninstall and freeze system apps. I use SD Maids App Control feature for this purpose.

    Warning: If you intend to use app lock, you will unfortunately need to keep some fingerprint service files. See the post below and a few before it to understand the problem. Thanks to @DarthJabba9 for his work.
    I believe that app lock also disables MIUI Optimization if enabled.
    http://forum.xda-developers.com/showpost.php?p=67242356&postcount=583

    First phase is to get rid of the obvious bloat apps and Xiaomi in-house apps....these in the list below are safe to remove.
    Tick off what you have removed and reboot each 10 or so deletions and backup, don't try to delete everything in one hit as you will end up stuck at boot.
    WARNING: This removes some functionality that may be useful to some users. You either want the function or you don't - it is your finger pressing the buttons!
    Some people may choose to keep the MIUI Home Launcher interface. In this case, keep MIUI Wallpaper as well.

    Must keep these - Do not delete:
    Updater - disable autostarts, do not freeze
    Theme Manager - disable autostarts
    Security (com.miui.securitycenter) - leave as-is
    FwkPlugin
    Network Assistant app
    MiuiSDK - disable autostarts
    AuthManager
    Webview (update via Playstore once install finished)
    Xiaomi service framework - disable autostarts, freeze app

    Definitely O.K to delete list:

    Wallpaper Apps:
    Android Live Wallpapers
    Black Hole
    Bubbles
    com.android.wallpaper.holospiral
    Live Wallpaper Picker
    Music Visualization Wallpapers
    Phase Beam
    Photo Screensavers
    *Miui MiWallpaper * keep if also keeping MIUI Home Launcher.

    Xiaomi/MTK Apps:
    Analytics
    Assistant
    Back up Home screen layout (cloud backup)
    Backup - delete if you don't use it (use TWRP instead)
    Battery Warning - deleting this does not affect battery charging or display
    Battery Saver - deleting this improves battery life
    Blocklist (AntiSpam) - delete if you don't use it
    com.miui.mipub
    File Explorer - delete (you should already have a root capable file browser)
    Find device - use the generic Google version if you really must, not the Xiaomi one supplied.
    FingerprintService
    FPCSensorTestTool
    FTPreCheck
    FWUpgrade
    gallery (com.mfashiongallery.emag daily wallpapers)
    Games
    Home screen
    JeejenMIUIContainer
    com.securitycore.miui_t (Tencent virus scanner plugin to Security Center)
    KLO Bug report
    LocationEM2
    Metok
    MI Account
    Mi Cloud
    Mi Credit
    Mi Drop
    Mi Home
    MI Service Security Framework
    Mi VIP
    Mi Voice
    Mi Wallet
    Miravision
    MTKAndroidSuiteDaemon
    MtkFloatMenu
    MTKLogger
    Music
    MusicFx
    Notes - if you don't use it, delete it.
    PowerKeeper (Battery Saver) - deleting this improves battery life
    Report Bug
    Security service plugin (not securitycenter app)
    SystemAd
    System Launcher (Miui Home) replace with an alternative Launcher, allow autostart in Security first then delete. ADW Launcher recommended for lightweight and simple functionality (set to 4x6 looks good).
    Traffic Control
    Uniplay
    UpgradeSys
    VCalendar
    Video
    Voice Unlock
    VoiceAssist
    Weather
    Weather provider
    Whetstone delete app and delete folder /etc/WhetstonePermission ****Whetstone is linked with several other apps to make it hard to get rid of. It may cause some temporary FC issues - these will pass.
    Xiaomi Assistant
    Yellow Pages
    com.jeejen.knowledge
    com.jeejen.store
    com.ximalaya.ting.android
    com.xiaomi pass
    com.xiaomi.o2o
    com.xiaomi.jr
    Cheetah Mobile CleanMaster SDK + Cleaner - delete
    NetworkLocation (com.baidu.map.location) delete app, delete folder: /system/vendor/operator and delete corpses

    Android/Google Apps:
    Browser - suggest replace with Polarity Browser - minimal permissions required, Ad Blocking, lightweight and fast
    Documents
    Google Keyboard - replace with something lighter - Hackers Keyboard v1.38.2 recommended
    Google Pinyin input
    Google Feedback
    Google partnersetup
    HTML Viewer
    Email
    Mail
    Pico TTS
    Print Spooler
    com.android.browser.provider
    PacProcessor

    Note: If you have apps reappear as if by magic, they are being reconstructed from cached information. SD Maid has an excellent "Corpse Finder" function that will delete the orphaned files and prevent this happening. Clear corpses after each reboot.

    Second phase is to toggle off the autostarts (receivers) on the apps that do not need to start by default. This is not the same as freezing an app. Some apps will still start by themselves - do not worry too much about this.

    Atci_service
    Backup
    Blocklist
    com.mediatek.batterywarning
    Download Manager
    Google Contacts Sync
    Google One Time Init
    MIUI SDK (don't freeze)
    MTK NLP Service
    Notes
    One Time Init
    Sim Toolkit
    Themes (Theme Manager)
    Updater
    Xiaomi service framework (should also be frozen)

    Third phase is to clean up left behind folders and files

    /data/miui/app/customized/ remove any app folders that you have uninstalled
    /data/miui/app/noncustomized/ remove any app folders that you have uninstalled
    delete folder /data/miui/mms
    delete folder /data/miui/gallery
    delete contents of /data/miui/cust
    delete folder /etc/jeejen
    delete etc/voicecommand and etc/voiceextension folders if you have removed voice related apps
    delete /system/tts folder if you have removed Pico TTS
    delete folder /system/etc/radv
    /etc/fake_cdrom_install.iso - delete file
    /etc/IAmCdRom.iso - delete file
    /system/addon.d delete folder
    /system/app/jjcontainer/ - delete folder
    /system/app/jjhome/ - delete folder
    /system/app/jjknowledge/ - delete folder
    /system/app/jjstore/ - delete folder

    Libs you can remove:
    /vendor/lib
    libfingerprint_tac.so
    libfpcalgorithm.so

    /vendor/lib64

    libcom_fingerprints_productiontestmanager.so
    libcom_fingerprints_sensor.so
    libfingerprint_tac.so

    /system/lib
    libcaFingerPrintShared.so
    libcom_fingerprints_service.so
    libfamily_jni.so
    libjeejenAisound.so
    libjeejenmsc.so
    libMiraVision_jni.so (if deleted MiraVision App)
    libpatcher_game_jni
    libvoicerecognition.so (if voice recognition apps deleted)
    libvoicerecognition_jni.so (if voice recognition apps deleted)
    libweibosdkcore.so
    libwhetstone_jni.so (if deleted Whetstone App)
    libwhetstone_sdk.so (if deleted Whetstone App)
    libxiaomimediaplayer.so (if xiaomi media player deleted)
    libxiaomimediaplayerwrapper.so (if xiaomi media player deleted)

    /system/lib64
    libairtunes_jni.so
    libairtunes.so
    libBankCardRecognizer.so
    libcaFingerPrintShared.so
    libcom_fingerprints_service.so
    libduokantext.so
    libjni_latinimegoogle.so (if deleted Google keyboard)
    libjni_pacprocessor.so (if deleted PacProcessor)
    libMiraVision_jni.so (if deleted MiraVision App)
    libpatcher_game_jni.so
    libttspico.so
    libweibosdkcore.so
    libwhetstone_jni.so (if deleted Whetstone App)
    libwhetstone_sdk.so (if deleted Whetstone App)
    libxmpass_sdk_patcher.so
    xmpass_libweibosdkcore.so

    Establish network connectivity.
    If Gapps is required but not installed, download open_gapps-arm64-5.0-pico version. You can install individual extra Google apps at any stage later on.
    Go through all MIUI Settings and turn off everything you do not need running.
    Install your favorite media player, web browser etc. to replace the deleted original apps.

    Can replace Calendar and Messenger with Google Calendar and Google Messenger to remove some more Xiaomi dependencies. Contacts & Dialer are much harder to replace - True Phone is the only viable option.
    To further limit Xiaomi unsolicited communications, rename (or delete) /system/xbin/tunman to tunmanbak. (This is a tunneling protocol driver that Xiaomi uses without your knowledge or permission).
    The startup is disabled in the boot.img but it can still be started after boot unless renamed.

    To skinny the Themes footprint:
    Go to /system/media/theme/
    Delete elder-default folder if no use.
    Delete entire contents of miui_mod_icons folder
    Delete items in /system/media/theme/default/ that are not going to be used.
    Delete items in /system/media/lockscreen/ and /system/media/wallpaper/ that are not going to be used.

    Now install your favorite app for monitoring CPU parameters and make sure that on idle, there is only one cpu core running and it sits predominantly on 403MHz. It will jump a little bit but that is normal with the inevitable background activities. Increase the timer_rate if you want more stability at idle rather than cranking up the load figures too far. Up to 50000 or down to 30000 is O.K (remember we are talking microseconds here so 50000 = 50mS)

    Congratulations! You now you have a "Super Skinny" MIUI installation. Do a backup now!!!!

    Now you will feel the AOSP shining through - and still you have working everything!
    13
    STAGE 2:
    Full install:
    I recommend you install my TWRP 3.02-2 version from here:
    https://drive.google.com/open?id=0BwdRTuyj12_yWWp0SUpGV1pzT1k

    Before installing your chosen ROM:
    Check that the updater script found: \META-INF\com\google\android\updater-script is not going to install Preloader, Uboot (lk), Recovery or logo partitions. If so, edit the updater-script to prevent this happening. This is to reduce the risk of a soft-brick or being locked out of your phone.
    Do a factory reset in TWRP (wipe Data, Dalvik, Cache) before installing any ROM.

    Install your chosen ROM. Trying to slim down the ROM before install is an arduous affair which tends to end in bootloops so we leave the original ROM alone in this respect..
    Do the install without connecting to mobile or WiFi networks and just skip at screens prompting for network connectivity and creating accounts.
    Reboot into TWRP once finished with the initial Setup to avoid Recovery from being deleted on first boot.
    Install an updated SuperSU zip package from TWRP recovery - V2.46 to 2.71 work equally well.
    Do not install a root package other than SuperSU - most online ones are malware!
    Update the outdated and incomplete Busybox installation. I have created a TWRP flashable zip to upgrade to the latest version 1.25.0. This is the second edition which has better binaries and no longer creates symlinks to busybox commands.
    https://drive.google.com/open?id=0BwdRTuyj12_yd0s1QmNLRzdveFk
    Now install a root capable filemanager (Root Explorer or Total Commander recommended). Open it and gain root permissions. Open /etc/perfservscntbl.txt in a text editor and edit as follows:

    Code:
    CMD_SET_CPU_FREQ, SCN_APP_TOUCH, 403000
    CMD_SET_CPU_CORE, SCN_APP_TOUCH, 1

    This will lower the number of cores used and the frequency at which it runs when a screen touch is detected (referred to as Touch Boost) Changes are activated on reboot.

    Now create a file named 01_tweaks in the /etc/init.d folder. Change the permission of the file to 0755
    Tips on creating scripts:
    • The EOL(end-of-line) characters must be in Unix format - not Windows. Make sure you are using a text editor that saves in Unix format.
    • Note also that many script files need a blank line at the end to work correctly. Get in the habit of always doing this whether needed or not.
    • Any line starting with a # character and anything after a # character on a line is not processed and is referred to as "commented out"
    • Script files must start with the header #!/system/bin/sh as the first line.
    • Init.d scripts are processed in alpha-numeric filename order hence the common usage of 01_xxx, 02_xxx format for names.

    Copy these lines into the 01_tweaks file: Note: Different values for 2.2GHz cpu and freq limited operation.

    Code:
    #!/system/bin/sh
    
    ### Tweak Interactive CPU Governor
    echo 806000 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
    echo 85 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
    echo "90 403000:80 806000:85 1326000:90 1625000:95 1950000:99" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
    echo 32000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
    echo 10000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
    echo 15000 > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
    echo 20000 > /sys/devices/system/cpu/cpufreq/interactive/timer_slack
    
    ### Tweak IO Scheduler
    echo deadline > /sys/block/mmcblk0/queue/scheduler ### choose between cfq, bfq or deadline
    ### Enable this line if using cfq or bfq scheduler only
    # echo 0 > /sys/block/mmcblk0/queue/iosched/slice_idle
    echo 256 > /sys/block/mmcblk0/queue/read_ahead_kb
    
    ### Enable zram swap
    # echo 1073741824 > /sys/block/zram0/disksize ### 536870912 = 512MB 1073741824 = 1GB
    # /system/bin/tiny_mkswap /dev/block/zram0
    # /system/bin/tiny_swapon /dev/block/zram0
    
    ### Tweak Entropy to avoid regular depletion of available pool
    echo 512 > /proc/sys/kernel/random/read_wakeup_threshold
    echo 1024 > /proc/sys/kernel/random/write_wakeup_threshold
    
    #Tweak for wifi router connection issues
    #echo 1 > /proc/sys/net/ipv6/conf/wlan0/disable_ipv6
    
    ### FSTRIM: Enable once after installation is finalized and then monthly ##### needs an updated busybox installation to work
    # busybox fstrim /data
    # busybox fstrim /cache
    # busybox fstrim /system
    Options: Add / replace lines to do the following:

    1. freq limit a 2GHz cpu to 1781MHz (recommended setting)

    echo "90 403000:80 806000:85 1326000:90 1625000:95 1781000:99" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
    echo 1781000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
    echo 1781000 > /proc/cpufreq/cpufreq_limited_max_freq_by_user

    2. Full speed 2.2GHz cpu


    echo "90 403000:80 806000:85 1326000:90 1664000:95 2158000:99" > /sys/devices/system/cpu/cpufreq/interactive/target_loads

    3. freq limit a 2.2GHz cpu to 1885MHz (recommended setting)

    echo "90 403000:80 806000:85 1326000:90 1664000:95 1885000:99" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
    echo 1885000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
    echo 1885000 > /proc/cpufreq/cpufreq_limited_max_freq_by_user

    4. Add a limit to the maximum number of cpu cores allowed to come online (for possible battery saving maybe...)

    #Limit max cpu cores available (range 2 - 8)
    echo 4 > /proc/hps/num_limit_low_batt
    echo 4 > /proc/hps/num_limit_power_serv
    echo 4 > /proc/hps/num_limit_thermal
    echo 4 > /proc/hps/num_limit_ultra_power_saving


    Edit /system/build.prop. Change the line: ro.sf.lcd_density from the default 480 to a value between 400 (everything smaller, more on screen) to 520 (everything larger, less on screen) to suit your taste and eyesight. You can test this out first by issuing the wm density command in a terminal app. e.g wm density 440 will immediately change the density to 440dpi, wm density reset will put it back to whatever the build.prop setting is. Adjust the text size in Settings in conjunction with this to get the best result.

    At this point you have a functional set of tweaks that are all tested and proven to provide a battery and performance improvement. There are a lot of detrimental or placebo tweaks out there so be a little bit discerning in what else you add to these tweaks - sometimes less is more. Now is not the time to load up those tweaks!

    Do a TWRP backup of System, Data, Boot and NVram partition now to save your efforts up to this point.
    6
    This post will list useful tools and items that need further investigation.
    Apps for finding and disabling things:
    Wakelock Detector-Root - monitor and records wakelock activity
    GSAM - monitors what apps / services are consuming battery
    Disable Service - disable services started on an app by app basis
    SD Maid, Titanium Backup - Freeze / remove apps, toggle autostarts (receivers)

    Modify your quick start grid size:
    https://drive.google.com/file/d/0BwdRTuyj12_yYlphU3A0UWprcXc/view?usp=sharing

    Modify MIUI Homescreen grid:
    https://mega.nz/#F!yJdkxbBa!WSIqrhwUQwD7qjzxOuo1Yw

    Issues:
    Find a way to completely disable XMPush service with and without Xiaomi services framework installed.
    Xiaomi Services Framework causes Sim connectivity issues if deleted - do not delete. There will always be one XMPush instance running.

    Find out what is causing Audio On wakelock reported by GSAM
    Quote: Originally Posted by DarthJabba9
    With regard to the "Audio On" wakelock (aka AudioMix Wakelock) reported bt GSAM, I found this somewhere in this forum: "The nexus 6 had the same wakelock and most of us got rid of it by unchecking "use NuPlayer" in developer options". I have now unchecked that option, and will see over the next day or so whether it resolves the problem. This appears to be the fix


    What triggers no sim / no service errors
    Removing Xiaomi Services Framework is the culprit

    Why do some files / folders not show up in root filemanagers?
    MIUI locks the files / folders to prevent them being used or shown.

    Why does zram not work anymore?
    Rename tiny_mkswap, tiny_swapon, tiny_swapoff to teeny_mkswap, teeny_swapon, teeny_swapoff
    Make sure owner is root shell and permissions are 0755 for all 3 files.
    edit the init.d script to reflect the change in filenames. Now it will work again!
    4
    Example full Skinny ROM based on MR7.2.30 ID:
    This is how my phone is set up, it has 100% functionality, zero FCs and zero battery drain on idle. The init.d settings are exactly as provided. Compare the directory listings to your own to see what is deleted.
    The other major variation to this is for people who want to keep MIUI Launcher (and MIUI Wallpaper), everything else should remain the same. This cost you a bit more RAM usage and slightly more cpu activity (less battery) but is still impressive compared to stock.

    /system/app
    ApplicationsProvider
    AtciService
    AutoDialer
    BSPTelephonyDevTool
    Bluetooth
    CaptivePortalLogin
    CertInstaller
    DeskClock
    DownloadProviderUi
    DrmProvider
    EngineerMode
    EngineerModeSim
    FM
    GoogleCalendarSyncAdapter
    GoogleContactsSyncAdapter
    KeyChain
    MTKThermalManager
    MiuiCompass
    NetworkAssistant2
    NlpService
    Omacp
    PackageInstaller
    Provision
    SuperSU
    SystemHelper
    ThemeManager
    Updater
    UserDictionaryProvider
    WebViewGoogle
    XiaomiServiceFramework
    YGPS
    cit
    mcRegistry
    miui
    miuisystem

    /system/priv-app
    AuthManager
    BackupRestoreConfirmation
    BarcodeScanner
    CDS_INFO
    CalendarProvider
    ContactsProvider
    DefaultContainerService
    DownloadProvider
    ExternalStorageProvider
    FusedLocation
    GoogleBackupTransport
    GoogleLoginService
    GoogleOneTimeInitializer
    GoogleServicesFramework
    InCallUI
    InputDevices
    ManagedProvisioning
    MediaProvider
    MiuiCamera
    MiuiGallery
    MiuiKeyguard
    MiuiSystemUI
    MmsService
    OneTimeInitializer
    Phonesky
    PrebuiltGmsCore
    ProxyHandler
    SecurityCenter
    Settings
    SettingsProvider
    SharedStorageBackup
    Shell
    Stk1
    TeleService
    Telecom
    TelephonyProvider
    VpnDialogs
    WallpaperCropper
    com.ghisler.android.TotalCommander ### Total Commander installed as system app
    com.hb.dialer.free ### True Phone replacement for Xiaomi Contacts & Dialer
    org.adw.launcher ### ADW Launcher installed as system app

    Other base apps in /data/app:
    com.google.android.apps.messaging ### replacement Google Messenger
    com.google.android.calendar ### replacement Google Calendar
    com.duokan.phone.remotecontroller ### stock IR remote controller app
    pcr.browser.polarity ### Polarity Browser
    com.grarak.kerneladiutor ### Kernel Adiutor * disable autostarts*
    org.pocketworkstation.pckeyboard ### Hackerskeyboard-v1.38.2 replaces Google keyboard
    jackpal.androidterm ### Android Terminal