[HOWTO] Customizing the stock Android 8.0 Oreo on the Japanese Xperia XZ1 with temproot - Sony Xperia XZ1 Guides, News, & Discussion

Carrier phones are odd-ball siblings of their global counterparts. As such, they do not enjoy nor receive the same level of support as that of the latter in the modding scene (custom ROMs, recoveries, etc.), even though both carry the same brand model name, e.g. Xperia XZ1 G8341 "Global" vs. Xperia XZ1 SO-01K "NTT DoCoMo". This is because of the subtle underlying hardware differences between the global and carrier variants, even if they have the same specsheet.
One can try flashing ROMs for a global variant onto one of these phones, but it can be a hit or miss, with some hardware components not working like NFC and even losing other functions like the fullseg receiver. And even if it seems to run fine, there may be other issues like poor battery performance because of a non-functioning hardware preventing deep sleep.
Given the above, if you're like me who has one of these carrier phones and doesn't mind running stock where everything works, then this guide is for you. This will allow you to customize several aspects of the system as indicated per section.
This guide has been made possible with the great work of @j4nn on his temproot exploit via CVE-2019-2215 here, extended to support carrier phones from NTT DoCoMo, au KDDI, and Softbank. Once you achieve temporary privilege escalation by running bindershell, you can execute the following commands from inside a terminal emulator (if you followed the howto from the link) or the adb shell. There is no need to setup Magisk. All changes are permanent, except for those in /data that will be erased upon factory reset.
Keep in mind the following:
1. Customizations in this guide were done on an Xperia XZ1 SO-01K from NTT DoCoMo. I think that the file system from the other carriers shouldn't differ that much, but let me know if there are any discrepancies and I'll see if I can help.
2. Make backup of the files if you wish to revert them later on.
3. Avoid making changes in files and/or directories other than those as detailed in this guide, specifically in /oem and /data.
4. The starting directory for files to be copied is assumed to be at /sdcard, i.e. the root directory of the internal storage.
5. Always remount as read-write before committing the changes in /oem:
Code:
# mount -o rw,remount /oem
6. Restart the phone for changes to take effect.
{
"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"
}
Let's get started.
• Boot animation
Shave off a few seconds of boot-up time by removing the boot animation, or you can replace this to whatever you want (you'll have to make sure that the boot animation is in compatible format with the phone). To remove:
Code:
# cd /oem/media
# rm bootanimation.zip
# touch bootanimation.zip
# chmod 644 bootanimation.zip
It is not enough that you delete the file, because then the system will load /system/media/bootanimation.zip. You need to create a zero-byte file with the proper permissions.
• Boot logo
I found an empty splash partition that is 32.64 MiB in size. I'm still trying to figure out if flashing a compatible boot splash image to this partition will make the bootloader load this image instead of the one built into it, just like in the case of the boot animation above. I still have to determine the compatible format for this splash image.
If you have further information regarding the format please share it here. I'm also trying to change the blinding light of that boot logo to something more tolerable.
• Emoji font
Fast fact: Did you know that emoji comes from the Japanese words 'e' meaning picture and 'moji' meaning character?
To replace (assuming you have a font file named MyFont.ttf):
Code:
# cd /oem/fonts
# rm ColorUniEmoji.ttf DcmColorIEmoji.ttf
# cp /sdcard/MyFont.ttf ColorUniEmoji.ttf
# chmod 644 ColorUniEmoji.ttf
The two ttf files are referenced in /system/etc/fonts.xml, but it is the ColorUniEmoji.ttf file that needs to be replaced to make changes to the system emoji. Removing this file will only defer the system to load all glyphs from /system/fonts/NotoColorEmoji.ttf, so rename your font file accordingly.
• Display font
To have your own font apart from the choices in Settings > Display > Change font for display (assuming you have a font file named MyFont.ttf):
Code:
# cp /sdcard/MyFont.ttf /data/system/fonts/UserFont.ttf
• Installing apps into /system
You can achieve the same effect of installing apps into /system (without triggering the 'Your device is corrupt' boot message) as follows (assuming you have an app named MyApp.apk):
Code:
# cd /oem/app
# mkdir MyApp
# chmod 755 MyApp
# cp /sdcard/MyApp.apk MyApp/
# chmod 644 MyApp/MyApp.apk
Replace /oem/app with /oem/priv-app as needed.
• Debloat
Effortlessly debloat your phone from carrier-specific apps and services by making modifications in /oem/android-config/early_config.xml. The package names contained in the xml file will disappear from the system upon restart. A factory reset will not even bring those packages back. You can remove the package names should you decide to have the need for them. Restart the phone and they will appear again.
Here's mine configured with the bare-minimum packages to avoid bootloops and other issues. You can change it to suit your needs, just follow the file structure. I purposefully didn't indent the lines I added to easily see them.
You can also rename or delete the folder /oem/deletable-app if you don't want to have those apps contained therein to be installed by the system upon a factory reset.
Note for SO-01K:
Do not include the com.nttdocomo.android.phonemotion package if you use the stock phone dialer com.sonymobile.android.dialer. The dialer will crash whenever you receive an incoming call, preventing you from answering it.
• GPS
UPDATE: The GPS doesn't work no matter what parameters are changed in the gps.conf file. It doesn't detect any satellites, so it doesn't lock-in on your coordinates, at least this is the case with mine. This may be another limitation of using a carrier-locked phone outside of it's country of origin. I'm afraid that the only remedy for this would be to flash a global ROM variant, especially if binaries are involved. I know this to be the case because I have an SOV37 on Japan ROM and no GPS work there also, but after flashing it to a Global ROM then I got GPS to work properly.
I'm still trying to find out how to fix this without unlocking the bootloader, but I'm not holding my breath.
Tweak the GPS parameters of the phone in /oem/android-config/gps.conf.
• Preset networks
Remove /oem/android-config/preset_networks.conf if you don't want to have carrier saved networks present whenever you reset your network settings or factory reset.
• APNs
I have always wondered why carrier phones don't automatically populate the APN for any SIM other than a Japanese SIM, even after having the phone SIM unlocked. As it turns out, the system of these phones doesn't really include the APN parameters of other networks outside Japan.
/system/etc/apns-conf.xml, which is where all APN parameters for all networks of the World can be found, is a symlink to /data/customization/apns-conf.xml, which itself is another symlink to /system/etc/customization/settings/defaults/apns-conf.xml, which is an xml file containing zero APN parameters.
As you can see, we can change this by replacing the symlink in /data/customization/apns-conf.xml with the full xml file from Google's source repository found here. This will download a file named apns-conf-full.txt. This is base64 encoded. To decode:
Code:
$ base64 -d /sdcard/Download/apns-conf-full.txt > /sdcard/apns-conf.xml
Unfortunately, upon every restart the system reverts /data/customization/apns-conf.xml to the original symlink. To prevent this, we need to make the file immutable with chattr, but this command is not available in the system.
If you followed the howto from the temproot link, and ran bindershell from a terminal emulator, you will come across the post of @Tifs detailing on how to successfully start Magisk from the same. You just need to download the arm64/busybox binary from one of the posted links.
When you have this and the xml files ready, then:
Code:
# cd /data/local/tmp
# cp /sdcard/Download/busybox .
# chmod +x busybox
# cd /data/customization
# rm apns-conf.xml
# cp /sdcard/apns-conf.xml .
# chmod 644 apns-conf.xml
# /data/local/tmp/busybox chattr +i apns-conf.xml
After restarting the phone, try Settings > Network & Internet > Mobile network > Access point names > Reset to default and see the available APNs for your SIM.
• VoWiFi / Wi-Fi calling
These carrier phones came provisioned with VoLTE and Video Calling but not Wi-Fi calling, at least in the case of mine. I'm not sure how useful Video Calling would be outside Japan, and it seems that Wi-Fi Calling is not used there. @pbarrette provided a great overview of the configs that enable VoLTE and Wi-Fi Calling here. But we are interested in enabling Wi-Fi Calling so here are the relevant changes to make:
1. Decompile /oem/overlay/com.android.carrierconfig-res-305.apk on your phone or PC.
2. Once decompiled, modify res/xml/vendor.xml with the following values as follows:
Code:
<boolean name="carrier_wfc_ims_available_bool" value="true" />
<boolean name="carrier_default_wfc_ims_enabled_bool" value="true" />
3. Rebuild the decompiled apk and overwrite the original file with the modified one.
4. Append the following line to /oem/system-properties/config.prop:
Code:
persist.data.iwlan.enable=true
5. It may be necessary to change/reinsert SIM after phone restart for the changes to take place.
• Build.prop
It is not possible to add or modify values in /system/build.prop without triggering the 'Your device is corrupt' boot message. However, you can add or modify certain values in /oem/system-properties/config.prop, which gets read into the system property database.
If you are using Gboard and you want custom themes for it, then you can append these lines for example:
Code:
ro.com.google.ime.themes_dir=/oem/etc/gboard_theme
ro.com.google.ime.theme_file=swiftinstaller.zip
Edit the values as needed.
Here are the other interesting values to modify:
Code:
# show the NFC icon
ro.nfc.icon.enable=true
# disable the forced camera shutter sound
ro.camera.sound.forced=0
It may also be necessary to decompile /oem/overlay/android-res-305.apk, then modify res/values/bools.xml as follows:
Code:
<bool name="config_camera_sound_forced">false</bool>
to turn off the forced camera shutter sound. I did both modifications, but try the config.prop value first. It may be enough.
* VoLTE / 4G calling
There should be a matching APN entry to use VoLTE with your network operator. Unfortunately, this is missing as well, and if you try to add it manually in Settings > Network & Internet > Mobile network > Access point names, it doesn't get saved. This is the case with mine.
UPDATE: I just acquired an Xperia XZ2 SOV37 "au KDDI" running Android 10. When I tried adding an APN of type 'ims' there, I got an 'Operator does not allow adding APNs of type dun, ims.' So it is a carrier-imposed restriction on the phone, only that in my XZ1 it fails silently.
You can add the APN entry in two locations:
1. /data/customization/apns-conf.xml, but you can only do this before making the file immutable; or
2. /oem/overlay/android-res-305.apk, by decompiling it and then modifying res/xml/apns.xml, rebuild and then overwrite with this one. I went this route.
In both cases, this is the APN entry you need to add:
Code:
<apn carrier="IMS" apn="ims" mcc="{mcc}" mnc="{mnc}" type="ims" protocol="IPV4V6" roaming_protocol="IP" />
Replace the values in curly braces with the MCC and MNC of your network operator.
* CellBroadcastReceiver
Each carrier phone comes with their own way of receiving emergency alerts depending on the network operator. All of them however don't include the CellBroadcastReceiver app like the other models do.
If you want to receive such alerts, then download this apk here. Rename it as CellBroadcastReceiver.apk then do the following:
Code:
# cd /oem/priv-app
# mkdir CellBroadcastReceiver
# chmod 755 CellBroadcastReceiver
# cd CellBroadcastReceiver
# cp /sdcard/CellBroadcastReceiver.apk .
# chmod 644 CellBroadcastReceiver.apk
* Sound enhancement
Sound enhancements like the DSEE HX, ClearAudio+, etc. apply only on stock media players like the Music and Video player (but not on any other else it seems) in the case of Android 8.0 Oreo. On Android 9.0 Pie, these enhancements apply system-wide for all media playing apps. An upgrade is recommended if this customization is needed.
While customizations such as these may not come close to the level you get with custom ROMs (and the updated software and security that come with it), these will at least give you something to control and tweak AND STILL get a device with a locked bootloader (and all the goodies that come with it like passing SafetyNet and Key Attestations, Widevine L1, intact DRM keys, etc.). You get the best of both worlds, at the cost of running a not-so-updated system.
I will add more sections to this as soon as I made some more modifications. I hope you find this guide useful as much as I enjoyed creating it. If you do, please hit the LIKE button. It will be very much appreciated.

Changelog
* 2021-08-02: initial posting, revised with images
* 2021-08-03: added section on VoLTE
* 2021-08-04: updated VoLTE, added section on CellBroadcastReceiver
* 2021-08-11: updated GPS
* 2021-08-14: added section on Sound enhancement

braveheartleo said:
* VoLTE / 4G calling
There should be a matching APN entry to use VoLTE with your network operator. Unfortunately, this is missing as well, and if you try to add it manually in Settings > Network & Internet > Mobile network > Access point names, it doesn't get saved. This is the case with mine.
UPDATE: I just acquired an Xperia XZ2 SOV37 "au KDDI" running Android 10. When I tried adding an APN of type 'ims' there, I got an 'Operator does not allow adding APNs of type dun, ims.' So it is a carrier-imposed restriction on the phone, only that in my XZ1 it fails silently.
You can add the APN entry in two locations:
1. /data/customization/apns-conf.xml, but you can only do this before making the file immutable; or
2. /oem/overlay/android-res-305.apk, by decompiling it and then modifying res/xml/apns.xml, rebuild and then overwrite with this one. I went this route.
In both cases, this is the APN entry you need to add:
Code:
<apn carrier="IMS" apn="ims" mcc="{mcc}" mnc="{mnc}" type="ims" protocol="IPV4V6" roaming_protocol="IP" />
Replace the values in curly braces with the MCC and MNC of your network operator.
Click to expand...
Click to collapse
braveheartleo
Thanks a lot for such a helpful post.
I have a SO-02K XZ2 Compact docomo, running android 9.0, unlocked bootloader, rooted.
I could not find file "apns-conf.xml" on "/system/etc/".
After rebuilding "android-res-305.apk" ... each time i tried to manually add APN (through Newtrok & internet > Mobile network > Advanced > Access Point Names) i end up with no APNs.​
what could be wrong?

shamllakh said:
After rebuilding "android-res-305.apk" ... each time i tried to manually add APN (through Newtrok & internet > Mobile network > Advanced > Access Point Names) i end up with no APNs.
Click to expand...
Click to collapse
Hi, sorry for the very late reply, I must have missed the notification for this one.
If you read my post carefully, then you would have already gotten the answer to your question.
I'm not sure what you did after rebuilding the file, but if you followed my post correctly then you wouldn't have the need to manually add an APN entry for VoLTE, which doesn't get saved.

@braveheartleo regarding 4g/volte I tried to modify the apns-conf.xml. I managed to have ims registered but for some reason, after a while it reverts back to not registered even though i made it immutable. I would like to try the other way by decompiling android resapk but I don't know how to. Do you mind sharing a basic guide and the pre requisites. I tried recompiling in windows using apktool and I don't know if I'm doing it right, I didn't see any res folder after inside. I tried the apk tool on the go but I'm not lucky to have it installed, I think the development of the app has stopped years ago. I have sov36 so I am also thinking maybe it's deferent on how you do it compare to softbank?

braveheartleo said:
2. /oem/overlay/android-res-305.apk, by decompiling it and then modifying res/xml/apns.xml, rebuild and then overwrite with this one. I went this route.
Click to expand...
Click to collapse
@braveheartleo I managed to decompile android-res-305.apk but there is no res folder or apns.xml on it for sov36 au. I tried to look onto the same apk for s0-01k and it is present. I guess docomo build their firmware a bit different than kddi au. I tried modifying apns-conf.xml and i get ims registered but i still can't make calls. And after a while it reverts back to not registered even after making it immutable.

braveheartleo said:
• Debloat
Click to expand...
Click to collapse
I also want to add that they can easily debloat by flashing global rom and still have temp root. It worked on my xz1 au/sov36.

nitrams said:
I also want to add that they can easily debloat by flashing global rom and still have temp root. It worked on my xz1 au/sov36.
Click to expand...
Click to collapse
I just want to point that flashing global rom will loose the volte. But I have found a solution for that or maybe others already knew about it. By modifying oem/system-properties/config.prop and adding these lines and not justnthe volte but it will also activate wifi calling and video calling.
persist.data.iwlan.enable=true
persist.dbg.ims_volte_enable=1
persist.dbg.volte_avail_ovr=1
persist.dbg.vt_avail_ovr=1
persist.dbg.wfc_avail_ovr=1
persist.radio.rat_on=combine
persist.radio.data_ltd_sys_ind=1
persist.radio.data_con_rprt=1
persist.radio.calls.on.ims=1
persist.dbg.ims_volte_enable=1
persist.dbg.volte_avail_ovr=1
persist.dbg.vt_avail_ovr=1
persist.dbg.wfc_avail_ovr=1
persist.data.iwlan=1
persist.data.iwlan.ipsec.ap=1
persist.radio.volte.dan_support=true
persist.radio.rat_on=combine
persist.radio.data_ltd_sys_ind=1
persist.radio.data_con_rprt=1
persist.radio.calls.on.ims=1
persist.radio.VT_ENABLE=1
persist.sys.cust.lte_config=true
persist.rcs.supported=1
But still, im unlucky to have my carrier's volte work for me.
GitHub - edgd1er/voenabler: voenabler
voenabler. Contribute to edgd1er/voenabler development by creating an account on GitHub.
github.com

Related

Rom customization

hi how can we customize android on first boot. ie change settings to how we want, like enable data roaming, wifi settings. can this be done in a script in init.d folder? lots of settings are in databases so how can we change the values in them
richmondo said:
hi how can we customize android on first boot. ie change settings to how we want, like enable data roaming, wifi settings. can this be done in a script in init.d folder? lots of settings are in databases so how can we change the values in them
Click to expand...
Click to collapse
Some things can be changed in /system/build.prop
Others in the init.rc and init.devicenamehere.rc, which are in the ramdisk. And some ROMs do have a init.d/*, but that's not standard AOSP.
Are you trying to change a running ROM or customize one for flashing?
For flashing a new own customized rom, how we can made roms, have ap2sd??? ( should we add anything special??
How can we add some new languages to rom..??
I need to add Arabic - persian just for supporting the characters but when I ad fonts to rom, it just shows them disconnected.. how can I fix this..??
.
RichmondoUK said:
hi how can we customize android on first boot. ie change settings to how we want, like enable data roaming, wifi settings. can this be done in a script in init.d folder? lots of settings are in databases so how can we change the values in them
Click to expand...
Click to collapse
<bool name="def_enable_mobile_data">true</bool> change <bool name="def_enable_mobile_data">false</bool> Data transfer is disabled by default.
<bool name="def_install_non_market_apps">false</bool> change <bool name="def_install_non_market_apps">true</bool> Checkbox Unknown sources in Settings \ Security will be marked for easy installation of necessary software.
Lol thanks but this is basic now compared to what i do now as currently work on the xtended settings app.

[APK][Xposed] ResXploit : Theming your android the easiest way! No decompiling APKs!

This would be my second public-released xposed module...
(A duplicate thread is also posted in the Android Themes Section, so user who are only interested in themes can also see this)
I did not expect that my WisdomSky Xploit would be a big hit.
I'm just an Amateur developer who just started delving into android development 3months ago and I didn't expect that much appreciation from my work... XD
But all of these would not be made possible if not because of sir @rovo89 and sir @Tungstwenty and their Xposed Framework, right? That's why I thank them a lot...
REQUIREMENTS
Xposed framework must be pre-installed before installing this.
What does the ResXploit do?
ResXploit has two parts:
the Removable part, terminal
and the main star, engine
The terminal is where you enter the commands(I'll discuss it later). These commands will then be interpreted by the engine and then passed to Xposed framework...
Flow:
TERMINAL >> ENGINE >> XPOSED FRAMEWORK
I have provided a variety of modules:
ResXploit (Terminal + Engine) (RECOMMENDED FOR NEWBIES)
ResXploit Terminal (Terminal Only)(DEPRECATED)
ResXploit Engine (Engine Only)
You might be wondering why I made one which has both terminal and engine... and other two which are separated...
ROM Chefs, Themers and some others would understand directly why...
All the commands are interpreted by the Engine right? so that would mean that once you have entered all the desired commands, the terminal will now end up as useless... so you will just delete so no one can touch the engine...
If you are a ROM Chef or a themer, you can theme all the apps you need to theme using ResXploit and then remove the terminal, so end-user interaction of the engine is prevented after you have released your ROMs to the world.
FOR NEWBIES!
I recommend you to use the ResXploit (Terminal + Engine)...
It is very smart..
I included 99% accurate error-checking system,
line numbering system,
and also Xposed module prioritization(which is first implemented on ResXploit for better module performance).
COMMANDS
We have four basic commands in the ResXploit, the apk, drawable, string, and boolean.
apk - A prerequisite command. This command is very vital whenever you using the ResXploit. This will define the target application by using the package name of the target application. You need to include this before you enter any command or else your command will not know which application is targeted and end up in lost island.
Code:
[B]format[/B]: [I]apk <package name>[/I]
[B]example[/B]: apk com.android.systemui
drawable(also drw) - The most often used command. The command which will change icons/images (png drawables) of an application. You can either overlay the existing image with your favorite color or completely replaced it with a .png image from your sdcard.
Code:
[B]format1[/B]: [I]drawable <target application's drawable name> <image path, no need to include /sdcard> <transparency, 0 to 255>[/I]
[B]example1[/B]: drawable status_bar_background bg.png 255
[B]format2[/B]: [I]drawable <target application's drawable name> <HEX RGB color code> <transparency, 0 to 255>[/I]
[B]example2[/B]: drawable status_bar_background #fff00ff 255
string(also str) - This command will change string(text) values of the application. The predefined string values are usually located in res/values/strings.xml of an application, but I guess they are not visible when you view the contents of an application using Archive managers like RootExplorer. But there is a way to identify them. I will include it later.
Code:
[B]format[/B]: [I]string <target application's string value holder name> <replacement string>[/I]
[B]example[/B]: string app_name My App
boolean(also bln) - This command will change boolean values of the application. The predefined boolean values are usually located in res/values/bools.xml of an application, but I guess they are not visible when you view the contents of an application using Archive managers like RootExplorer as well.
Code:
[B]format[/B]: [I]boolean <target application's boolean value holder name> <replacement boolean value, either [B]true[/B] or [B]false[/B] only>[/I]
[B]example[/B]: boolean allowNumberNotifications true
Some simple examples screenshots:
drawable and string commands in action
{
"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"
}
ResXploit UI screenshots:
If you find my ResXploit module interesting,
Please hit THANKS!!! XD:angel:
UPDATES & CHANGELOGS:
ResXploit Engine 1.0.8 - added support to framework-res(android).(latest)
ResXploit 1.0.8 - updated engine(1.0.8).(latest)
NOTICE: ResXploit is now an abandonware.
My flash drive where I stored the sources of my android projects was corrupted unexpectedly.
And also, my phone was broken. I have no device to use to re-write everything from scratch... Sorry...
Tutorial and samples
System Apps Package Names:
SystemUI - com.android.systemui
Settings - com.android.settings
Mms - com.android.mms
Contacts - com.android.contacts
Launcher - com.android.launcher
Gallery - com.android.gallery3d
File Explorer - com.android.qrdfileexplorer
Framework-res - android
Tip: If you want to find the package name of a specific application(not on the list), you can open Root Explorer(download it from googleplay) and then browse the apk you want to check, open it and choose "view". You can find AndroidMaifest.xml file inside. Open it then find the package="xxxxxxxxxxx". The words or group of words inside the quotations separated by a period is the package name of that application.
Note: ResXploit is far safer(in terms of error awareness) to use than the ResXploit terminal. If possible, only use ResXploit. In the simple tutorials below, please expect that I'm referring to ResXploit only.
Changing Statusbar background color
let's say color red...
Code:
#!/
apk com.android.systemui
drawable status_bar_background #ff0000 255
Changing Notifications Panel background color into transparent
Code:
#!/
apk com.android.systemui
drawable notification_panel_bg #000000 0
Changing Notifications Panel background with an image from sdcard
let's say that the png image is located in /sdcard/my_img.png
Code:
#!/
apk com.android.systemui
drawable notification_panel_bg my_img.png 255
You might be wondering where i'd get the target application's drawable filename?
Actually, you can just open the root explorer and view the files inside the apk of the target application. under the /res directory(folder), you can find a variety of subdirectories prefixed with [drawable, like drawable-hdpi,drawable-mdpi and so on... Basically, all images inside those folders are under the scope of drawable command in Resxploit. And if you want to target a certain image in the drawable folders, you just need to get the file name without the .png or .9.png. That's it!
Adding "comments"...
Comments in programming are human-readable additional information. If you want to put notes somewhere in your script, you can put "#" before your statement. When the terminal find a "#" before a statement, the terminal will ignore it and skip it. However if you will enter a non-command information and is not started withcl a "#", the terminal will ofcourse read it as command and then throws an error message.
Code:
#!/
# my comment. my comment. my comment
apk com.android.systemui
drawable status_bar_background #ff0000 255
# the terminal will skip the command below
# because it started with a "#"
#drawable oh_no #ff00ff 255
Defining working directory path of your images
If you want to start theming and you already have the images you want to use stored inside a single folder, then you can tell the terminal where these images are located so you don't need to enter the path redundantly.
You can define it on the very first line of ResXploit, after the "#!/" you can add the folder name or path to the folder.
let's say we have our images put in a folder in sdcard named my_images or /sdcard/my_images, then you can define it like this.
Code:
#!/my_images
#we can start theming now
drawable hello some_image.png 255
drawable world next_image.png 255
great work dude...noypi are very smart of course,,
Very interesting. I've been interested in theming for a while now but haven't gotten my feet wet. I'll be waiting for your tutorials. Great work mate!
Sent from my Galaxy Nexus
Nice! I love to see Pinoys In-Action with the XDA community!
Will wait for the tutorial of yours repa!
@greedisgood99999 Please stop that bad-habit of quoting... It's quite irritating tropa...
Wait for the tutorial
Sent from my Xperia Mini Pro
So ... a scriptable general purpose module. This is a phenomenal idea. OK still requires digging into the apk but a whole lot easier than building a new module from scratch.
Mission: Get rid of Armv7 calls the FC apps on my old clunker (also need help buying a new phone--if I had it, would have reserved the edge already!). Google Now first tries to init the "off line" voice recognition engine. Minimum, want to simply disable this call. I use overlays to prevent other such calls. Maximal, to replace with the old "on line" voice recognition engine.
Capability in this yet?
Among the booleans?
what say you
Dovidhalevi said:
So ... a scriptable general purpose module. This is a phenomenal idea. OK still requires digging into the apk but a whole lot easier than building a new module from scratch.
Mission: Get rid of Armv7 calls the FC apps on my old clunker (also need help buying a new phone--if I had it, would have reserved the edge already!). Google Now first tries to init the "off line" voice recognition engine. Minimum, want to simply disable this call. I use overlays to prevent other such calls. Maximal, to replace with the old "on line" voice recognition engine.
Capability in this yet?
Among the booleans?
what say you
Click to expand...
Click to collapse
i don'think so... because ResXploit's scope is only the res or resource directory of the apk structure...
if a boolean value is defined in the res/values/bools.xml that will actually toggle controls then it would be great... but i think, in your case it is deeply hard-coded to work like that...
Framework.res?
Can you theme the framework.res using this?
package name is only 'android' no com. or anything..
EDIT: Tried and it seems to go through ok, but nothing seems to change. Rebooted several times, changed an image in my keyboard, checked it was ticked in Xposed framework, setup a folder in my internal storage, checked superuser granted access, pressed high priority in settings. Don't know
Here's a debug log (uploading tomorrow, pc occupied)
Will this work for non system apps? The unlock button on the PowerAmp lock screen drives me insane because it's the only thing I can't change and I absolutely hate green.
Metallijim said:
Can you theme the framework.res using this?
package name is only 'android' no com. or anything..
EDIT: Tried and it seems to go through ok, but nothing seems to change. Rebooted several times, changed an image in my keyboard, checked it was ticked in Xposed framework, setup a folder in my internal storage, checked superuser granted access, pressed high priority in settings. Don't know
Here's a debug log (uploading tomorrow, pc occupied)
Click to expand...
Click to collapse
I'm so sorry for that...
in exposed, framework-res(android) uses different method...
so i forgot to implement it fo support the framework-res...
thanks for your feed back. I'll add it up and upload it later...
Rokonacdc said:
Will this work for non system apps? The unlock button on the PowerAmp lock screen drives me insane because it's the only thing I can't change and I absolutely hate green.
Click to expand...
Click to collapse
Ofcourse! it will work with non-system apps too... XD
This looks very promising, thank you for your work!!
here's a Debug
Here's my Debug log
Xperia Z 4.2.2, Images in internal storage, Xposed priority set low, all other xposed modules that I have installed disabled
Metallijim said:
Here's my Debug log
Xperia Z 4.2.2, Images in internal storage, Xposed priority set low, all other xposed modules that I have installed disabled
Click to expand...
Click to collapse
sir l've already added support for framework-res, please check the changelogs for the download link...
Interesting, sounds like a concept similar to Ninjamorph.
A couple of quick questions:
Is this able to apply folders or just single png's?
Also do you need extract png's from apks in order to apply or does it extract and apply automatically?
:good:
dully79 said:
Interesting, sounds like a concept similar to Ninjamorph.
A couple of quick questions:
Is this able to apply folders or just single png's?
Also do you need extract png's from apks in order to apply or does it extract and apply automatically?
:good:
Click to expand...
Click to collapse
Unlike ninja morph, in resxploit, there is no permanent replacing of resources happened... which means you can deactivate, share, edit easily anytime....
Q: Is this able to apply folders or just single png's?
A: only single pngs... 1 drawable command = 1 png... but there is no limitation on how how many commands you can add
Q: Also do you need extract png's from apks in order to apply or does it extract and apply automatically?
A: As what I've added on the title, "No decompiling APKs"... it means, no decompiling or extracting is involved in the process as what Xposed Framework aimed. You just need to put the image to replace inside your sdcard and just add a command to tell the engine "to replace that with this"... there is no permanent replacing of resources happened here... the image is just move into the /data partition and will be just overlapped to the target resource so there will be an impression of replacing of resources
I didnt mean does it decompile/extract full apks. I meant can you pull an resource/image out of the apk to apply.
I know it overlays instead of permanently overwriting the original resource, similar to Icon themer and XTheme engine.
Ninjamorph/ Metamorph unzips apks into folders so you can navigate through them and choose what you want to apply.
Example:
Choose target resource/image to change.
Choose apk to pull resource/image from.
Navigate and choose resource/image (extract if applicable) to apply.
This would be good if it also done the same. Although you could just unzip with an on board app like Zarchiver.
Basically it would make it a new and improved Ninjamorph/ Metamorph (dont tell Stericson i said that)
No offense, but looking at it from newbies point of view, it seems like a bit of a drawn out process if you were wanting to change numerous items.
I know it's early days and I'm sure this would be greatly improved with a GUI, if you decide to add one.
Personally speaking, i think this has massive potential and could be something very special. I applaud you, i wish i had your talent.#
Thanks.
I tried clicking on the changelog link, it gave an error "Invalid Attachment specified. This can happen for a variety of reasons-- most likely because the thread or post you are trying to view has been moved or deleted. Please return to the forum home and browse for another similiar post."
Not sure if its the file attached to the post that is the updated one or if the actual update got deleted. Please help me here
phanitej said:
I tried clicking on the changelog link, it gave an error "Invalid Attachment specified. This can happen for a variety of reasons-- most likely because the thread or post you are trying to view has been moved or deleted. Please return to the forum home and browse for another similiar post."
Not sure if its the file attached to the post that is the updated one or if the actual update got deleted. Please help me here
Click to expand...
Click to collapse
Oh sorry for that.. ill just upload it to a third party site and add the link...
thnx for reminding...
dully79 said:
I didnt mean does it decompile/extract full apks. I meant can you pull an resource/image out of the apk to apply.
I know it overlays instead of permanently overwriting the original resource, similar to Icon themer and XTheme engine.
Ninjamorph/ Metamorph unzips apks into folders so you can navigate through them and choose what you want to apply.
Example:
Choose target resource/image to change.
Choose apk to pull resource/image from.
Navigate and choose resource/image (extract if applicable) to apply.
This would be good if it also done the same. Although you could just unzip with an on board app like Zarchiver.
Basically it would make it a new and improved Ninjamorph/ Metamorph (dont tell Stericson i said that)
No offense, but looking at it from newbies point of view, it seems like a bit of a drawn out process if you were wanting to change numerous items.
I know it's early days and I'm sure this would be greatly improved with a GUI, if you decide to add one.
Personally speaking, i think this has massive potential and could be something very special. I applaud you, i wish i had your talent.#
Thanks.
Click to expand...
Click to collapse
thanks for the appreciation and to your suggestions...someone did suggest to me to add GUI...
I'm still a newbie in terms of androld... there's so much to learn first before I can fully implement whats on my mind...
My phone is also not that good for development... its so slow... XD
but if everything turns out good... then maybe I should reconsider...XD
WisdomSky said:
Oh sorry for that.. ill just upload it to a third party site and add the link...
thnx for reminding...
thanks for the appreciation and to your suggestions...someone did suggest to me to add GUI...
I'm still a newbie in terms of androld... there's so much to learn first before I can fully implement whats on my mind...
My phone is also not that good for development... its so slow... XD
but if everything turns out good... then maybe I should reconsider...XD
Click to expand...
Click to collapse
Which phone do you use?

RemixOS -- Overlay Apps, FAQ, Tips/Hints & Requests

Note: This is a Q/A thread please don't duplicate posts - upvote/comment on similar post
Root AccessBy default you have access to root via the root shell (ALT+F1 ALT+F7 to exit) using this root will give you access/control over some system related items but for proper root access and use of a su access manager (i.e. SuperSu) you need to 'manually' install a SuperSU.zip package that is normally installed via recovery - this process has been automated via RMXTools on Windows and a rootx.sh script on Linux.
Additionally the system is being 'forced' to remain ro (read-only) via the initrd.img - so an altered one is needed - the one provided here has just two ro's removed so the OTA mechanic is still in place.
System-less root
An alternative to the above this requires modifying ramdisk.img and includng a file in the data.img.
Required files can be obtained here: 64bit [32bit - will require it's own su.img and ramdisk.img]
Instructions -- download and replace the ramdisk.img (keep a copy of the original for OTA),
-- boot into RemixOS
-- download su.img
-- copy su.img to /data/su.img using ALT&F1 # i.e #cp /data/media/0/Download/su.img /data/su.img
-- reboot
Optional. If you also want rw access to /system files, then also download an replace the initrd.img ==> this will break OTA and will require replacing initrd.img and system.img with stock files for an OTA to complete.
Note. It is unknown what the consequence of rooting/modifying system.img will have on applying the implied upcoming regular OTA's OTA section follows​OTAOTA's as expected/hoped are patched updates, unfortunately they aren't individual file patches but are block patches, meaningthat for an OTA to complete you need to have stock unaltered system.img, ramdisk.img, kernel and initrd.img files - if you have altered any of these or potentially just mounted system as rw even once; an OTA will simply fail.
Verification Lets have a look at the OTA [64bit] updater-script
Code:
(range_sha1("/mnt/system.img", "2,0,1") == "12775f6b5137acc7d8a1dcc2f4a401d194ce7644") || abort("/mnt/system.img has been remounted R/W; reflash device to reenable OTA updates");
if range_sha1("/mnt/system.img", "2,0,655360") == "359e95683918ae74e3742dbf2c6e50ef20fb38e8" then
ui_print("Verified system image...");
else
(range_sha1("/mnt/system.img", "2,0,655360") == "177ef6310b9f9125f9d76e71da381d98d50dfb6d") ||
abort("system partition has unexpected contents");
endif;
apply_patch_check("/mnt/initrd.img", "2", "bb0e9d622986383dcdba757ed6602d4f39f878ff", "1ea2c462df3804af097cf6c9deb7a062af7a4659") || abort("\"/mnt/initrd.img\" has unexpected contents.");
apply_patch_check("/mnt/ramdisk.img", "2", "4a516fa61dc2ffabe03806aa768217cb7c713ea2", "b14ab6183073f0162c95f80ed8168f3462882fcb") || abort("\"/mnt/ramdisk.img\" has unexpected contents.");
apply_patch_check("/mnt/kernel", "2", "ffbd1a85f514f1c662b327733b96a63535b11a95", "9a4464cae128abb4b90148aa413d6035ef09b5af") || abort("\"/mnt/kernel\" has unexpected contents.");
# ---- start making changes here ----
ui_print("Patching system image after verification.");
show_progress(0.900000, 0);
block_image_update("/mnt/system.img", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat");
apply_patch("/mnt/initrd.img", "-",
1ea2c462df3804af097cf6c9deb7a062af7a4659, 1568778,
bb0e9d622986383dcdba757ed6602d4f39f878ff, package_extract_file("initrd.img.p"));
apply_patch("/mnt/ramdisk.img", "-",
b14ab6183073f0162c95f80ed8168f3462882fcb, 1153529,
4a516fa61dc2ffabe03806aa768217cb7c713ea2, package_extract_file("ramdisk.img.p"));
apply_patch("/mnt/kernel", "-",
9a4464cae128abb4b90148aa413d6035ef09b5af, 5041936,
ffbd1a85f514f1c662b327733b96a63535b11a95, package_extract_file("kernel.p"));
set_progress(1.000000);
From this we can see the 4 needed files as stated previously and the expected sha1 hash for these files:
Code:
[b]64bit 1503 OTA[/b]
ramdisk.img b14ab6183073f0162c95f80ed8168f3462882fcb
system.img 359e95683918ae74e3742dbf2c6e50ef20fb38e8
initrd.img 1ea2c462df3804af097cf6c9deb7a062af7a4659
kernel 9a4464cae128abb4b90148aa413d6035ef09b5af
Could someone with 32bit OTA post their sha1 values
In order to check these in Windows open a command prompt in the RemixOS folder and issue:
PowerShell
Get-FileHash -Path .\*.img -Algorithm sha1 > sha1.txt
Get-FileHash -Path .\kernel -Algorithm sha1 >> sha1.txt
Then read the resultant sha1.txt file​GAppsWithin the beta there are preinstalled 'disabled' gapps
#terminal (ALT+F1)
Code:
Original Credit goes to [url="https://www.reddit.com/r/RemixOS/comments/48puc4/gapps_are_preinstalled_but_hidden_heres_how_to/"]SubredditReddit[/url]
Follow the guide there - I would just be parroting it.
GUI (Via App) [unverified]
Freeze JideAppPolicy app
Unfreeze GoogleApps
Alternative: Those who kept their gapped installed data from Alpha to Beta may have noticed that gapps still worked with doing anything to 'enable' them ; thus it must be concluded that something in data is keeping them active - perhaps an update of GooglePlay(Services) has been installed in /data - in that vain could someone simply install a copy of PlayStore and/or GooglePlayServices obtained from apkmirror.com or via raccon​Overlay AppsOverlay apps like Tincore Keymapper and Twilight can't run properly by default due to them not having access to the Draw On Top permission - there are several reasons for this I guess; 1 being that with the multiwindow framework overlays are part of the integral part of the OS and third-party apps possibly misusing it could have unforseen consequences, and 2 it could simply be proper Android policy (the overlay was originally indented for just Warning/Error messages).
That being said; Tincore and Twilight have worked fine for me, but use at your own risk.
GUI (Via App)
Download App Ops from the Playstore (root required) - this one is tested and works as expected.
Once downloaded give it root access, install AppOps and reboot.
After reboot open the AppOps app, go to device tab, find the desired app and give it the Draw On Top permission.
#terminal (ALT+F1) [unverified]There is an appopps binary present in /system/bin (well a script for appopps.jar) - likely it's being used to disable this 'feature'
Code:
[b]---For Tincore Remapper ---
#appops set com.tincore.and.remapper SYSTEM_ALERT_WINDOW allow
--- For Twilight ---
#appops set com.urbandroid.lux SYSTEM_ALERT_WINDOW allow[/b]
Personally I wouldn't touch anything else in the AppOps app to reduce the risk of messing something up.
Note: if using a overlay layer like Twilight, buttons like those to grant SU permission will be unclickable until you disable/pause the overlay
Alternative [unverified]: the root App Ops app just needs root to install another app named App Ops to /system/priv-app as seen in the attached screenshot below - thus it should be possible to include this app via something like the rooting method from RMXTools without requiring full root to be installed. But it's untested ad I wouldn't be comfortable with posting a copy of that apk without the developers permission.
Screenshots
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Tablet ModeGUI (App/Root Browser)
/system/build.prop edit ro.remixos.box=true to ro.remixos.box=false
and while you are there you might as well edit
ro.no_wallpaper=true to ro.no_wallpaper=false
#terminal (ALT+F1) [unverified]
Code:
[b]#sed -i -e 's/ro.remixos.box=true/ro.remixos.box=false/g' /system/build.prop[/b]
[b]#sed -i -e 's/ro.no_wallpaper=true/ro.no_wallpaper=false/g' /system/build.prop[/b]
Screenshot
LauncherIn RemixOS the default desktop is essentially (like Windows) an expanded file browser window (com.jide.filemanager); enabling tablet mode (/disabling box mode) as above and exposing additional Experimental Features (multitap kernel version in Settings => About) allows you to disable the file based browser and use the other; technically stock launcher (com.android.launcher3); this is a minimal launcher without widget support and without an app drawer.
Third-party launchersDownload your 3rd party app of choice (Nova/Apex seem to be working 'fine')
GUI (Via App)
freeze My Home and Launcher
#terminal (ALT+F1)
Code:
[b]#pm disable com.android.launcher3
#pm disable com.jide.filelauncher[/b]
Press the Home (circle) button. Once launcher is set-up make sure it is set to run in full-screen mode i.e. Settings=>App=>Nova=>Restart in FullScreen Mode​ Credit to rafial who mentioned a similar procedure with launcher3 for Remix1.0
Screenshots
PhoenixOS
In PhoenixOS there is a similar filemanager/launcher3 setup but launcher3 is an 'empty' app and additionally 3rd party launchers are actively blocked from being installed, so until the location of this block is found 3rd party launchers won't work
​(Auto-)RotationDue to the number of different accelerometer/gyroscope sensors there are numerous different ways that sensors reading can be processed; and currently Ax86 doesn't read from a property value to rearrange the sensor readings - thus if you 'enable' autorotation (disable the forced landscape), results may vary by device - i.e. screen/accelerometer may be misaligned (90/180/270 degrees).
To enable autoration - in addition to the build.prop edits for 'Tablet Mode' above; enable additional Experimental Features by multitapping on Kernel version info - then disabling Forced landscape and file based launcher
Screenshots
Disabling InputsProcedure listed here​AppsIf an app isn't working correctly or instantly crashes there's 2 options to try before writting it off:
1. Open the app fullscreen mode
2. If available use a different set of libs; this is done using pm install -r --abi * *.apk
I have also a simple script here it's run like applib sonic for a sonic app, then follow onscreen directions (add this to /system/bin as well)​Build Prop tweaks
Apart from the Tablet mode edits mentioned above:
​RequestsIf there's something that works in Androidx86 but not in RemixOS then please request it here and I'll take a look​
Added #terminal (ALT+F1) method for AppOps -- this should work for stock (unrooted) system
Actually tincore is showing up the overley, but it was not touching the target instead it was touching the mouse pointer location. Do u successfully ran tincore without any hiccups
Yes I get the same problem as krishrocks, any solutions? TY.
Tincore isn't something I'm used to using; could it be a fullsceen or calibration issue.
Can either of you post a couple screenshots perhaps; as an answer rather than a comment and describe what should happen, and what actually does.
i set ro.no_wallpaper to false, remix os taskbar is missing.
how to fix?
Which launcher are you using?
Only reason for tasbar would be if it's set to autohide, or something is messing with SystemUI
when i would like install third party launcher, i use terminal with command
#pm disable com.android.launcher3
#pm disable com.jide.filemanager
is disable launcher an filemanager, but when run nova, i have message no support third party launcher....
I no longer got that message after disabling both apps,
If it's causing nova not to launch, try pressing the circle button and ticking the box to make it default first.
It could be that you also need ro.remixos.box=false but not sure
yes my remixos.box is false
nova work. i use titanium backup fot freeze launcher and filemanager
i am using nova launcher, maybe build.prop no wallpapaer true is meant to remix os cause if set to false then the taskbar will missing
edit:
sory u right, if set taskbar to autohide and buildprop no_wallpapaer to false tasbar is missing but i set taskbar to "not autohide" no_wallpaper to false tasbar is back, tyty
I think I had the wrong package listed for the #pm disable; try the above again.
@arts821 try the same - com.jide.filelauncher instead of filemanager.
screenshot of nova here: http://imgur.com/EDW6lOu - so it appears fine for me (I was using Apex previously so I had to disable that as well).
I managed to run Nova Launcher on Phoenix OS:
https://www.reddit.com/r/PhoenixOS/comments/4a67tm/chilling_with_nova_launcher/
Screenshot:
http://i.imgur.com/WfvGPaz.png
Any more details?
Nova was blocked from being installed for me (could see in logcat that it was a banned install or something).
Tablet mode on Phoenix is just launch each app fullscreen, if anyone is wondering; took me a while to realise that.
Just re-read your reddit post, I take it you manually installed an apk; rather than using the playstore --- if so that sould make sense to me.
Regnas said:
I managed to run Nova Launcher on Phoenix OS:
https://www.reddit.com/r/PhoenixOS/comments/4a67tm/chilling_with_nova_launcher/
Screenshot:
http://i.imgur.com/WfvGPaz.png
Click to expand...
Click to collapse
Yeah, I installed manually, and I thought it could work with Play Store too, but as you tested, it didn't...
Anyway, Nova is running pretty smooth on my Phoenix.. I also installed Apex and it's running great too, even the widgets are showing up in the app drawer (unlike Nova)..
I tried Arrow Launcher as well, it's working but the icons are a little bit small..
Aviate is not fully working at moment...
Cheers..
Thanks for the confirmation, not quite sure if that helps identify where the blacklist is.
I was going to try and replace packageinstaller... Or figured it might be one of the certificates in Settings.apk (perhaps the stock Android feature for buisness where apps are restricted).
PlayStore isn't included stock right? Pretty sure I manually gapp'ed...
Yep, there's no Play Store built-in... I installed gapps manually as well...
I'm waiting for the results of your tests..
Systemless root [64bit] and OTA section added
Some way to deactivate touch pad would be helpful.
It will be a while before I can check/test but you should be able to disable specific inputs via a file in /system/etc; using #getevent to find the right device name. Do you mind reposting your comment as as Answer instead so it gets it's own string
Edit. it's the /system/etc/excluded-input-devices.xml file

[I9100] Useful fixes for Lineage OS [OS 7.x.x]

Useful fixes for LineageOS 14.1
I am very glad that you are here!
It may be helpful to you:
__________________________________________________
Rollback to the official Android 4.1.2 without a PC
Today, we will roll back to the official android 4.1.2 without a PC, through custom recovery.
You need a phone S2-i9100 with the ability to enter into the recovery and installation of the zip file.
__________________________________________________
Restore the firmware on Samsung GT-I9100 Galaxy S II.
More detailed instructions on firmware with Odin.
__________________________________________________
[Guide/Tutorial] Installing LineageOS 14.1 + TWRP-3.1.0-0 for Samsung Galaxy S2 i9100
More detailed instructions on firmware with Odin.
__________________________________________________
Script remove the superuser indicator "#" !
Hello, I noticed that many of you don't like the superuser indicator ('#')
in the status bar and that some of you even flash SuperSU or Xposed, just to get rid of it.
Well, that's not necessary, because there is a much easier way.
__________________________________________________
Script fix Dialer for LineageOS !
- Has large photo of the caller
- Improved the display speed of the caller
- Enable call record (in test mode)
- In order to improve the quality of the recording of telephone conversations,
use a headset (headphones with microphone) !
__________________________________________________
Script fix CMFileManager for LineageOS !
If you have such a problem in the LOS!
"CMFileManager: not see the internal memory or it says that I need elevated rights to do..."
Root rights are recommended.
__________________________________________________
Script fix LockClock for LineageOS !
Weather widget clock with two assembly suppliers (OpenWeather and Yahoo weather).
__________________________________________________
Script fix Ril for LineageOS !
If you have such a problem in the LOS of 02/08, 02/13, 02/16 !
"Each time when I end a phonecall (no matter if it's incoming our outgoing calls)
I get a popping message that there is no reception, and the antenna shuts for about half a minute and then returns ..."
__________________________________________________
Root Addon Packages for Lineage OS!
Fixed the error 4, when installing addonsu-arm-signed.zip !
"addonsu-arm-signed.zip can't flash via recovery. Gives an error : Updater process ended with signal: 4 ..."
__________________________________________________
Download the scripts here​__________________________________________________
Reserved...
Great job mate, thanks for the awesome fixes :good:
MigoMujahid said:
Great job mate, thanks for the awesome fixes :good:
Click to expand...
Click to collapse
Mutually, you also do many useful things!
You can also post useful fixes and additions here, just be sure to test them first!
LOS is constantly evolving, but with the advent of Innovations - appear flaws and inaccuracies!
I think our "Useful fixes for LineageOS 14.1" will serve for a long time and help all those who need it !
Thank you all...
@toy_story: Hi, can you please post the source code that need to be changed to enable call recording?
ale5000 said:
@toy_story: Hi, can you please post the source code that need to be changed to enable call recording?
Click to expand...
Click to collapse
Hello, I will write about the standard application Dialer.apk in CM and LOS.
In many countries, the recording of calls is prohibited by law. Google, SM, LOS and others, just protect themselves from trouble:
- They in the Dialer.apk application have installed filters for countries and mobile operators, who can be recorded and who can not.
- Changed the libraries and again the problem kernel.
Okay the lyrics aside, go to work, what needs to be done:
1) Unpack the firmware or copy from the already installed, but we have the file Dialer.apk.
2) Decompile Dialer.apk.
3) On the path: Dialer \ res \ values ​​\ look for the file bools.xml
4) Using a text editor (preferably using Notepad ++ or something similar) open bools.xml
5) We search and check the line:
<Bool name = "call_recording_enabled"> true </ bool>
If instead of true it is written false ,change to true
6) Save the changes.
7) Next on the path: Dialer \ res \ values-mcc202 \ open the file bools.xml and edit the line:
<Bool name = "call_recording_enabled"> false </ bool>
Replace false with true
8) This line should be changed in all, from "values-mcc202" to "values-mcc505".
How many "values-mcc" , in so many countries is prohibited from recording a call!
Only after correcting all "values-mcc" , in the phone during the call to appear a choice for recording.
9) Compile (collect back) Dialer.apk
10) What to do with properly configured Dialer.apk, I think you know.
@toy_story: Thanks, do you know also a method to change the country detected by the phone?
Does it use the CSC?
If yes, can it be changed without change the ROM?
ale5000 said:
@toy_story: Thanks, do you know also a method to change the country detected by the phone?
Does it use the CSC?
If yes, can it be changed without change the ROM?
Click to expand...
Click to collapse
Hi, you could have done that before.
The record could be included by writing only 2 lines to the file "build.prop" or to install a suitable module for "Xposed"
Now if you take the application "dialer.apk" from LOS and from CM 13, it will be almost two different applications:
- change system libraries
- Enhance application security
- structure, location, and standard behavior
The control (check) is in 5 places, us for the time being limited to the easiest filter for the "MCC" country code.
And I think that a proven and well-working "Xposed" on android 7.1.? We will not see soon!
toy_story said:
Hi, you could have done that before.
The record could be included by writing only 2 lines to the file "build.prop" or to install a suitable module for "Xposed"
Now if you take the application "dialer.apk" from LOS and from CM 13, it will be almost two different applications:
- change system libraries
- Enhance application security
- structure, location, and standard behavior
The control (check) is in 5 places, us for the time being limited to the easiest filter for the "MCC" country code.
And I think that a proven and well-working "Xposed" on android 7.1.? We will not see soon!
Click to expand...
Click to collapse
I mean another thing.
I'm not sure but there should be another memory somewhere to flash.
Correct me if I'm wrong but doesn't CSC survive a format of the /system partition?
When you flash LineageOS it should read the country somewhere in the phone (I think) since the ROM is the same for all countries.
ale5000 said:
I mean another thing.
I'm not sure but there should be another memory somewhere to flash.
Correct me if I'm wrong but doesn't CSC survive a format of the /system partition?
When you flash LineageOS it should read the country somewhere in the phone (I think) since the ROM is the same for all countries.
Click to expand...
Click to collapse
Hi! No, you're wrong.
Yes, the disk is the same for all countries, but it already has different settings and behavior for different languages. Now when installing "LOS Pom" , the system automatically determines where we are (installation language), before this was not.
Behavior for countries is recorded in the form of a blacklist, according to the qualifications of "MCC" and "MNC".
MCC (Mobile Country Code) - the mobile country code in combination with MNC is the unique identifier of the cellular operator of GSM, CDMA, iDEN, TETRA and UMTS networks, as well as some satellite communication operators. ITU-T Recommendation E.212 defines mobile country codes.
MNC (Mobile Network Code) - the mobile network code in combination with MCC is the unique identifier of the cellular operator of GSM, CDMA, iDEN, TETRA and UMTS networks, as well as some satellite communication operators. ITU-T Recommendation E.212 defines mobile country codes.
Example:
Next on the path: Dialer \ res \ values-mcc202 \ open the file bools.xml and edit the line:
<Bool name = "call_recording_enabled"> false </ bool>
"Mcc202" - country code Greece
"Bools.hml" - with the parameter > false <
If we do not change to > true <
Then with this "POM" in the territory of Greece, the recording of the call will not work.
Previously, without modifying the "POM" workaround, the "modules" for "Xposed" were made.
toy_story said:
Hi! No, you're wrong.
Yes, the disk is the same for all countries, but it already has different settings and behavior for different languages. Now when installing "LOS Pom" , the system automatically determines where we are (installation language), before this was not.
Behavior for countries is recorded in the form of a blacklist, according to the qualifications of "MCC" and "MNC".
MCC (Mobile Country Code) - the mobile country code in combination with MNC is the unique identifier of the cellular operator of GSM, CDMA, iDEN, TETRA and UMTS networks, as well as some satellite communication operators. ITU-T Recommendation E.212 defines mobile country codes.
MNC (Mobile Network Code) - the mobile network code in combination with MCC is the unique identifier of the cellular operator of GSM, CDMA, iDEN, TETRA and UMTS networks, as well as some satellite communication operators. ITU-T Recommendation E.212 defines mobile country codes.
Example:
Next on the path: Dialer \ res \ values-mcc202 \ open the file bools.xml and edit the line:
<Bool name = "call_recording_enabled"> false </ bool>
"Mcc202" - country code Greece
"Bools.hml" - with the parameter > false <
If we do not change to > true <
Then with this "POM" in the territory of Greece, the recording of the call will not work.
Previously, without modifying the "POM" workaround, the "modules" for "Xposed" were made.
Click to expand...
Click to collapse
I have installed it without SIM.
Before installation I have wiped system, data, cache (almost everything).
How can it detect country?
How can I verify what country is detected?
ale5000 said:
I have installed it without SIM.
Before installation I have wiped system, data, cache (almost everything).
How can it detect country?
How can I verify what country is detected?
Click to expand...
Click to collapse
Yes, I agree. Without a SIM card and without an Internet connection, applications will not determine in which country you are.
But you still insert a SIM card and will be connected to the Internet!
As soon as you insert the sim, the cellular operator will immediately tell your phone which country you are in.
Hi,
I just made a test with a fresh install of lineage-14.1-20170322-nightly-i9100-signed.zip, gapps pico with TWRP.
I installed Fix_addonsu-arm-signed.zip without errors, but the phone is still not rooted.
Any ideas what is going on?
As far as i remember last time i rooted it i had to use CWM-SuperSU-v0.97.zip too.
Thanks!
Edit: Please, ignore the above zzzz - i simply forgot to assign root rights to adb+apps in developer settings.
s2l9100 said:
Hi,
I just made a test with a fresh install of lineage-14.1-20170322-nightly-i9100-signed.zip, gapps pico with TWRP.
I installed Fix_addonsu-arm-signed.zip without errors, but the phone is still not rooted.
Any ideas what is going on?
As far as i remember last time i rooted it i had to use CWM-SuperSU-v0.97.zip too.
Thanks!
Click to expand...
Click to collapse
Follow the path:
Settings - Developer options - Root access - choose Apps and ABD
Check root access.
Restore the firmware on Samsung GT-I9100 Galaxy S II
More detailed instructions on firmware with Odin.
Script remove the superuser indicator "#" !
Script remove the superuser indicator "#" !
Hello,
I noticed that many of you don't like the superuser indicator ('#') in the status bar
and that some of you even flash SuperSU or Xposed, just to get rid of it.
Well, that's not necessary, because there is a much easier way.
So here is the "right way" to remove the "#":
Set in TWRP: Hide_SU_Icon.zip - Download
P.S. After the first power-up, you may need to reboot!
Disliked Returned back !
Set in TWRP: SU_Icon-REVERT.zip - Download
Script fix Dialer for LineageOS !
Script fix Dialer for LineageOS !
- Has large photo of the caller
- Improved the display speed of the caller
- Enable call record (in test mode)
- In order to improve the quality of the recording of telephone conversations, use a headset (headphones with microphone) !
Set in TWRP: Fix_Dialer.zip - Download
Be sure to "Wipe Cache / Dalvik"
If you see the message "Failed to start call recording" - do a reboot!
Disliked Returned back !
Set in TWRP: Dialer-REVERT.zip - Download
P.S.After installation, the phone briefly be slightly hotter than usual, this is due to the optimization of application.
Script fix CMFileManager for LineageOS !
Script fix CMFileManager for LineageOS !
If you have such a problem in the LOS!
"CMFileManager: not see the internal memory or it says that I need elevated rights to do..."
Root rights are recommended.
Set in TWRP: Fix_CMFileManager.zip - Download
Be sure to "Wipe Cache / Dalvik"
When you first start it may not see the folders, you need to reboot!
P.S. In nightie LOS from 02/26 before 03/29 deleted CMFileManager!
But the script still works well!
Script fix LockClock for LineageOS !
Script fix LockClock (version 3.5) for LineageOS !
Weather widget clock with two assembly suppliers (OpenWeather and Yahoo weather).
Set in TWRP: LockClock_LOS-mod.zip
Disliked Returned back !
Set in TWRP: LockClock_LOS-REVERT.zip
Wipe cache/dalvik after flash do not necessarily.
P.S. If you have installed my script "LockClock_LOS-mod.zip!" .
after upgrade LOS, even after the OTA,
it is necessary to again set in TWRP: LockClock_LOS-mod.zip!
Script fix Ril for LineageOS !
Script fix Ril for LineageOS !
If you have such a problem in the LOS of 02/08, 02/13, 02/16 !
"Each time when I end a phonecall (no matter if it's incoming our outgoing calls) I get a popping message that there is no reception, and the antenna shuts for about half a minute and then returns ..."
Set in TWRP: Fix_Ril - Download

[GUIDE] HDR Fix with OTA Update Survival

Tested with:
Code:
ArrowOS Version: arrow-11.0
ArrowOS Build Type: OFFICIAL
ArrowOS Build Variant: VANILLA
Device Name: POCO X3 NFC (surya)
This modification makes use of the addon.d survival mechanism found in almost all (if not all) custom ROMs, which is leading back to CyanogenMod, and allows the installation of @janhammer504's YouTube HDR & Chrome Yellow Tint - Real Fix with automatic reinstatement after a manual or OTA system update.
Create the folder /sdcard/Android/addon.d/hdrfix, download and unpack YouTube HDR & Chrome Display Fix (v2) - Final.zip to that location.
Place the following script with the name 52-hdrfix.sh into /system/addon.d and make it executable (755), which can either be done from a root shell or through recovery after mounting /system with read-write access:
Code:
#!/sbin/sh
#
# ADDOND_VERSION=2
#
###################
# Restore HDR Fix #
###################
case "$1" in
post-restore)
AD="/sdcard/Android/addon.d"
DD="/product/vendor_overlay/29/etc"
mount /dev/block/mapper/product /product 2> $AD/mount_error.log
[ -d $DD ] && cp $AD/hdrfix/* $DD 2> $AD/hdrfix_error.log
umount /product
;;
esac
That's it, either reinstall the current version of the used custom ROM through recovery or make an OTA update.
Now the catch with this was, that for some unknown reasons, addon.d scripts see the device mapping different than from a running system or recovery, please see this issue for details.
ArrowOS 11 has the two XML files in /product/vendor_overlay/29/etc, but this may be different in other ROMs. In that case, simply have a look and change the destination folder ($DD) in the script accordingly.
The script is safe to use as nothing gets modified if the given destination folder is not found.
To uninstall this modification, simply remove the file /system/addon.d/52-hdrfix.sh.
You can also temporarily disable this modification by removing/renaming the two XLM files from/in /sdcard/Android/addon.d/hdrfix and everything gets back to default with the next system update.
Hint: You may want to watch the changelog for the used ROM and remove that modification once the ROM developers have implemented that fix by themselves.
Although working as supposed to, my approach for applying this fix is more of a proof of concept to me, as I wanted to find out how to make use of the addon.d survival mechanism.
For anyone else looking for an easier way to apply that fix (till your ROM developer has taken care of this), @janhammer504 has already provided the according Magisk Module.
FYI This fix will be implemented in the next build of ArrowOS, so this modification is no longer needed if using that custom ROM.
Is there any magisk module for fix? I'm noob Now using Havoc os 4.3 and don't want to flash arrow os and format data and install everything again Thanks in advance.
Master One said:
FYI This fix will be implemented in the next build of ArrowOS, so this modification is no longer needed if using that custom ROM.
Click to expand...
Click to collapse
I have the latest arrow os 12 on my F3 and HDR does not work.
AndreiR32 said:
I have the latest arrow os 12 on my F3 and HDR does not work.
Click to expand...
Click to collapse
Better ask at the new ArrowOS 12 thread then, because I'm still on 11.

Categories

Resources