[DEV][Q] What's wrong with Sense GSM - Optimus One, P500 Android Development

Hi folks I want to ask. As you can see,I'm trying to port decently Sense ROM to P500. But GSM isn't working. For making it work i tried to use and import the following libs from devoid:
Code:
[B]/system/lib[/B]
libril-qc-1.so
liboncrpc.so
libdsm.so
libqueue.so
libdiag.so
libauth.so
libcm.so
libnv.so
libpbmlib.so
libwms.so
libwmsts.so
libmmgsdilib.so
libgsdi_exp.so
libgstk_exp.so
libril-qcril-hook-oem.so
liboem_rapi.so
libsnd.so
libqmi.so
libdll.so
liblgeat.so
liblgdrm.so
liblgdrmwbxml.so
liblgerft.so
libbcmwl.so
libdss.so
[B]/system/bin[/B]
rild
But nothing. Mik also gave me a link of his sources,telling me that maybe I had to add some lg proprietary things.
Code:
[B]/system/bin[/B]
qmuxd
rmt_storage
port-bridge
wiperiface
tsdown
netmgrd
[B]/system/etc[/B]
MELFAS_FIRM.bin (I know it's a TS thang,but just to be sure...)
[B]/system/lib[/B]
libsdutils.so
libnetmgr.so
Did I miss something? I don't think so. I've imported all libs specified here.
It's impossible! GSM Still isn't working. I'm now thinking it's a permission problem,found this in logcat:
Code:
W/PackageManager( 1405): Unknown permission android.permission.ACCESS_NETWORK_LOCATION in package com.htc.android.locationpicker
W/PackageManager( 1405): Unknown permission android.permission.ACCESS_NETWORK_LOCATION in package com.htc.htcsettingwidgets
E/ConnectivityService( 1405): Error in networkAttributes - ignoring attempt to adopt radio 6
Any ideas?

Zecanilis made a mistake here. Why moving it to general section? I'm talking about a PORTING,which is a DEV thing.
Sent from my LG Optimus One P500 using XDA App

ciaox said:
Zecanilis made a mistake here. Why moving it to general section? I'm talking about a PORTING,which is a DEV thing.
I agree. Why? This is made by a dev who is talking dev. +1 to moving this back.
Sent from my LG Optimus One P500 using XDA App
Click to expand...
Click to collapse
Sent from my LG-P500 using XDA App

I think I know a solution, will look into it and if I'm right I'll let you know.
Sent from my LG-P500 using XDA App

Like I thought, in /system/etc/permissions/ this permission is missing, adding it to platform.xml perhaps solves it.

_Arjen_ said:
Like I thought, in /system/etc/permissions/ this permission is missing, adding it to platform.xml perhaps solves it.
Click to expand...
Click to collapse
I will let you know,thanks. If it doesn't work,I really don't know how to solve it,because I've tried it all.

Ok here's my platform.xml:
Code:
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2008 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- This file is used to define the mappings between lower-level system
user and group IDs and the higher-level permission names managed
by the platform.
Be VERY careful when editing this file! Mistakes made here can open
big security holes.
-->
<permissions>
<!-- ================================================================== -->
<!-- ================================================================== -->
<!-- ================================================================== -->
<!-- The following tags are associating low-level group IDs with
permission names. By specifying such a mapping, you are saying
that any application process granted the given permission will
also be running with the given group ID attached to its process,
so it can perform any filesystem (read, write, execute) operations
allowed for that group. -->
<permission name="android.permission.BLUETOOTH_ADMIN" >
<group gid="net_bt_admin" />
</permission>
<permission name="android.permission.BLUETOOTH" >
<group gid="net_bt" />
</permission>
<permission name="android.permission.INTERNET" >
<group gid="inet" />
</permission>
<permission name="android.permission.CAMERA" >
<group gid="camera" />
</permission>
<permission name="android.permission.READ_LOGS" >
<group gid="log" />
</permission>
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_rw" />
</permission>
<!-- The group that /cache belongs to, linked to the permission
set on the applications that can access /cache -->
<permission name="android.permission.ACCESS_CACHE_FILESYSTEM" >
<group gid="cache" />
</permission>
<!-- RW permissions to any system resources owned by group 'diag'.
This is for carrier and manufacture diagnostics tools that must be
installable from the framework. Be careful. -->
<permission name="android.permission.DIAGNOSTIC" >
<group gid="input" />
<group gid="diag" />
</permission>
<!-- ================================================================== -->
<!-- ================================================================== -->
<!-- ================================================================== -->
<!-- The following tags are assigning high-level permissions to specific
user IDs. These are used to allow specific core system users to
perform the given operations with the higher-level framework. For
example, we give a wide variety of permissions to the shell user
since that is the user the adb shell runs under and developers and
others should have a fairly open environment in which to
interact with the system. -->
<!-- Standard permissions granted to the shell. -->
<assign-permission name="android.permission.WRITE_EXTERNAL_STORAGE" uid="shell" />
<assign-permission name="android.permission.SEND_SMS" uid="shell" />
<assign-permission name="android.permission.CALL_PHONE" uid="shell" />
<assign-permission name="android.permission.READ_CONTACTS" uid="shell" />
<assign-permission name="android.permission.WRITE_CONTACTS" uid="shell" />
<assign-permission name="android.permission.READ_OWNER_DATA" uid="shell" />
<assign-permission name="android.permission.WRITE_OWNER_DATA" uid="shell" />
<assign-permission name="android.permission.READ_CALENDAR" uid="shell" />
<assign-permission name="android.permission.WRITE_CALENDAR" uid="shell" />
<assign-permission name="android.permission.READ_USER_DICTIONARY" uid="shell" />
<assign-permission name="android.permission.WRITE_USER_DICTIONARY" uid="shell" />
<assign-permission name="android.permission.ACCESS_FINE_LOCATION" uid="shell" />
<assign-permission name="android.permission.ACCESS_COARSE_LOCATION" uid="shell" />
<assign-permission name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" uid="shell" />
<assign-permission name="android.permission.ACCESS_NETWORK_STATE" uid="shell" />
<assign-permission name="android.permission.ACCESS_WIFI_STATE" uid="shell" />
<assign-permission name="android.permission.BLUETOOTH" uid="shell" />
<!-- System tool permissions granted to the shell. -->
<assign-permission name="android.permission.GET_TASKS" uid="shell" />
<assign-permission name="android.permission.CHANGE_CONFIGURATION" uid="shell" />
<assign-permission name="android.permission.REORDER_TASKS" uid="shell" />
<assign-permission name="android.permission.SET_ANIMATION_SCALE" uid="shell" />
<assign-permission name="android.permission.SET_PREFERRED_APPLICATIONS" uid="shell" />
<assign-permission name="android.permission.WRITE_SETTINGS" uid="shell" />
<assign-permission name="android.permission.WRITE_SECURE_SETTINGS" uid="shell" />
<assign-permission name="android.permission.BROADCAST_STICKY" uid="shell" />
<!-- Development tool permissions granted to the shell. -->
<assign-permission name="android.permission.SET_DEBUG_APP" uid="shell" />
<assign-permission name="android.permission.SET_PROCESS_LIMIT" uid="shell" />
<assign-permission name="android.permission.SET_ALWAYS_FINISH" uid="shell" />
<assign-permission name="android.permission.DUMP" uid="shell" />
<assign-permission name="android.permission.SIGNAL_PERSISTENT_PROCESSES" uid="shell" />
<!-- Internal permissions granted to the shell. -->
<assign-permission name="android.permission.FORCE_BACK" uid="shell" />
<assign-permission name="android.permission.BATTERY_STATS" uid="shell" />
<assign-permission name="android.permission.INTERNAL_SYSTEM_WINDOW" uid="shell" />
<assign-permission name="android.permission.INJECT_EVENTS" uid="shell" />
<assign-permission name="android.permission.SET_ACTIVITY_WATCHER" uid="shell" />
<assign-permission name="android.permission.READ_INPUT_STATE" uid="shell" />
<assign-permission name="android.permission.SET_ORIENTATION" uid="shell" />
<assign-permission name="android.permission.INSTALL_PACKAGES" uid="shell" />
<assign-permission name="android.permission.CLEAR_APP_USER_DATA" uid="shell" />
<assign-permission name="android.permission.DELETE_CACHE_FILES" uid="shell" />
<assign-permission name="android.permission.DELETE_PACKAGES" uid="shell" />
<assign-permission name="android.permission.ACCESS_SURFACE_FLINGER" uid="shell" />
<assign-permission name="android.permission.READ_FRAME_BUFFER" uid="shell" />
<assign-permission name="android.permission.DEVICE_POWER" uid="shell" />
<assign-permission name="android.permission.INSTALL_LOCATION_PROVIDER" uid="shell" />
<assign-permission name="android.permission.BACKUP" uid="shell" />
<assign-permission name="android.permission.MODIFY_AUDIO_SETTINGS" uid="media" />
<assign-permission name="android.permission.ACCESS_DRM" uid="media" />
<assign-permission name="android.permission.ACCESS_SURFACE_FLINGER" uid="media" />
<assign-permission name="android.permission.ACCESS_SURFACE_FLINGER" uid="graphics" />
<!-- This is a list of all the libraries available for application
code to link against. -->
<library name="android.test.runner"
file="/system/framework/android.test.runner.jar" />
<library name="javax.obex"
file="/system/framework/javax.obex.jar"/>
<!-- HTC PIM library (Contacts / Calendar / Mail / Sync ...) -->
<library name="com.htc.android.pimlib"
file="/system/framework/com.htc.android.pimlib.jar"/>
<!-- HTC EAS shared library (for OpenSource parts) -->
<library name="com.htc.android.easopen"
file="/system/framework/com.htc.android.easopen.jar"/>
<!-- add by Justin_Liu, for scalado library -->
<library name="com.scalado.util.ScaladoUtil"
file="/system/framework/com.scalado.util.ScaladoUtil.jar"/>
</permissions>
So,I need to add something like this:
Code:
<permission name="android.permission.ACCESS_NETWORK_LOCATION" >
<group gid="sdcard_rw" />
</permission>
But,I also need to change "group gid". Any idea of what I need to put in that "group gid"?
Also I found some other interesting things. I found this in platform.xml:
Code:
<assign-permission name="android.permission.WRITE_EXTERNAL_STORAGE" uid="shell" />
<assign-permission name="android.permission.SEND_SMS" uid="shell" />
<assign-permission name="android.permission.CALL_PHONE" uid="shell" />
<assign-permission name="android.permission.READ_CONTACTS" uid="shell" />
<assign-permission name="android.permission.WRITE_CONTACTS" uid="shell" />
<assign-permission name="android.permission.READ_OWNER_DATA" uid="shell" />
<assign-permission name="android.permission.WRITE_OWNER_DATA" uid="shell" />
<assign-permission name="android.permission.READ_CALENDAR" uid="shell" />
<assign-permission name="android.permission.WRITE_CALENDAR" uid="shell" />
<assign-permission name="android.permission.READ_USER_DICTIONARY" uid="shell" />
<assign-permission name="android.permission.WRITE_USER_DICTIONARY" uid="shell" />
<assign-permission name="android.permission.ACCESS_FINE_LOCATION" uid="shell" />
<assign-permission name="android.permission.ACCESS_COARSE_LOCATION" uid="shell" />
<assign-permission name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" uid="shell" />
<assign-permission name="android.permission.[B]ACCESS_NETWORK_STATE[/B]" uid="shell" />
<assign-permission name="android.permission.ACCESS_WIFI_STATE" uid="shell" />
<assign-permission name="android.permission.BLUETOOTH" uid="shell" />
<!-- System tool permissions granted to the shell. -->
<assign-permission name="android.permission.GET_TASKS" uid="shell" />
<assign-permission name="android.permission.CHANGE_CONFIGURATION" uid="shell" />
<assign-permission name="android.permission.REORDER_TASKS" uid="shell" />
<assign-permission name="android.permission.SET_ANIMATION_SCALE" uid="shell" />
<assign-permission name="android.permission.SET_PREFERRED_APPLICATIONS" uid="shell" />
<assign-permission name="android.permission.WRITE_SETTINGS" uid="shell" />
<assign-permission name="android.permission.WRITE_SECURE_SETTINGS" uid="shell" />
<assign-permission name="android.permission.BROADCAST_STICKY" uid="shell" />
<!-- Development tool permissions granted to the shell. -->
<assign-permission name="android.permission.SET_DEBUG_APP" uid="shell" />
<assign-permission name="android.permission.SET_PROCESS_LIMIT" uid="shell" />
<assign-permission name="android.permission.SET_ALWAYS_FINISH" uid="shell" />
<assign-permission name="android.permission.DUMP" uid="shell" />
<assign-permission name="android.permission.SIGNAL_PERSISTENT_PROCESSES" uid="shell" />
<!-- Internal permissions granted to the shell. -->
<assign-permission name="android.permission.FORCE_BACK" uid="shell" />
<assign-permission name="android.permission.BATTERY_STATS" uid="shell" />
<assign-permission name="android.permission.INTERNAL_SYSTEM_WINDOW" uid="shell" />
<assign-permission name="android.permission.INJECT_EVENTS" uid="shell" />
<assign-permission name="android.permission.SET_ACTIVITY_WATCHER" uid="shell" />
<assign-permission name="android.permission.READ_INPUT_STATE" uid="shell" />
<assign-permission name="android.permission.SET_ORIENTATION" uid="shell" />
<assign-permission name="android.permission.INSTALL_PACKAGES" uid="shell" />
<assign-permission name="android.permission.CLEAR_APP_USER_DATA" uid="shell" />
<assign-permission name="android.permission.DELETE_CACHE_FILES" uid="shell" />
<assign-permission name="android.permission.DELETE_PACKAGES" uid="shell" />
<assign-permission name="android.permission.ACCESS_SURFACE_FLINGER" uid="shell" />
<assign-permission name="android.permission.READ_FRAME_BUFFER" uid="shell" />
<assign-permission name="android.permission.DEVICE_POWER" uid="shell" />
<assign-permission name="android.permission.INSTALL_LOCATION_PROVIDER" uid="shell" />
<assign-permission name="android.permission.BACKUP" uid="shell" />
<assign-permission name="android.permission.MODIFY_AUDIO_SETTINGS" uid="media" />
<assign-permission name="android.permission.ACCESS_DRM" uid="media" />
<assign-permission name="android.permission.ACCESS_SURFACE_FLINGER" uid="media" />
<assign-permission name="android.permission.ACCESS_SURFACE_FLINGER" uid="graphics" />
These should be the declared permissions.
I've seen that here android.permission.ACCESS_NETWORK_STATE is declared but it isn't declared here:
Code:
<permission name="android.permission.BLUETOOTH_ADMIN" >
<group gid="net_bt_admin" />
</permission>
<permission name="android.permission.BLUETOOTH" >
<group gid="net_bt" />
</permission>
<permission name="android.permission.INTERNET" >
<group gid="inet" />
</permission>
<permission name="android.permission.CAMERA" >
<group gid="camera" />
</permission>
<permission name="android.permission.READ_LOGS" >
<group gid="log" />
</permission>
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_rw" />
</permission>
<!-- The group that /cache belongs to, linked to the permission
set on the applications that can access /cache -->
<permission name="android.permission.ACCESS_CACHE_FILESYSTEM" >
<group gid="cache" />
</permission>
<!-- RW permissions to any system resources owned by group 'diag'.
This is for carrier and manufacture diagnostics tools that must be
installable from the framework. Be careful. -->
<permission name="android.permission.DIAGNOSTIC" >
<group gid="input" />
<group gid="diag" />
</permission>
I should declare it together with android.permission.ACCESS_NETWORK_LOCATION,shouldn't I?

ciaox said:
Zecanilis made a mistake here. Why moving it to general section? I'm talking about a PORTING,which is a DEV thing.
Sent from my LG Optimus One P500 using XDA App
Click to expand...
Click to collapse
Yes i made a mistake, for 2 minutes. I'm human you know!
And if you've changed the name of the thread it whouldn't happen. So please change the [Q] to [DEV Q].
Cheers

Zecanilis said:
Yes i made a mistake, for 2 minutes. I'm human you know!
And if you've changed the name of the thread it whouldn't happen. So please change the [Q] to [DEV Q].
Cheers
Click to expand...
Click to collapse
Ok I will. But don't get mad!

you are missing the lib libril.so and the binary rild
if its still not working, have a look in init.rc and init.thunderg.rc files to see
how and when services are started

andy572 said:
you are missing the lib libril.so and the binary rild
if its still not working, have a look in init.rc and init.thunderg.rc files to see
how and when services are started
Click to expand...
Click to collapse
No,i didn't miss rild binary and neither libril.so
Ok i'll take a look at that .rc files.

I'm not sure if you have to use uid or gid here, try with uid=shell,
will take a look for possible gid

ciaox Cant you add the gsm etc from the russian exe available for GB roms and thn we can flash this sense rom ? Any idea

mansirawat said:
ciaox Cant you add the gsm etc from the russian exe available for GB roms and thn we can flash this sense rom ? Any idea
Click to expand...
Click to collapse
Thanks for the idea,but i need some Froyo libs.

upd: I looked after froyo platform.xml but ACCESS_NETWORK_LOCATION isn't declared there too. So,I now think that it's something in .rc files,but I'll try to touch platform.xml too.
ciaox

upd:Got it working. Took libs from my openOptimus rom and opensource rild binary. One question: I can't make calls,but I can recieve 'em. Why? Trying with another dialer.

ciaox said:
upd:Got it working. Took libs from my openOptimus rom and opensource rild binary. One question: I can't make calls,but I can recieve 'em. Why? Trying with another dialer.
Click to expand...
Click to collapse
Well, just symlink gsmincomingcall.so to gsmoutgoingcall.so?
OK, seriously - maybe upload it somewhere so that people can mess with it and possibly find out? (After all, incoming calls working is still a whole lot better than no GSM altogether - which is what people are stuck with ATM.)

doktornotor said:
Well, just symlink gsmincomingcall.so to gsmoutgoingcall.so?
OK, seriously - maybe upload it somewhere so that people can mess with it and possibly find out? (After all, incoming calls working is still a whole lot better than no GSM altogether - which is what people are stuck with ATM.)
Click to expand...
Click to collapse
Upload what man? The whole rom or what?

ciaox said:
Upload what man? The whole rom or what?
Click to expand...
Click to collapse
Well yeah... kinda hard to debug such stuff when you have nothing at hand to experiment with. Or maybe just some flashable "hotfix" zip to the first alpha you posted here.

doktornotor said:
Well yeah... kinda hard to debug such stuff when you have nothing at hand to experiment with. Or maybe just some flashable "hotfix" zip to the first alpha you posted here.
Click to expand...
Click to collapse
Even dialer One fails(Uses same system method for calling).

Related

[Q] HTC One M7 Media Profiles and Encoders

Dear Devs,
I have just taken a look at the media_profiles.xml and media_codecs.xml and it seems that the HTC One M7 is capable of recording videos in divx format, but seems to be deactivated from HTC side:
media_codecs.xml
Code:
<!--
<MediaCodec name="OMX.qcom.video.decoder.divx" type="video/divx" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="defers-output-buffer-allocation" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.divx311" type="video/divx311" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="defers-output-buffer-allocation" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.divx4" type="video/divx4" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="defers-output-buffer-allocation" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="defers-output-buffer-allocation" />
</MediaCodec>
-->
Does anyone have experience with this in trying to enable it?

{Guide}{gb} [How to] Make ics style settings for {gingerbread devices}

Hello guys i am back with easy and very useful guide for newbies
This is a guide on how to mod your Settings.apk to make it like an ICS's one !!​
Requirements:-
1. PC
2. JAVA(JDk) installed
3. APk manager(i prefer)[to decompile apks]
3. Eyes
4. A little bit of brain too...!!!
# so lets start
Click to expand...
Click to collapse
# decompile your settings.apk
#Navigate to projects\Settings.apk\res\xml
#Open Settings.xml with Notepad++
It should look something like this (not exactly like this but somehow)...
Click to expand...
Click to collapse
#Now to make them like ics we need to add them in categories
So Lets go
#To add wifi and bluetooth shortcuts we need to add this code
Code:
<PreferenceCategory android:title="Networks and Connectivity" />
<com.android.settings.IconPreferenceScreen android:title="Wi-Fi" settings:icon="@drawable/wifi">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.wifi.WifiSettings" />
</com.android.settings.IconPreferenceScreen>
<com.android.settings.IconPreferenceScreen android:title="Bluetooth" settings:icon="@drawable/bt">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.bluetooth.BluetoothSettings" />
</com.android.settings.IconPreferenceScreen>
<com.android.settings.IconPreferenceScreen android:title="More..." android:key="wireless_settings" settings:icon="@drawable/more">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.WirelessSettings" />
</com.android.settings.IconPreferenceScreen>
#Add 3 Pngs in your respected drawable folder with the names as refered above
Note to remove this code
Code:
<com.android.settings.IconPreferenceScreen android:title="@string/radio_controls_title" android:key="wireless_settings" settings:icon="@drawable/ic_settings_wireless">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.WirelessSettings" />
</com.android.settings.IconPreferenceScreen>
This may be different according to ur phone -->> android:title="@string/radio_controls_title"
Click to expand...
Click to collapse
So now we'll need to categorize other things
Code:
<PreferenceCategory android:title="Text goes here" />
REFER TO THIS IMAGE
#So i guess you have understood it
Your whole settings.xml should look like this
Code:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen android:title="@string/settings_label" android:key="parent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<PreferenceCategory android:title="Wireless and Networks" />
<com.android.settings.IconPreferenceScreen android:title="Wi-Fi" settings:icon="@drawable/wifi">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.wifi.WifiSettings" />
</com.android.settings.IconPreferenceScreen>
<com.android.settings.IconPreferenceScreen android:title="Bluetooth" settings:icon="@drawable/bt">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.bluetooth.BluetoothSettings" />
</com.android.settings.IconPreferenceScreen>
<com.android.settings.IconPreferenceScreen android:title="More" settings:icon="@drawable/ic_settings_more">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.WirelessSettings" />
</com.android.settings.IconPreferenceScreen>
<PreferenceCategory android:title="Device" />
<com.android.settings.IconPreferenceScreen android:title="@string/call_settings_title" android:key="call_settings" settings:icon="@drawable/ic_settings_call">
<intent android:targetPackage="com.android.phone" android:action="android.intent.action.MAIN" android:targetClass="com.android.phone.CallFeaturesSetting" />
</com.android.settings.IconPreferenceScreen>
<com.android.settings.IconPreferenceScreen android:title="@string/sound_settings_title" settings:icon="@drawable/ic_settings_sound">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.SoundSettings" />
</com.android.settings.IconPreferenceScreen>
<com.android.settings.IconPreferenceScreen android:title="@string/display_settings_title" settings:icon="@drawable/ic_settings_display">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.DisplaySettings" />
</com.android.settings.IconPreferenceScreen>
<com.android.settings.IconPreferenceScreen android:title="@string/storage_settings" settings:icon="@drawable/ic_settings_storage">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.deviceinfo.Memory" />
</com.android.settings.IconPreferenceScreen>
<com.android.settings.IconPreferenceScreen android:title="@string/power_usage_summary_text" settings:icon="@drawable/ic_settings_battery">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.fuelgauge.PowerUsageSummary" />
</com.android.settings.IconPreferenceScreen>
<com.android.settings.IconPreferenceScreen android:title="@string/applications_settings" android:key="applications_settings" settings:icon="@drawable/ic_settings_applications">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.ApplicationSettings" />
</com.android.settings.IconPreferenceScreen>
<PreferenceCategory android:title="Personal" />
<com.android.settings.IconPreferenceScreen android:title="@string/sync_settings" android:key="sync_settings" settings:icon="@drawable/ic_settings_sync">
<intent android:action="android.settings.SYNC_SETTINGS" />
</com.android.settings.IconPreferenceScreen>
<com.android.settings.IconPreferenceScreen android:title="@string/security_settings_title" android:key="security_settings" settings:icon="@drawable/ic_settings_security">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.SecuritySettings" />
</com.android.settings.IconPreferenceScreen>
<com.android.settings.IconPreferenceScreen android:title="@string/location_settings_title" android:key="security_settings" settings:icon="@drawable/ic_settings_location">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.SecuritySettings" />
</com.android.settings.IconPreferenceScreen>
<com.android.settings.IconPreferenceScreen android:title="@string/privacy_settings" android:key="privacy_settings" settings:icon="@drawable/ic_settings_privacy">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.PrivacySettings" />
</com.android.settings.IconPreferenceScreen>
<com.android.settings.IconPreferenceScreen android:title="@string/search_settings" android:key="search_settings" settings:icon="@drawable/ic_settings_search">
<intent android:action="android.search.action.SEARCH_SETTINGS" />
</com.android.settings.IconPreferenceScreen>
<com.android.settings.IconPreferenceScreen android:title="@string/language_settings" settings:icon="@drawable/ic_settings_language">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.LanguageSettings" />
</com.android.settings.IconPreferenceScreen>
<com.android.settings.IconPreferenceScreen android:title="@string/voice_input_output_settings" settings:icon="@drawable/ic_settings_speech">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.VoiceInputOutputSettings" />
</com.android.settings.IconPreferenceScreen>
<PreferenceCategory android:title="Management" />
<com.android.settings.IconPreferenceScreen android:title="@string/dock_settings_title" android:key="dock_settings" settings:icon="@drawable/ic_settings_dock">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.DockSettings" />
</com.android.settings.IconPreferenceScreen>
<com.android.settings.IconPreferenceScreen android:title="@string/accessibility_settings" settings:icon="@drawable/ic_settings_accessibility">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.AccessibilitySettings" />
</com.android.settings.IconPreferenceScreen>
<com.android.settings.IconPreferenceScreen android:title="@string/date_and_time_settings_title" settings:icon="@drawable/ic_settings_date_time">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.DateTimeSettings" />
</com.android.settings.IconPreferenceScreen>
<PreferenceCategory android:title="About" />
<com.android.settings.IconPreferenceScreen android:title="@string/about_settings" settings:icon="@drawable/ic_settings_about">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.DeviceInfoSettings" />
</com.android.settings.IconPreferenceScreen>
</PreferenceScreen>
Now u can add this code where u want the category to appear...
Save it.
Done
Click to expand...
Click to collapse
Ohh...wait U wanna add some info of your rom and other stuff in about section then lets go
To add your rom info in About section of your settings
Open device_info_settings.xml from xml folder
It should look something like this...
#Now we do not have to touch this part...(or else it might give error)
So now we need to add some info in that part...
Code:
<Preference android:title="Rom Name" android:summary="Rom name goes here" style="?android:preferenceInformationStyle" />
<Preference android:title="Rom Developer" android:summary="ADd ur name here" style="?android:preferenceInformationStyle" />
Add this code before [[ </PreferenceScreen> ]]
It should look like this...
Click to expand...
Click to collapse
BINGO
You are done...
Now you can compile back ur apk...(i hope u know how to do it if u dont know then follow some guides)
Remember to delete Modified xmls and resource.arsc from keep folder...
Click to expand...
Click to collapse
Screenshot of modified ics settings

Dialer codes

While going through some things I came across this
Code:
<?xml version="1.0" encoding="UTF-8"?>
<filter-conf>
<!-- *#808# -->
<!--
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.EngineerModeMain" />
-->
<!-- *#36446337# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.EngineeringMode" />
<!-- *#8778# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.MasterClear" />
<!-- *#806# -->
<!--
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.autoaging.AutoAgingMainListActivity" />
-->
<!-- *##*37847# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.DeviceListActivity" />
<!-- *#*#7668#*#* -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.CheckRootStatusActivity" />
<!-- *#807# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.autotest.AutoTest" />
<!-- *#805# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.bluetoothtest.BluetoothTest" />
<!-- *#804# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.NetworkSearch" />
<!-- *#803# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.wifitest.WifiSettings" />
<!-- *#802# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.gps.GpsActivity" />
<!-- *#99# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.KeepSrceenOn" />
<!-- *#6776# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.CheckSoftwareInfo" />
<!-- *#888# -->
<!--
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.PcbShow" />
-->
<!-- *#809# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.echotest.EchoTest" />
<!-- *##*8110# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.qualcomm.OtaSwitch" />
<!-- *#801# -->
<!--
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.qualcomm.DiagEnabled" />
-->
<!-- *#008# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.LanguageSwitchToChineseActivity" />
<!-- *#67760044# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.LanguageSwitchToEnglishActivity" />
<!-- *#268# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.qualcomm.QualCommActivity" />
<!-- *#900# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.BackCameraAdjusting" />
<!-- *#911# -->
<!--<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.PowerOff" />-->
<!-- *#10000# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.MarkResultShow" />
<!-- *#814# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.TDSNetworkSearch" />
<!-- *#824# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.WCDMANetworkSearch" />
<!-- *#834# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.LTENetworkSearch" />
<!-- *#818# *#838# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.NetworkSearch_New" />
<!-- *#928# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.wifitest.WifiFTMActivity" />
<!-- *#8019# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.wifitest.WifiSocketHelper" />
<!-- *#7332# -->
<activity packageName="com.oem.rftoolkit" className="com.oem.rftoolkit.RfToolkitFactory" />
<!-- *#7328# -->
<activity packageName="com.oem.rftoolkit" className="com.oem.rftoolkit.RfToolkitAgingTest" />
<!-- *#7327# -->
<activity packageName="com.oem.rftoolkit" className="com.oem.rftoolkit.RfToolkitCustomerService" />
<!-- fingerprint calibration -->
<activity packageName="com.fingerprints.fingerprintsensortest" className="com.fingerprints.fingerprintsensortest.FUNFingerPrintCalibrationTest" />
<!-- *#806# result page -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.pt.PtActivity" />
<!-- fingerprint calibration result -->
<activity packageName="com.fingerprints.fingerprintsensortest" className="com.fingerprints.fingerprintsensortest.FTFingerPrintCalibrationResult" />
<!-- *#899# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.aftersale.ChooseBackCoverColor" />
<!-- *#845# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.wifitest.WifiApSettings" />
<!-- *#*#866#*#* -->
<activity packageName="com.example.tmo" className="com.example.tmo.TmoActivityList" />
<!-- *#8020# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.wifitest.WifiAdbHelper" />
<!-- fingerprint calibration -->
<activity packageName="com.fingerprints.fingerprintsensortest" className="com.fingerprints.fingerprintsensortest.FTFingerPrintCalibrationTest" />
<!-- front camera motor and hall calibration -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.motor.MotorHallAfterSaleCalibration" />
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.motor.MotorHallCalibrateActivity" />
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.motor.MotorHallForceMove" />
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.motor.MotorHallSelfTest" />
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.motor.MotorStepHallCalibration" />
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.motor.MotorStepTest" />
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.motor.MotorTestActivity" />
</filter-conf>
This file was taken from T-Mobile GM1915
Please be careful what you do as I'm just posting a find. I have not tested.
So the risk is on you.
twinnfamous said:
While going through some things I came across this
Code:
<?xml version="1.0" encoding="UTF-8"?>
<filter-conf>
<!-- *#808# -->
<!--
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.EngineerModeMain" />
-->
<!-- *#36446337# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.EngineeringMode" />
<!-- *#8778# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.MasterClear" />
<!-- *#806# -->
<!--
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.autoaging.AutoAgingMainListActivity" />
-->
<!-- *##*37847# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.DeviceListActivity" />
<!-- *#*#7668#*#* -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.CheckRootStatusActivity" />
<!-- *#807# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.autotest.AutoTest" />
<!-- *#805# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.bluetoothtest.BluetoothTest" />
<!-- *#804# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.NetworkSearch" />
<!-- *#803# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.wifitest.WifiSettings" />
<!-- *#802# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.gps.GpsActivity" />
<!-- *#99# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.KeepSrceenOn" />
<!-- *#6776# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.CheckSoftwareInfo" />
<!-- *#888# -->
<!--
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.PcbShow" />
-->
<!-- *#809# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.echotest.EchoTest" />
<!-- *##*8110# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.qualcomm.OtaSwitch" />
<!-- *#801# -->
<!--
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.qualcomm.DiagEnabled" />
-->
<!-- *#008# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.LanguageSwitchToChineseActivity" />
<!-- *#67760044# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.LanguageSwitchToEnglishActivity" />
<!-- *#268# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.qualcomm.QualCommActivity" />
<!-- *#900# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.BackCameraAdjusting" />
<!-- *#911# -->
<!--<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.PowerOff" />-->
<!-- *#10000# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.MarkResultShow" />
<!-- *#814# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.TDSNetworkSearch" />
<!-- *#824# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.WCDMANetworkSearch" />
<!-- *#834# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.LTENetworkSearch" />
<!-- *#818# *#838# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.NetworkSearch_New" />
<!-- *#928# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.wifitest.WifiFTMActivity" />
<!-- *#8019# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.wifitest.WifiSocketHelper" />
<!-- *#7332# -->
<activity packageName="com.oem.rftoolkit" className="com.oem.rftoolkit.RfToolkitFactory" />
<!-- *#7328# -->
<activity packageName="com.oem.rftoolkit" className="com.oem.rftoolkit.RfToolkitAgingTest" />
<!-- *#7327# -->
<activity packageName="com.oem.rftoolkit" className="com.oem.rftoolkit.RfToolkitCustomerService" />
<!-- fingerprint calibration -->
<activity packageName="com.fingerprints.fingerprintsensortest" className="com.fingerprints.fingerprintsensortest.FUNFingerPrintCalibrationTest" />
<!-- *#806# result page -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.pt.PtActivity" />
<!-- fingerprint calibration result -->
<activity packageName="com.fingerprints.fingerprintsensortest" className="com.fingerprints.fingerprintsensortest.FTFingerPrintCalibrationResult" />
<!-- *#899# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.aftersale.ChooseBackCoverColor" />
<!-- *#845# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.wifitest.WifiApSettings" />
<!-- *#*#866#*#* -->
<activity packageName="com.example.tmo" className="com.example.tmo.TmoActivityList" />
<!-- *#8020# -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.wifitest.WifiAdbHelper" />
<!-- fingerprint calibration -->
<activity packageName="com.fingerprints.fingerprintsensortest" className="com.fingerprints.fingerprintsensortest.FTFingerPrintCalibrationTest" />
<!-- front camera motor and hall calibration -->
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.motor.MotorHallAfterSaleCalibration" />
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.motor.MotorHallCalibrateActivity" />
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.motor.MotorHallForceMove" />
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.motor.MotorHallSelfTest" />
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.motor.MotorStepHallCalibration" />
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.motor.MotorStepTest" />
<activity packageName="com.oneplus.factorymode" className="com.oneplus.factorymode.manualtest.motor.MotorTestActivity" />
</filter-conf>
This file was taken from T-Mobile GM1915
Please be careful what you do as I'm just posting a find. I have not tested.
So the risk is on you.
Click to expand...
Click to collapse
*#808# is all you need as all others are part of the same tree of tests and callibrations

Change CSC to KOO and receive FOTA?

If you change CSC to KOO using ODIN AP/BL method with ATF3 file you won't receive FOTA updates?
KOO needs the latest KOO firmware which is R840XXU1BTHA or one of the previous ones R840XXU1BTH4 or R840XXU1BTG6 for FOTA to work?
Does anyone have the files to upload or link for them?
I did see Firmware R840XXU1BTG6_CSC OXA but being OXA would have features disabled, no spay, no BP function, not full KOO functionality and FOTA?
https://forum.xda-developers.com/showpost.php?p=83275439&postcount=29
Check this...
You could try ATF6 or the other Firmwares linked...
Best Regards
adfree said:
https://forum.xda-developers.com/showpost.php?p=83275439&postcount=29
Check this...
You could try ATF6 or the other Firmwares linked...
Best Regards
Click to expand...
Click to collapse
Thank you for such quick response
I had read that and buried in there I read someone said they couldn't do FOTA when they used ATF3? Then you noted KOO have different firmware BTG6 and since then newer firmware? But the BTG6 firmware is Poland OXA which doesn't have KOO functions?
Another person said if you have XAC you can change to KOO just by dialing some special sequence of numbers?
KOO firmwares https://doc.samsungmobile.com/SM-R840/KOO/doc.html
Come in and find out...
Dreams and Reality.
A
If you can use Tool like 7Zip..
You can extract files and folders from csc.img
B
SM-R840 and SM-R850 have ALL in ONE CSC package... called OXA Region...
Code:
<?xml version="1.0" encoding="UTF-8"?>
<SW-Configuration>
<MobileData>
<PublicName>SM-R840</PublicName>
<NickName />
</MobileData>
<CustomerDataSet>
<CSCName>R840OXA</CSCName>
<CSCVersion>1ATF6</CSCVersion>
<NbCustomer>[COLOR="Green"][B]79[/B][/COLOR]</NbCustomer>
<CustomerData src="/Customer/XAR/customer.xml" />
<CustomerData src="/Customer/ACR/customer.xml" />
<CustomerData src="/Customer/AFR/customer.xml" />
<CustomerData src="/Customer/ARO/customer.xml" />
<CustomerData src="/Customer/ASA/customer.xml" />
<CustomerData src="/Customer/ATO/customer.xml" />
<CustomerData src="/Customer/AUT/customer.xml" />
<CustomerData src="/Customer/BGL/customer.xml" />
<CustomerData src="/Customer/BNG/customer.xml" />
<CustomerData src="/Customer/BRI/customer.xml" />
<CustomerData src="/Customer/BTU/customer.xml" />
<CustomerData src="/Customer/BVO/customer.xml" />
<CustomerData src="/Customer/CAC/customer.xml" />
<CustomerData src="/Customer/CAM/customer.xml" />
<CustomerData src="/Customer/CHC/customer.xml" />
<CustomerData src="/Customer/CHO/customer.xml" />
<CustomerData src="/Customer/CIS/customer.xml" />
<CustomerData src="/Customer/COO/customer.xml" />
<CustomerData src="/Customer/DBT/customer.xml" />
<CustomerData src="/Customer/DKR/customer.xml" />
<CustomerData src="/Customer/ECT/customer.xml" />
<CustomerData src="/Customer/EGY/customer.xml" />
<CustomerData src="/Customer/EUA/customer.xml" />
<CustomerData src="/Customer/EUB/customer.xml" />
<CustomerData src="/Customer/EUD/customer.xml" />
<CustomerData src="/Customer/EUE/customer.xml" />
<CustomerData src="/Customer/EUF/customer.xml" />
<CustomerData src="/Customer/EUR/customer.xml" />
<CustomerData src="/Customer/ILO/customer.xml" />
<CustomerData src="/Customer/INS/customer.xml" />
<CustomerData src="/Customer/ITV/customer.xml" />
<CustomerData src="/Customer/KOO/customer.xml" />
<CustomerData src="/Customer/KSA/customer.xml" />
<CustomerData src="/Customer/LTA/customer.xml" />
<CustomerData src="/Customer/LUX/customer.xml" />
<CustomerData src="/Customer/MEA/customer.xml" />
<CustomerData src="/Customer/MID/customer.xml" />
<CustomerData src="/Customer/MWD/customer.xml" />
<CustomerData src="/Customer/MXO/customer.xml" />
<CustomerData src="/Customer/MYM/customer.xml" />
<CustomerData src="/Customer/NBS/customer.xml" />
<CustomerData src="/Customer/NPL/customer.xml" />
<CustomerData src="/Customer/PAK/customer.xml" />
<CustomerData src="/Customer/PEO/customer.xml" />
<CustomerData src="/Customer/PHE/customer.xml" />
<CustomerData src="/Customer/PHN/customer.xml" />
<CustomerData src="/Customer/ROM/customer.xml" />
<CustomerData src="/Customer/SEB/customer.xml" />
<CustomerData src="/Customer/SEE/customer.xml" />
<CustomerData src="/Customer/SEK/customer.xml" />
<CustomerData src="/Customer/SER/customer.xml" />
<CustomerData src="/Customer/SKZ/customer.xml" />
<CustomerData src="/Customer/SLK/customer.xml" />
<CustomerData src="/Customer/TGY/customer.xml" />
<CustomerData src="/Customer/THO/customer.xml" />
<CustomerData src="/Customer/TPA/customer.xml" />
<CustomerData src="/Customer/TPH/customer.xml" />
<CustomerData src="/Customer/TTT/customer.xml" />
<CustomerData src="/Customer/TUN/customer.xml" />
<CustomerData src="/Customer/TUR/customer.xml" />
<CustomerData src="/Customer/UPO/customer.xml" />
<CustomerData src="/Customer/UYO/customer.xml" />
<CustomerData src="/Customer/XAC/customer.xml" />
<CustomerData src="/Customer/XEF/customer.xml" />
<CustomerData src="/Customer/XEH/customer.xml" />
<CustomerData src="/Customer/XEO/customer.xml" />
<CustomerData src="/Customer/XEZ/customer.xml" />
<CustomerData src="/Customer/XFA/customer.xml" />
<CustomerData src="/Customer/XJP/customer.xml" />
<CustomerData src="/Customer/XME/customer.xml" />
<CustomerData src="/Customer/XNZ/customer.xml" />
<CustomerData src="/Customer/XSA/customer.xml" />
<CustomerData src="/Customer/XSE/customer.xml" />
<CustomerData src="/Customer/XSG/customer.xml" />
<CustomerData src="/Customer/XSK/customer.xml" />
<CustomerData src="/Customer/XSP/customer.xml" />
<CustomerData src="/Customer/XTC/customer.xml" />
<CustomerData src="/Customer/XXV/customer.xml" />
<CustomerData src="/Customer/ZTO/customer.xml" />
</CustomerDataSet>
</SW-Configuration>
If you can find this file inside csc.img... you see 79 CSC aka Sales Codes inside this OXA package...
Best Regards
adfree said:
Come in and find out...
Dreams and Reality.
A
If you can use Tool like 7Zip..
You can extract files and folders from csc.img
B
SM-R840 and SM-R850 have ALL in ONE CSC package... called OXA Region...
Code:
<?xml version="1.0" encoding="UTF-8"?>
<SW-Configuration>
<MobileData>
<PublicName>SM-R840</PublicName>
<NickName />
</MobileData>
<CustomerDataSet>
<CSCName>R840OXA</CSCName>
<CSCVersion>1ATF6</CSCVersion>
<NbCustomer>[COLOR="Green"][B]79[/B][/COLOR]</NbCustomer>
<CustomerData src="/Customer/XAR/customer.xml" />
<CustomerData src="/Customer/ACR/customer.xml" />
<CustomerData src="/Customer/AFR/customer.xml" />
<CustomerData src="/Customer/ARO/customer.xml" />
<CustomerData src="/Customer/ASA/customer.xml" />
<CustomerData src="/Customer/ATO/customer.xml" />
<CustomerData src="/Customer/AUT/customer.xml" />
<CustomerData src="/Customer/BGL/customer.xml" />
<CustomerData src="/Customer/BNG/customer.xml" />
<CustomerData src="/Customer/BRI/customer.xml" />
<CustomerData src="/Customer/BTU/customer.xml" />
<CustomerData src="/Customer/BVO/customer.xml" />
<CustomerData src="/Customer/CAC/customer.xml" />
<CustomerData src="/Customer/CAM/customer.xml" />
<CustomerData src="/Customer/CHC/customer.xml" />
<CustomerData src="/Customer/CHO/customer.xml" />
<CustomerData src="/Customer/CIS/customer.xml" />
<CustomerData src="/Customer/COO/customer.xml" />
<CustomerData src="/Customer/DBT/customer.xml" />
<CustomerData src="/Customer/DKR/customer.xml" />
<CustomerData src="/Customer/ECT/customer.xml" />
<CustomerData src="/Customer/EGY/customer.xml" />
<CustomerData src="/Customer/EUA/customer.xml" />
<CustomerData src="/Customer/EUB/customer.xml" />
<CustomerData src="/Customer/EUD/customer.xml" />
<CustomerData src="/Customer/EUE/customer.xml" />
<CustomerData src="/Customer/EUF/customer.xml" />
<CustomerData src="/Customer/EUR/customer.xml" />
<CustomerData src="/Customer/ILO/customer.xml" />
<CustomerData src="/Customer/INS/customer.xml" />
<CustomerData src="/Customer/ITV/customer.xml" />
<CustomerData src="/Customer/KOO/customer.xml" />
<CustomerData src="/Customer/KSA/customer.xml" />
<CustomerData src="/Customer/LTA/customer.xml" />
<CustomerData src="/Customer/LUX/customer.xml" />
<CustomerData src="/Customer/MEA/customer.xml" />
<CustomerData src="/Customer/MID/customer.xml" />
<CustomerData src="/Customer/MWD/customer.xml" />
<CustomerData src="/Customer/MXO/customer.xml" />
<CustomerData src="/Customer/MYM/customer.xml" />
<CustomerData src="/Customer/NBS/customer.xml" />
<CustomerData src="/Customer/NPL/customer.xml" />
<CustomerData src="/Customer/PAK/customer.xml" />
<CustomerData src="/Customer/PEO/customer.xml" />
<CustomerData src="/Customer/PHE/customer.xml" />
<CustomerData src="/Customer/PHN/customer.xml" />
<CustomerData src="/Customer/ROM/customer.xml" />
<CustomerData src="/Customer/SEB/customer.xml" />
<CustomerData src="/Customer/SEE/customer.xml" />
<CustomerData src="/Customer/SEK/customer.xml" />
<CustomerData src="/Customer/SER/customer.xml" />
<CustomerData src="/Customer/SKZ/customer.xml" />
<CustomerData src="/Customer/SLK/customer.xml" />
<CustomerData src="/Customer/TGY/customer.xml" />
<CustomerData src="/Customer/THO/customer.xml" />
<CustomerData src="/Customer/TPA/customer.xml" />
<CustomerData src="/Customer/TPH/customer.xml" />
<CustomerData src="/Customer/TTT/customer.xml" />
<CustomerData src="/Customer/TUN/customer.xml" />
<CustomerData src="/Customer/TUR/customer.xml" />
<CustomerData src="/Customer/UPO/customer.xml" />
<CustomerData src="/Customer/UYO/customer.xml" />
<CustomerData src="/Customer/XAC/customer.xml" />
<CustomerData src="/Customer/XEF/customer.xml" />
<CustomerData src="/Customer/XEH/customer.xml" />
<CustomerData src="/Customer/XEO/customer.xml" />
<CustomerData src="/Customer/XEZ/customer.xml" />
<CustomerData src="/Customer/XFA/customer.xml" />
<CustomerData src="/Customer/XJP/customer.xml" />
<CustomerData src="/Customer/XME/customer.xml" />
<CustomerData src="/Customer/XNZ/customer.xml" />
<CustomerData src="/Customer/XSA/customer.xml" />
<CustomerData src="/Customer/XSE/customer.xml" />
<CustomerData src="/Customer/XSG/customer.xml" />
<CustomerData src="/Customer/XSK/customer.xml" />
<CustomerData src="/Customer/XSP/customer.xml" />
<CustomerData src="/Customer/XTC/customer.xml" />
<CustomerData src="/Customer/XXV/customer.xml" />
<CustomerData src="/Customer/ZTO/customer.xml" />
</CustomerDataSet>
</SW-Configuration>
If you can find this file inside csc.img... you see 79 CSC aka Sales Codes inside this OXA package...
Best Regards
Click to expand...
Click to collapse
I'm sorry I'm a little bit confused.
Does that mean I can use that oxa firmware and everything will work fine eg BP, SPay and Fora?
Or do I need to modify something?
I might have gotten confused thinking oxa is Poland.
Edit 3.
BTG6 for SM-R840
https://forum.xda-developers.com/sma...c-oxa-t4166767
Click to expand...
Click to collapse
Switched to KOO fine after using EF extractor to extract AP, BL and CSC files from that single btg6 OXA and flashing them on with ODIN. Not sure if the combination firmware step is needed like in the youtube video and manually changing the region code on the 2 files if you have these 3 files?
KOO has no SPay on gw3 which makes no sense...
How can I have both SPay and BP working? XAR allowed SPay but no BP.

How To Guide How to change files in Android XML Binary format

In the OmniROM (tested in OmniROM 12 and OmniROM 13) - and I assume in other Android distributions also - global settings are stored the file
/data/system/users/0/settings_global.xml
The file settings_global.xml is in the Android Binary XML format and can not be edited via text editor. To change the entries in that file via script it must be converted to text format and after the necessary changes are done in the file in human readable format converted back from text format to the Android Binary XML format. This can be done with the Android executables abx2xml and xml2abx:
Code:
ASUS_I006D:/ # abx2xml -h
java.lang.ArrayIndexOutOfBoundsException: length=2; index=2
usage: abx2xml [-i] input [output]
usage: xml2abx [-i] input [output]
Converts between human-readable XML and Android Binary XML.
When invoked with the '-i' argument, the output of a successful conversion
will overwrite the original input file. Input can be '-' to use stdin, and
output can be '-' to use stdout.
ASUS_I006D:/ #
Note:
See here https://www.cclsolutionsgroup.com/post/android-abx-binary-xml or here https://cs.android.com/android/plat...ndroid/internal/util/BinaryXmlSerializer.java for details about the Android Binary XML file format.
A lot of xml files in Android are in the Android Binary XML format (there may be others on other phones):
Code:
ASUS_I006D:/ # find /data/system -name "*.xml" -exec file {} \; 2>/dev/null | grep "Android Binary XML" | wc -l
31
ASUS_I006D:/ #
Spoiler: List of XML files in Android Binary XML format in OmniROM 13
Code:
find /data/system -name "*.xml" -exec file {} \; 2>/dev/null | grep "Android Binary XML"
ASUS_I006D:/ # find /data/system -name "*.xml" -exec file {} \; 2>/dev/null | grep "Android Binary XML"
/data/system/users/0/package-restrictions.xml: Android Binary XML v0
/data/system/users/0/registered_services/android.content.SyncAdapter.xml: Android Binary XML v0
/data/system/users/0/registered_services/android.accounts.AccountAuthenticator.xml: Android Binary XML v0
/data/system/users/0/settings_system.xml: Android Binary XML v0
/data/system/users/0/settings_secure.xml: Android Binary XML v0
/data/system/users/0/settings_global.xml: Android Binary XML v0
/data/system/users/0/wallpaper_info.xml: Android Binary XML v0
/data/system/users/0/appwidgets.xml: Android Binary XML v0
/data/system/users/0.xml: Android Binary XML v0
/data/system/users/userlist.xml: Android Binary XML v0
/data/system/appops/history/900000.xml: Android Binary XML v0
/data/system/appops/history/9900000.xml: Android Binary XML v0
/data/system/appops/history/99900000.xml: Android Binary XML v0
/data/system/package-watchdog.xml: Android Binary XML v0
/data/system/display-manager-state.xml: Android Binary XML v0
/data/system/packages.xml: Android Binary XML v0
/data/system/overlays.xml: Android Binary XML v0
/data/system/sensor_privacy.xml: Android Binary XML v0
/data/system/watchlist_settings.xml: Android Binary XML v0
/data/system/cachequota.xml: Android Binary XML v0
/data/system/job/jobs.xml: Android Binary XML v0
/data/system/device_policies.xml: Android Binary XML v0
/data/system/shortcut_service.xml: Android Binary XML v0
/data/system/inputmethod/subtypes.xml: Android Binary XML v0
/data/system/install_sessions.xml: Android Binary XML v0
/data/system/appops.xml: Android Binary XML v0
/data/system/log-files.xml: Android Binary XML v0
/data/system/notification_policy.xml: Android Binary XML v0
/data/system/netpolicy.xml: Android Binary XML v0
/data/system/sensor_privacy_impl.xml: Android Binary XML v0
/data/system/batterystats-daily.xml: Android Binary XML v0
ASUS_I006D:/ #
So to change the settings in the file settings_global.xml these commands are necessary:
Example:
Code:
# convert the file into a human readable format
#
ASUS_I006D:/ # abx2xml /data/system/users/0/settings_global.xml /data/local/tmp/setttings_global.xml.human
ASUS_I006D:/ #
ASUS_I006D:/ # ls -l /data/local/tmp/setttings_global.xml.human
-rw-r--r-- 1 root root 15425 2022-11-20 14:30 /data/local/tmp/setttings_global.xml.human
ASUS_I006D:/ #
ASUS_I006D:/ # file /data/local/tmp/setttings_global.xml.human
/data/local/tmp/setttings_global.xml.human: ASCII text
ASUS_I006D:/ #
ASUS_I006D:/ # head -5 /data/local/tmp/setttings_global.xml.human
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<settings version="210">
<setting id="140" name="adb_wifi_enabled" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="86" name="mobile_data1" value="0" package="com.android.phone" defaultValue="0" defaultSysSet="true" />
<setting id="91" name="mobile_data2" value="0" package="com.android.phone" defaultValue="0" defaultSysSet="true" preserve_in_restore="true" />
ASUS_I006D:/ #
Now edit the file /data/local/tmp/setttings_global.xml.human and convert it back to Android Binary XML format
Code:
# convert the XML file in human readable format into the Android Binary XML format
#
ASUS_I006D:/ # xml2abx /data/local/tmp/setttings_global.xml.human /data/system/users/0/settings_global.xml
ASUS_I006D:/ #
ASUS_I006D:/ # ls -l /data/system/users/0/settings_global.xml
-rw------- 1 system system 10697 2022-11-20 15:34 /data/system/users/0/settings_global.xml
ASUS_I006D:/ #
To activate the new settings just reboot the phone.
Note:
The global settings in the file settings_global.xml in the OmniROM 13 are (there may be others on other phones):
Spoiler: Entries in settings_global.xml
Code:
cat /data/local/tmp/setttings_global.xml.human
ASUS_I006D:/ # cat /data/local/tmp/setttings_global.xml.human
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<settings version="210">
<setting id="140" name="adb_wifi_enabled" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="86" name="mobile_data1" value="0" package="com.android.phone" defaultValue="0" defaultSysSet="true" />
<setting id="91" name="mobile_data2" value="0" package="com.android.phone" defaultValue="0" defaultSysSet="true" preserve_in_restore="true" />
<setting id="41" name="low_battery_sound_timeout" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="33" name="car_undock_sound" value="/product/media/audio/ui/Undock.ogg" package="android" defaultValue="/product/media/audio/ui/Undock.ogg" defaultSysSet="true" />
<setting id="131" name="enable_freeform_support" value="0" package="com.android.settings" defaultValue="0" defaultSysSet="true" />
<setting id="128" name="show_notification_channel_warnings" value="0" package="com.android.settings" defaultValue="0" defaultSysSet="true" />
<setting id="103" name="time_remaining_estimate_based_on_usage" value="0" package="com.android.systemui" defaultValue="0" defaultSysSet="true" preserve_in_restore="true" />
<setting id="142" name="development_settings_enabled" value="1" package="com.android.settings" defaultValue="1" defaultSysSet="true" preserve_in_restore="true" />
<setting id="10" name="window_animation_scale" value="1.0" package="android" defaultValue="1.0" defaultSysSet="true" />
<setting id="136" name="stylus_handwriting_enabled" value="0" package="com.android.settings" defaultValue="0" defaultSysSet="true" />
<setting id="129" name="force_allow_on_external" value="0" package="com.android.settings" defaultValue="0" defaultSysSet="true" />
<setting id="106" name="multi_sim_data_call" value="2" package="com.android.phone" defaultValue="2" defaultSysSet="true" preserve_in_restore="true" />
<setting id="122" name="tether_offload_disabled" value="1" package="com.android.settings" defaultValue="1" defaultSysSet="true" />
<setting id="105" name="battery_estimates_last_update_time" value="1668412978004" package="com.android.systemui" defaultValue="1668412978004" defaultSysSet="true" preserve_in_restore="true" />
<setting id="9" name="mode_ringer" value="2" package="android" defaultValue="2" defaultSysSet="true" />
<setting id="36" name="default_install_location" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="22" name="wifi_display_on" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="44" name="device_name" value="ASUS_I006D" package="android" defaultValue="ASUS_I006D" defaultSysSet="true" />
<setting id="13" name="wifi_networks_available_notification_on" value="1" package="android" defaultValue="1" defaultSysSet="true" />
<setting id="29" name="dock_sounds_enabled_when_accessbility" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="14" name="bluetooth_on" value="1" package="android" defaultValue="1" defaultSysSet="true" />
<setting id="115" name="bugreport_in_power_menu" value="0" package="com.android.settings" defaultValue="0" defaultSysSet="true" />
<setting id="18" name="mobile_data" value="1" package="android" defaultValue="1" defaultSysSet="true" />
<setting id="160" name="network_watchlist_last_report_time" value="1668898800000" package="android" defaultValue="1668898800000" defaultSysSet="true" preserve_in_restore="true" />
<setting id="135" name="autofill_logging_level" value="0" package="com.android.settings" defaultValue="0" defaultSysSet="true" />
<setting id="46" name="database_creation_buildid" value="SQ3A.220605.009.A1" package="android" defaultValue="SQ3A.220605.009.A1" defaultSysSet="true" />
<setting id="118" name="art_verifier_verify_debuggable" value="1" package="com.android.settings" defaultValue="1" defaultSysSet="true" />
<setting id="37" name="emergency_tone" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="114" name="adb_allowed_connection_time" value="604800000" package="com.android.settings" defaultValue="604800000" defaultSysSet="true" />
<setting id="53" name="max_sound_trigger_detection_service_ops_per_day" value="1000" package="android" defaultValue="1000" defaultSysSet="true" />
<setting id="47" name="add_users_when_locked" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="34" name="dock_audio_media_enabled" value="1" package="android" defaultValue="1" defaultSysSet="true" />
<setting id="117" name="enable_gpu_debug_layers" value="0" package="com.android.settings" defaultValue="0" defaultSysSet="true" />
<setting id="143" name="adb_enabled" value="1" package="com.android.settings" defaultValue="1" defaultSysSet="true" preserve_in_restore="true" />
<setting id="25" name="trusted_sound" value="/product/media/audio/ui/Trusted.ogg" package="android" defaultValue="/product/media/audio/ui/Trusted.ogg" defaultSysSet="true" />
<setting id="24" name="unlock_sound" value="/product/media/audio/ui/omni_unlock_phone.ogg" package="android" defaultValue="/product/media/audio/ui/omni_unlock_phone.ogg" defaultSysSet="true" />
<setting id="130" name="force_resizable_activities" value="0" package="com.android.settings" defaultValue="0" defaultSysSet="true" />
<setting id="2" name="airplane_mode_radios" value="cell,bluetooth,wifi,nfc,wimax" package="android" defaultValue="cell,bluetooth,wifi,nfc,wimax" defaultSysSet="true" />
<setting id="21" name="wifi_max_dhcp_retry_count" value="9" package="android" defaultValue="9" defaultSysSet="true" />
<setting id="126" name="always_finish_activities" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="3" name="airplane_mode_toggleable_radios" value="bluetooth,wifi,nfc" package="android" defaultValue="bluetooth,wifi,nfc" defaultSysSet="true" />
<setting id="43" name="heads_up_notifications_enabled" value="1" package="android" defaultValue="1" defaultSysSet="true" />
<setting id="78" name="low_power" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="58" name="charging_started_sound" value="/product/media/audio/ui/ChargingStarted.ogg" package="android" defaultValue="/product/media/audio/ui/ChargingStarted.ogg" defaultSysSet="true" />
<setting id="64" name="zen_mode_ringer_level" value="2" package="android" defaultValue="2" defaultSysSet="true" />
<setting id="65" name="user_disabled_hdr_formats" value="" package="android" defaultValue="" defaultSysSet="true" />
<setting id="39" name="preferred_network_mode" value="26,26" package="android" defaultValue="26,26" defaultSysSet="true" />
<setting id="48" name="bluetooth_disabled_profiles" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="31" name="desk_undock_sound" value="/product/media/audio/ui/Undock.ogg" package="android" defaultValue="/product/media/audio/ui/Undock.ogg" defaultSysSet="true" />
<setting id="55" name="zen_duration" package="android" />
<setting id="121" name="mobile_data_always_on" value="1" package="com.android.settings" defaultValue="1" defaultSysSet="true" preserve_in_restore="true" />
<setting id="97" name="debug_app" package="android" preserve_in_restore="true" />
<setting id="8" name="wifi_sleep_policy" value="2" package="android" defaultValue="2" defaultSysSet="true" />
<setting id="28" name="dock_sounds_enabled" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="107" name="wifi_scan_always_enabled" value="1" package="android" defaultValue="1" defaultSysSet="true" preserve_in_restore="true" />
<setting id="127" name="cached_apps_freezer" value="device_default" package="com.android.settings" defaultValue="device_default" defaultSysSet="true" />
<setting id="125" name="overlay_display_devices" package="com.android.settings" />
<setting id="87" name="data_roaming1" value="0" package="com.android.phone" defaultValue="0" defaultSysSet="true" />
<setting id="84" name="data_roaming2" value="0" package="com.android.phone" defaultValue="0" defaultSysSet="true" />
<setting id="138" name="enable_back_animation" value="0" package="com.android.settings" defaultValue="0" defaultSysSet="true" />
<setting id="82" name="network_recommendations_enabled" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="133" name="enable_non_resizable_multi_window" value="0" package="com.android.settings" defaultValue="0" defaultSysSet="true" preserve_in_restore="true" />
<setting id="102" name="bluetooth_sanitized_exposure_notification_supported" value="1" package="com.android.bluetooth" defaultValue="1" defaultSysSet="true" preserve_in_restore="true" />
<setting id="32" name="car_dock_sound" value="/product/media/audio/ui/Dock.ogg" package="android" defaultValue="/product/media/audio/ui/Dock.ogg" defaultSysSet="true" />
<setting id="54" name="sound_trigger_detection_service_op_timeout" value="15000" package="android" defaultValue="15000" defaultSysSet="true" />
<setting id="79" name="updatable_driver_production_denylist" value="" package="android" defaultValue="" defaultSysSet="true" />
<setting id="26" name="power_sounds_enabled" value="1" package="android" defaultValue="1" defaultSysSet="true" />
<setting id="111" name="stay_on_while_plugged_in" value="0" package="com.android.settings" defaultValue="0" defaultSysSet="true" preserve_in_restore="true" />
<setting id="104" name="average_time_to_discharge" value="-1" package="com.android.systemui" defaultValue="-1" defaultSysSet="true" preserve_in_restore="true" />
<setting id="45" name="lid_behavior" value="1" package="android" defaultValue="1" defaultSysSet="true" />
<setting id="159" name="zen_mode_config_etag" value="1249128678" package="android" defaultValue="1249128678" defaultSysSet="true" preserve_in_restore="true" />
<setting id="35" name="set_install_location" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="116" name="debug_view_attributes" value="0" package="com.android.settings" defaultValue="0" defaultSysSet="true" />
<setting id="62" name="zen_mode" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="11" name="transition_animation_scale" value="1.0" package="android" defaultValue="1.0" defaultSysSet="true" />
<setting id="16" name="data_roaming" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="80" name="sysui_tuner_demo_on" value="0" package="com.android.systemui" defaultValue="0" defaultSysSet="true" />
<setting id="123" name="debug.force_rtl" value="0" package="com.android.settings" defaultValue="0" defaultSysSet="true" />
<setting id="1" name="theater_mode_on" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="15" name="cdma_cell_broadcast_sms" value="1" package="android" defaultValue="1" defaultSysSet="true" />
<setting id="137" name="ingress_rate_limit_bytes_per_second" value="-1" package="com.android.settings" defaultValue="-1" defaultSysSet="true" />
<setting id="0" name="airplane_mode_on" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="132" name="force_desktop_mode_on_external_displays" value="0" package="com.android.settings" defaultValue="0" defaultSysSet="true" />
<setting id="50" name="default_restrict_background_data" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="27" name="low_battery_sound" value="/product/media/audio/ui/omni_lowbattery1.ogg" package="android" defaultValue="/product/media/audio/ui/omni_lowbattery1.ogg" defaultSysSet="true" />
<setting id="56" name="apply_ramping_ringer" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="95" name="wait_for_debugger" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="19" name="netstats_enabled" value="1" package="android" defaultValue="1" defaultSysSet="true" />
<setting id="49" name="wifi_wakeup_enabled" value="1" package="android" defaultValue="1" defaultSysSet="true" />
<setting id="112" name="ota_disable_automatic_update" value="1" package="com.android.settings" defaultValue="1" defaultSysSet="true" />
<setting id="63" name="wifi_migration_completed" value="1" package="android" defaultValue="1" defaultSysSet="true" />
<setting id="101" name="time_remaining_estimate_millis" value="-1" package="com.android.systemui" defaultValue="-1" defaultSysSet="true" preserve_in_restore="true" />
<setting id="40" name="subscription_mode" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="4" name="assisted_gps_enabled" value="1" package="android" defaultValue="1" defaultSysSet="true" />
<setting id="23" name="lock_sound" value="/product/media/audio/ui/omni_lock_phone.ogg" package="android" defaultValue="/product/media/audio/ui/omni_lock_phone.ogg" defaultSysSet="true" />
<setting id="120" name="non_persistent_mac_randomization_force_enabled" value="0" package="com.android.settings" defaultValue="0" defaultSysSet="true" />
<setting id="6" name="auto_time_zone" value="1" package="android" defaultValue="1" defaultSysSet="true" />
<setting id="134" name="enable_gnss_raw_meas_full_tracking" value="0" package="com.android.settings" defaultValue="0" defaultSysSet="true" />
<setting id="88" name="wifi_on" value="1" package="android" defaultValue="1" defaultSysSet="true" preserve_in_restore="true" />
<setting id="57" name="wireless_charging_started_sound" value="/product/media/audio/ui/WirelessChargingStarted.ogg" package="android" defaultValue="/product/media/audio/ui/WirelessChargingStarted.ogg" defaultSysSet="true" />
<setting id="83" name="device_provisioned" value="1" package="com.android.provision" defaultValue="1" defaultSysSet="true" preserve_in_restore="true" />
<setting id="119" name="wifi_display_certification_on" value="0" package="com.android.settings" defaultValue="0" defaultSysSet="true" />
<setting id="81" name="sysui_demo_allowed" value="0" package="com.android.systemui" defaultValue="0" defaultSysSet="true" />
<setting id="59" name="hdmi_control_auto_device_off_enabled" value="1" package="android" defaultValue="1" defaultSysSet="true" />
<setting id="5" name="auto_time" value="1" package="android" defaultValue="1" defaultSysSet="true" />
<setting id="20" name="usb_mass_storage_enabled" value="1" package="android" defaultValue="1" defaultSysSet="true" />
<setting id="38" name="call_auto_retry" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="77" name="audio_safe_volume_state" value="3" package="android" defaultValue="3" defaultSysSet="true" />
<setting id="141" name="boot_count" value="4" package="android" defaultValue="4" defaultSysSet="true" preserve_in_restore="true" />
<setting id="30" name="desk_dock_sound" value="/product/media/audio/ui/Dock.ogg" package="android" defaultValue="/product/media/audio/ui/Dock.ogg" defaultSysSet="true" />
<setting id="124" name="animator_duration_scale" value="1.0" package="android" defaultValue="1.0" defaultSysSet="true" />
</settings>
ASUS_I006D:/ #
Working with files in Android Binary XML format on a PC
I do not know a tool to convert a file in Android Binary XML format to human readable format on a PC.
There is a tool to convert binary XML files used in apk files to human readable format and vice versa called xml2axml (https://github.com/hzw1199/xml2axml)
XML files used in apk files are in AXML format, which is also a binary format for XML files, but different from the Android Binary XML format.
I used xml2axml successfully to convert XML files used in apk files but xml2axml does not work for files in the Android Binary XML format.
I did not test it but I assume that's also true for other tools to work with apk files like apktool or dex2jar.
Other tools for files in Android Binary XML format I found are:
The abx converter from here https://github.com/cclgroupltd/android-bits/tree/main/ccl_abx claims to be a tool to convert Android Binary XML files but seems not to work for Android Binary XML files from OmniROM 13:
Code:
[[email protected] /data/develop/android/android-bits-main/ccl_abx]$ python3 ccl_abx.py ../../test2/settings_global.xml
Traceback (most recent call last):
File "/data/develop/android/android-bits-main/ccl_abx/ccl_abx.py", line 292, in <module>
main(sys.argv[1:])
File "/data/develop/android/android-bits-main/ccl_abx/ccl_abx.py", line 284, in main
doc = reader.read(is_multi_root=multi_root)
File "/data/develop/android/android-bits-main/ccl_abx/ccl_abx.py", line 266, in read
raise NotImplementedError(f"unexpected XML type: {xml_type}")
NotImplementedError: unexpected XML type: 7
[[email protected] /data/develop/android/android-bits-main/ccl_abx]$
Update 23.11.2022 /bs
ccl_abx.py works for the Android Binary XML files from OmniROM 12, e.g.
Code:
[[email protected] /data/develop/android/android-bits-main/ccl_abx]$ python3 ccl_abx.py ../../test2/settings_global_a12.xml -mr | sed "s/>/>\n/g" | more
<root>
<settings version="205">
<setting id="67" name="adb_wifi_enabled" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="91" name="mobile_data1" value="0" package="com.android.phone" defaultValue="0" defaultSysSet="true" preserve_in_restore="true" />
<setting id="87" name="mobile_data2" value="0" package="com.android.phone" defaultValue="0" defaultSysSet="true" />
<setting id="41" name="low_battery_sound_timeout" value="0" package="android" defaultValue="0" defaultSysSet="true" />
<setting id="33" name="car_undock_sound" value="/product/media/audio/ui/Undock.ogg" package="android" defaultValue="/product/media/audio/ui/Undock.ogg" defaultSysSet="true" />
<setting id="101" name="time_remaining_estimate_based_on_usage" value="0" package="com.android.systemui" defaultValue="0" defaultSysSet="true" preserve_in_restore="true" />
....
<setting id="85" name="wifi_on" value="1" package="android" defaultValue="1" defaultSysSet="true" preserve_in_restore="true" />
<setting id="57" name="wireless_charging_started_sound" value="/product/media/audio/ui/WirelessChargingStarted.ogg" package="android" defaultValue="/product/media/audio/ui/WirelessChargingStarted.ogg" defaultSysSet="true" />
[[email protected] /data/develop/android/android-bits-main/ccl_abx]$
There is a github repo with an abx parser in go https://github.com/SagerNet/abx-go (I did not test this)
Example
I wrote a little script to use the method described above to enable WiFi
enable_wifi.sh
The script will enable WiFi in the persistent settings if it's currently disabled; if WiFi is already enabled the script will change nothing.
The script must be executed by the user root on the phone.
Example output of the script:
Output if WiFi is disabled:
Code:
ASUS_I006D:/ # /data/local/tmp/enable_wifi.sh
Checking WiFi status in the persistent global settings ...
Converting the file "/data/system/users/0/settings_global.xml" to an XML file in text format "data/local/tmp/setttings_global.xml.human.9574" ...
WiFi is currently disabled -- enabling WiFi now :..
... WiFi enabled in the persistent global settings.
To activate the change reboot the phone
ASUS_I006D:/ #
Output if WiFi is already enabled:
Code:
ASUS_I006D:/ # /data/local/tmp/enable_wifi.sh
Checking WiFi status in the persistent global settings ...
Converting the file "/data/system/users/0/settings_global.xml" to an XML file in text format "data/local/tmp/setttings_global.xml.human.9613" ...
WiFi is already enabled in the persistent global settings
ASUS_I006D:/ #
The script is attached to this post ; it can also be downloaded from here: enable_wifi.sh.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Important Note
After writing this HowTo I discovered that there is a native Android command to change the settings stored in the file /data/system/users/0/settings_global.xml:
settings
Spoiler: settings usage
Code:
Usage:
ASUS_I006D:/ $ settings
Settings provider (settings) commands:
help
Print this help text.
get [--user <USER_ID> | current] NAMESPACE KEY
Retrieve the current value of KEY.
put [--user <USER_ID> | current] NAMESPACE KEY VALUE [TAG] [default]
Change the contents of KEY to VALUE.
TAG to associate with the setting.
{default} to set as the default, case-insensitive only for global/secure namespace
delete [--user <USER_ID> | current] NAMESPACE KEY
Delete the entry for KEY.
reset [--user <USER_ID> | current] NAMESPACE {PACKAGE_NAME | RESET_MODE}
Reset the global/secure table for a package with mode.
RESET_MODE is one of {untrusted_defaults, untrusted_clear, trusted_defaults}, case-insensitive
list [--user <USER_ID> | current] NAMESPACE
Print all defined keys.
NAMESPACE is one of {system, secure, global}, case-insensitive
255|ASUS_I006D:/ $
Spoiler: settings example
e.g to set or get the WiFi status:
Code:
ASUS_I006D:/ $ settings get global wifi_on
1
ASUS_I006D:/ $
ASUS_I006D:/ $ settings put global wifi_on 0
ASUS_I006D:/ $
ASUS_I006D:/ $ settings get global wifi_on
0
ASUS_I006D:/ $
ASUS_I006D:/ $ settings put global wifi_on 1
ASUS_I006D:/ $
ASUS_I006D:/ $ settings get global wifi_on
1
ASUS_I006D:/ $
A description of the known settings is here:
https://developer.android.com/reference/android/provider/Settings.Global
https://developer.android.com/reference/android/provider/Settings.Secure
https://developer.android.com/reference/android/provider/Settings.System
But since this HowTo is mainly about editing files in Android Binary XML format and the change of the WiFi status is only meant as an example, I leave it like this
Really interesting.
This helps a lot.
Thank you very much
Thank you, amazing post!

Categories

Resources