Oppo R17 - create dd image /data for forensic analysis - General Questions and Answers

Hi Guys,
Definitely not my first visit to the forums, but my first post.
I'm not a NOOB, but I am definitely not a developer but I am on a very steep learning curve.
What I am trying to do is create a full backup of the /data [/dev/block/sda13] using dd piped via NC to the laptop
Imaging Android with ADB, Root, Netcat and DD
Today we are going to acquire an android smartphone (Samsung Note II) using Android Debug Bridge (ADB), netcat and dd. The system I am using is Ubuntu linux. On the “forensic workstation” you will need ADB and netcat installed. I’m using the excellent instructions from here.
dfir.science
No root, dd won't run, it all falls down, but that is an incredibly elegant solution and works perfectly for what I want to do.
I have also done a lot of reading on this site - linked from the site above, credit where credit is due
Live imaging an Android device
Free Android Forensics and Android CELLEX advice and tutorials
freeandroidforensics.blogspot.kr
Heaps of good info, much learning on my part!
So down to it:
This is my late brother's phone, he took his own life and his ex girlfriend has deleted data relating to my brother being blackmailed.
It's a very long story, we got Court order for return of the phone finally - I can verify this for anyone concerned that I am trying to 'steal' data for nefarious purposes with a copy of that Court order if necessary.
Now I know that all of the threads about getting root on the R17 taper off, the device is very well locked, good work by Oppo, bad for me...
I've tried edl - without the correct firehose, that goes nowhere - here's my posts
MacOS 10.10.5 · Issue #149 · bkerler/edl
Trying to get this built on Yosemite The system has python 2.7 installed by default, which cannot be removed I've got Python 3.9.7 installed python -V returns that correctly Set the following envir...
github.com
signed transactions - verification failed Oppo - Info · Issue #152 · bkerler/edl
Hi, I guess I can upload the firehose loader, but sorry to say, the oppo devices I know use VIP programming, so even if you have a firehose loader, chances are high you can't do anything as all tra...
github.com
eld would have been a nice, simple, tidy and elegant solution, but the VIP programming requirement stops that solution point blank!
I've also had a serious look at QFIL and MSMDownloadtool - the same issue which afflicts edl seems to afflict those solutions also - the lack of a correct firehose to correctly enter Sahara mode - I do have numerous potential candidates from decompressed firmware images.
None work.
However I suspect that they are for programming only, recall that I want to make a backup of the /data partition via the block device
So many dead ends...I've been down almost every single one
So I've since been trying to find a method to escalate abd shell to root to run dd on the block device
NOW - I've just stumbled upon this
[Update: OnePlus Responds] OnePlus Accidentally Pre-Installed an App that acts as a Backdoor to Root Access
OnePlus left in place a Qualcomm engineering test app that acts as a backdoor to grant root access on the OnePlus 3, 3T, and 5.
www.xda-developers.com
Now there is no engineer mode app on this device, BUT, using the instructions found here
Oppo A72 (CPH2067) Timed out error. · Issue #111 · bkerler/edl
System i'm using is Kali linux command i'm entering is python3 edl.py --debugmode printgpt I have Extracted Loader from official firmware ofp and have added it to loaders in edl using following com...
github.com
dialing *#899# brings up an engineer mode - so something is installed
Here are some other useful codes for various information pages
From this video
and this page
Codes OPPO R17 Pro, how to - HardReset.info
The whole list of secret codes for your device. Check out how to get access to hidden mode, advanced features and secret options.
www.hardreset.info
Some work, some don't
*#899# - works correctly enters one of the engineer modes
*#1234# - works - displays ColorOS version
*#6776# - works - displays Software version
*#809# - works - displays EngineerCamera
*#*#225#*#* - works correctly displays calendar information
*#*#426#*#* - works correctly FCM diagnostics
*#*#759#*#* - doesn’t work
*#*#3646633#*#* - doesn’t work - video is for an R17 Pro - this is another engineer mode
*#*#4636#*#* - doesn’t work
At this point I am looking for pointers as to whether or not I am headed in the right direction of traveling down another dead end.
Phone details are:
Oppo CHP1879
Android Version 10
Kernel 4.9.186
Master date 202012232000
Version CPH1879EX_11_F.13
OTA Version CPH1879EX_11.F.13_3130_202012231858
Factory Version CPH1879_11_F.13_201223_6b3d1f59
One anomaly though - in Engineer mode going to the Reading reset complete indicator gives the following
FAIL!!!
info:download over 2019-03-21 09:33:37 +Download
Mode ID:0 _ Download Mode Str:After-sale + software version:CPH1879_11_A.06_190226_97ceeec + download version: V1.6.17 Exp +Net Status:intranet + Readback
Verify:true
ota_info:upgrade failed at 2021-09-21 16:54:44splay version: CPH1879EX_11_F.13, ota_version: CPH1879EX_F.13_3130_202012231858
Any help will be very much appreciated
Glenn

Replying to myself, anyway...
This thread is incredibly informative, so although the Qualcomm engineering APK is no longer there, this [I could be wrong] seems to hold potential
Entering Engineering Mode (and list of secret codes)
To enter the Engineering Mode: dial *#899# Here are two more lists with secret codes that I found, it seems without root yout can only execude codes with Level 1. I am not responsible for any data loss or damage to your device by using these...
forum.xda-developers.com
These three xml files contain a lot of keypad codes - some work, others give various error messages - need to research more...
cat /system/etc/engineermode/engineer_config_list.xml
cat /system/etc/engineermode/engineer_order_list.xml
cat /system/etc/engineermode/engineer_order_list_jp.xml
Now if I can figure out how to execute them from a shell, I'm hopefully progressing

Look inside here:
[TOOL][ADB][WIN]Android Partitions Backupper / Cloner
Hi all, wrote a Windows CMD script that backups / clones partitions of an Android device via ADB because I wasn't content with any 3rd-party APK what claims to do this job. The backups /clones are stored on Windows computer as...
forum.xda-developers.com

jwoegerbauer said:
Look inside here:
[TOOL][ADB][WIN]Android Partitions Backupper / Cloner
Hi all, wrote a Windows CMD script that backups / clones partitions of an Android device via ADB because I wasn't content with any 3rd-party APK what claims to do this job. The backups /clones are stored on Windows computer as...
forum.xda-developers.com
Click to expand...
Click to collapse
Thanks, but no cigar I'm afraid - I haven't got root...which is why I'm investigating privilege escalation for adb as the bootloaders are very well locked and I cannot jeapordize the /data partition being wiped

On the keypad *#899# works and brings up an application with a lot of interesting pages - one requires a password to do a read/write system log test - interesting!
Completely independently I discovered the com.oppo.engineermode package and the com.oppo.engineermode.network
Some of the details are here from somebody else's previous discovery
Entering Engineering Mode (and list of secret codes)
To enter the Engineering Mode: dial *#899# Here are two more lists with secret codes that I found, it seems without root yout can only execude codes with Level 1. I am not responsible for any data loss or damage to your device by using these...
forum.xda-developers.com
FWIW the EngineerMode runs as system uid=1000 and has an enormous list of permissions granted
Been doing much exploring - I'll put it all together into something coherent
Now to get it to do something useful...I think there's potential here

These are located on /system/etc/engineermode
There's a rub in all of these config files, which I will explain in a later post
Some of the MMI codes work through the keypad input and bring up screens, others run but produce no discernible output and others throw errors
I'll return to these in the next post as one has me particularly intrigued - but I cannot find much information on it
First here's the engineer_config_list.xml
XML:
<?xml version="1.0" encoding="UTF-8"?>
<engineer_switch>
<version>20190101</version>
<switch switchName="activity_sw" switchState="false" />
<switch switchName="service_sw" switchState="false" />
<switch switchName="shell_command_sw" switchState="false" />
<switch switchName="engineer_order_sw" switchState="false" />
<switch switchName="reset_atm_sw" switchState="false" />
<!--*#928#-->
<activity packageName="com.oppo.engineermode"
className="com.oppo.engineermode.wifi.manualtest.WifiFTMActivity" />
<!--*#3644321#,*#3644999#-->
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.RebootManager" />
<!--*#8019#-->
<activity packageName="com.oppo.engineermode"
className="com.oppo.engineermode.wireless.WifiSocketHelper" />
<!--*#8020#-->
<activity packageName="com.oppo.engineermode"
className="com.oppo.engineermode.wireless.WifiAdbHelper" />
<activity packageName="com.oppo.engineermode"
className="com.oppo.engineermode.wireless.SwitchMetaModeHelper" />
<activity packageName="com.oppo.engineermode"
className="com.oppo.engineermode.DetectMasterClearResult" />
<!--*#637243#-->
<activity packageName="com.oppo.engineermode"
className="com.oppo.engineermode.ShowRemoteMessage" />
<activity packageName="com.oppo.engineermode"
className="com.oppo.engineermode.manualtest.modeltest.ModelTestImpl" />
<service packageName="com.oppo.engineermode"
className="com.oppo.engineermode.assistant.SwitchWifiMMI" />
<service packageName="com.oppo.engineermode"
className="com.oppo.engineermode.assistant.SwitchProductionMode" />
<service packageName="com.oppo.engineermode"
className="com.oppo.autotest.connector.AutoTestServer" />
<service packageName="com.oppo.engineermode"
className="com.oppo.engineermode.mmi.connector.AutoTestServer" />
<service packageName="com.oppo.engineermode" className="com.oppo.autotest.RunAllTest" />
<service packageName="com.oppo.engineermode"
className="com.oppo.engineermode.wireless.WifiAdbHelperService" />
<shell_command command="--update_back_cover_color" />
<shell_command command="--update_engineer_result" />
<shell_command command="--update_oppo_sn" />
<shell_command command="--reset_back_cover_color" />
<shell_command command="--reset_write_protect" />
<shell_command command="--reset_engineer_result" />
<shell_command command="--reset_download_mode" />
<shell_command command="--execute_start_mmi" />
<shell_command command="--execute_stop_mmi" />
<shell_command command="--execute_master_clear" />
<shell_command command="--execute_power_off" />
<shell_command command="--execute_model_test" />
<shell_command command="--execute_engineer_order" />
<shell_command command="--execute_switch_production_mode" />
<shell_command command="--execute_detect_ms_result" />
<shell_command command="--execute_show_production_message" />
<shell_command command="--execute_switch_wifi_mmi" />
<shell_command command="--execute_launch_wifi_mmi" />
<shell_command command="--generate_attk_key_pair" />
<shell_command command="--verify_attk_key_pair" />
<shell_command command="--verify_attk_key_pair_only" />
<shell_command command="--verify_ali_key" />
<shell_command command="--export_attk_public_key" />
<shell_command command="--get_device_id" />
<shell_command command="--enable_rpmb" />
<shell_command command="--crypto_eng_verify" />
<shell_command command="--get_tee_version" />
<shell_command command="--install_keybox" />
<shell_command command="--provision_keybox" />
<shell_command command="--verify_keybox" />
<engineer_order order="*#8011#" />
<engineer_order order="*#8019#" />
<engineer_order order="*#8020#" />
<engineer_order order="*#3644321#" />
<engineer_order order="*#3644999#" />
<engineer_order order="*#928#" />
<engineer_order order="*#637243#" />
<engineer_order order="*#667611#" />
<engineer_order order="*#667610#" />
<!-- Xiang.Gui Add for 5G test switch *#54794824#-->
<engineer_order order="*#54794824#" />
</engineer_switch>
then the engineer_order_list_jp.xml
XML:
<?xml version="1.0" encoding="utf-8"?>
<OrderList version="20190101" xmlns:android="http://schemas.android.com/apk/res/android">
<OrderItem name="*#0000#" type="startActivity" platform="ALL" region="CN" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.manualtest.TelecomVersionInfo"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#12345#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="com.oppo.activation.action.STOP_SERVICE" />
</OrderItem>
<OrderItem name="*#10000#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.MarkResultShow"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#36446337#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.EngineeringMode"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*##*37847#" type="startActivity" platform="ALL" region="ALL" level="6">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.device.manualtest.DeviceListActivity"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#394321#" type="startService" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.LanguageSwitchToZimbabweService"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#3644321#" type="startActivity" platform="MTK" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.RebootManager"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#3644999#" type="startActivity" platform="MTK" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.RebootManager"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#66#" type="startActivity" platform="ALL" region="ALL" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.IMeiAndPcbCheck"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#6776#" type="startActivity" platform="ALL" region="ALL" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.CheckSoftwareInfo"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#649010#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.usb.manualtest.DiagEnabled"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#637243#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.ShowRemoteMessage"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#727#" type="startActivity" platform="MTK" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.LteSarTest"
android:targetPackage="com.oppo.engineermode.network" />
</OrderItem>
<OrderItem name="*#727#" type="startActivity" platform="QCOM" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.SarTest"
android:targetPackage="com.oppo.engineermode.network" />
</OrderItem>
<OrderItem name="*#7327#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.rftoolkit.RfToolkitCustomerService"
android:targetPackage="com.oppo.rftoolkit" />
</OrderItem>
<!-- Add for TW FETNET, bud 1278196-->
<OrderItem name="*#7890#" type="startActivity" platform="ALL" region="EXP" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetWorkSet"
android:targetPackage="com.oppo.engineermode.network" />
</OrderItem>
<OrderItem name="*#807#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.aftersale.DeviceSimpleDetectActivity"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#808#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.EngineerModeMain"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#805#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.bluetooth.manualtest.BluetoothTest"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#803#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.wifi.manualtest.WifiSettings"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#804#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetworkSearch"
android:targetPackage="com.oppo.engineermode.network" />
</OrderItem>
<OrderItem name="*#802#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.gps.manualtest.GpsActivity"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#806#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.autoaging.AutoAgingMainListActivity"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#8778#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.manualtest.MasterClear"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#888#" type="startActivity" platform="ALL" region="ALL" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.PcbShow"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*##*8110#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.development.manualtest.OtaSwitch"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#872#" type="startActivity" platform="MTK" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.usb.manualtest.UsbPreloaderEnabled"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#8019#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.wireless.WifiSocketHelper"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#818#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetworkSearchNew"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="Step_Num"
android:value="First" />
</intent>
</OrderItem>
<OrderItem name="*#838#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetworkSearchNew"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="Step_Num"
android:value="Second" />
</intent>
</OrderItem>
<OrderItem name="*#618#" type="startActivity" platform="MTK" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetworkSearchNew"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="Step_Num"
android:value="Nr_ant0" />
</intent>
</OrderItem>
<OrderItem name="*#638#" type="startActivity" platform="MTK" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetworkSearchNew"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="Step_Num"
android:value="Nr_ant1" />
</intent>
</OrderItem>
<OrderItem name="*#658#" type="startActivity" platform="MTK" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetworkSearchNew"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="Step_Num"
android:value="Nr_ant2" />
</intent>
</OrderItem>
<OrderItem name="*#678#" type="startActivity" platform="MTK" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetworkSearchNew"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="Step_Num"
android:value="Nr_ant3" />
</intent>
</OrderItem>
<OrderItem name="*#858#" type="startActivity" platform="QCOM" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetworkSearchNew"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="Step_Num"
android:value="Third" />
</intent>
</OrderItem>
<OrderItem name="*#878#" type="startActivity" platform="QCOM" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetworkSearchNew"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="Step_Num"
android:value="Fourth" />
</intent>
</OrderItem>
<OrderItem name="*#8168#" type="startActivity" platform="ALL" region="CN" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.CmccEvaluationOTA"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="AntPosition"
android:value="Button" />
</intent>
</OrderItem>
<OrderItem name="*#8398#" type="startActivity" platform="ALL" region="CN" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.CmccEvaluationOTA"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="AntPosition"
android:value="TOP" />
</intent>
</OrderItem>
<OrderItem name="*#8020#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.wireless.WifiAdbHelper"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#899#" type="other" platform="ALL" region="ALL" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.aftersale.AfterSalePage"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#99#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.development.manualtest.KeepSrceenOn"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#928#" type="startActivity" platform="MTK" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.wireless.SwitchMetaModeHelper"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#928#" type="startActivity" platform="QCOM" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.wifi.manualtest.WifiFTMActivity"
android:targetPackage="com.oppo.engineermode">
<extra
android:name="Step_WifiFtm"
android:value="First" />
</intent>
</OrderItem>
<OrderItem name="*#9434#" type="startActivity" platform="ALL" region="ALL" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.decrypt.WifiDecryptionActivity"
android:targetPackage="com.oppo.decrypt" />
</OrderItem>
<OrderItem name="*#911#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.PowerOff"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#391#" type="other" platform="ALL" region="EXP" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.SwitchSoftwareVersion"
android:targetPackage="com.oppo.engineermode.network" />
</OrderItem>
<OrderItem name="*#3954391#" type="other" platform="ALL" region="EXP" level="2" />
<OrderItem name="*#7799#" type="other" platform="ALL" region="EXP" level="2" />
<OrderItem name="*#789#" type="startActivity" platform="ALL" region="EXP" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.simlockexp.ClearTelcelnetlock"
android:targetPackage="com.oppo.engineermode.network" />
</OrderItem>
<OrderItem name="*#912#" type="startActivity" platform="ALL" region="EXP" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.simlockexp.RecoverTelcelnetlock"
android:targetPackage="com.oppo.engineermode.network" />
</OrderItem>
<OrderItem name="*#3921234#" type="other" platform="ALL" region="EXP" level="1">
<intent android:action="com.android.engineeringmode.SwitchSoftwareVersionInFw" />
</OrderItem>
<OrderItem name="*#39243#" type="startActivity" platform="ALL" region="EXP" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.explock.SecretVersonShowActivityExp"
android:targetPackage="com.oppo.engineermode.network" />
</OrderItem>
<OrderItem name="*#3988691#" type="startActivity" platform="ALL" region="EXP" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.explock.RegionNetLockDialogExp"
android:targetPackage="com.oppo.engineermode.network" />
</OrderItem>
<OrderItem name="*#390000#" type="sendBroadcast" platform="ALL" region="EXP" level="2">
<intent
android:action="com.oppo.show.all.language"
android:targetClass="com.oppo.settings.exp.ExpBroadcastReceiver"
android:targetPackage="com.android.settings" />
</OrderItem>
<OrderItem name="*#07#" type="other" platform="ALL" region="EXP" level="2" />
<OrderItem name="*#67767#" type="other" platform="ALL" region="EXP" level="2" />
<OrderItem name="*#8011#" type="other" platform="ALL" region="ALL" level="1" />
<OrderItem name="*#39724#" type="other" platform="ALL" region="EXP" level="2" />
<OrderItem name="*#390501#" type="other" platform="ALL" region="EXP" level="1" />
<OrderItem name="*#390502#" type="other" platform="ALL" region="EXP" level="1" />
<OrderItem name="*#667611#" type="other" platform="ALL" region="ALL" level="2" />
<OrderItem name="*#667610#" type="other" platform="ALL" region="ALL" level="2" />
<!-- Xiang.Gui Add for 5G test switch *#54794824#-->
<OrderItem name="*#54794824#" type="other" platform="ALL" region="ALL" level="2" />
<OrderItem name="*#39137#" type="startService" platform="ALL" region="EXP" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.SwitchSoftwareService"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="carrierval"
android:value="@string/carrierVersion_thailand_true" />
<extra
android:name="carriername"
android:value="Thailand TRUE" />
<extra
android:name="sim_switch_operator"
android:value="@string/sim_switch_operator_switch_on" />
</intent>
</OrderItem>
<OrderItem name="*#39248#" type="startService" platform="ALL" region="EXP" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.SwitchSoftwareService"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="carrierval"
android:value="@string/carrierVersion_thailand_ais" />
<extra
android:name="carriername"
android:value="Thailand AIS" />
<extra
android:name="sim_switch_operator"
android:value="@string/sim_switch_operator_switch_on" />
</intent>
</OrderItem>
<OrderItem name="*#39369#" type="startService" platform="ALL" region="EXP" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.SwitchSoftwareService"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="carrierval"
android:value="@string/carrierVersion_thailand_dtac" />
<extra
android:name="carriername"
android:value="Thailand DTAC" />
<extra
android:name="sim_switch_operator"
android:value="@string/sim_switch_operator_switch_on" />
</intent>
</OrderItem>
<OrderItem name="*#008#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.LanguageSwitchActivity"
android:targetPackage="com.oppo.engineermode">
<extra
android:name="language_str"
android:value="zh_CN" />
</intent>
</OrderItem>
<OrderItem name="*#7869264#" type="startActivity" platform="ALL" region="EXP" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.explock.DeviceLockDialogExp"
android:targetPackage="com.oppo.engineermode.network">
</intent>
</OrderItem>
<!-- SH add start-->
<OrderItem name="*#643223#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.development.manualtest.DevelopmentConfigPage"
android:targetPackage="com.oppo.engineermode">
</intent>
</OrderItem>
<OrderItem name="*#885526#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.development.manualtest.VulkanDebugActivity"
android:targetPackage="com.oppo.engineermode">
</intent>
</OrderItem>
<!-- SH add end-->
<OrderItem name="*#456225#" type="startActivity" platform="ALL" region="EXP" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.aftersale.SwitchRegionAssistant"
android:targetPackage="com.oppo.engineermode">
</intent>
</OrderItem>
</OrderList>
[/CODE

thirdly the engineer_order_list.xml
XML:
<?xml version="1.0" encoding="utf-8"?>
<OrderList version="20190101" xmlns:android="http://schemas.android.com/apk/res/android">
<OrderItem name="*#0000#" type="startActivity" platform="ALL" region="CN" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.manualtest.TelecomVersionInfo"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#12345#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="com.oppo.activation.action.STOP_SERVICE" />
</OrderItem>
<OrderItem name="*#10000#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.MarkResultShow"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#36446337#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.EngineeringMode"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*##*37847#" type="startActivity" platform="ALL" region="ALL" level="6">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.device.manualtest.DeviceListActivity"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#394321#" type="startService" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.LanguageSwitchToZimbabweService"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#3644321#" type="startActivity" platform="MTK" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.RebootManager"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#3644999#" type="startActivity" platform="MTK" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.RebootManager"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#66#" type="startActivity" platform="ALL" region="ALL" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.IMeiAndPcbCheck"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#6776#" type="startActivity" platform="ALL" region="ALL" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.CheckSoftwareInfo"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#649010#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.usb.manualtest.DiagEnabled"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#637243#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.ShowRemoteMessage"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#727#" type="startActivity" platform="MTK" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.LteSarTest"
android:targetPackage="com.oppo.engineermode.network" />
</OrderItem>
<OrderItem name="*#727#" type="startActivity" platform="QCOM" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.SarTest"
android:targetPackage="com.oppo.engineermode.network" />
</OrderItem>
<OrderItem name="*#7327#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.rftoolkit.RfToolkitCustomerService"
android:targetPackage="com.oppo.rftoolkit" />
</OrderItem>
<!-- Add for TW FETNET, bud 1278196-->
<OrderItem name="*#7890#" type="startActivity" platform="ALL" region="EXP" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetWorkSet"
android:targetPackage="com.oppo.engineermode.network" />
</OrderItem>
<OrderItem name="*#807#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.aftersale.DeviceSimpleDetectActivity"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#808#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.EngineerModeMain"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#805#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.bluetooth.manualtest.BluetoothTest"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#803#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.wifi.manualtest.WifiSettings"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#804#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetworkSearch"
android:targetPackage="com.oppo.engineermode.network" />
</OrderItem>
<OrderItem name="*#802#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.gps.manualtest.GpsActivity"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#806#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.autoaging.AutoAgingMainListActivity"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#8778#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.manualtest.MasterClear"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#888#" type="startActivity" platform="ALL" region="ALL" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.PcbShow"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*##*8110#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.development.manualtest.OtaSwitch"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#872#" type="startActivity" platform="MTK" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.usb.manualtest.UsbPreloaderEnabled"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#8019#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.wireless.WifiSocketHelper"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#818#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetworkSearchNew"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="Step_Num"
android:value="First" />
</intent>
</OrderItem>
<OrderItem name="*#838#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetworkSearchNew"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="Step_Num"
android:value="Second" />
</intent>
</OrderItem>
<OrderItem name="*#618#" type="startActivity" platform="MTK" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetworkSearchNew"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="Step_Num"
android:value="Nr_ant0" />
</intent>
</OrderItem>
<OrderItem name="*#638#" type="startActivity" platform="MTK" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetworkSearchNew"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="Step_Num"
android:value="Nr_ant1" />
</intent>
</OrderItem>
<OrderItem name="*#658#" type="startActivity" platform="MTK" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetworkSearchNew"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="Step_Num"
android:value="Nr_ant2" />
</intent>
</OrderItem>
<OrderItem name="*#678#" type="startActivity" platform="MTK" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetworkSearchNew"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="Step_Num"
android:value="Nr_ant3" />
</intent>
</OrderItem>
<OrderItem name="*#858#" type="startActivity" platform="QCOM" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetworkSearchNew"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="Step_Num"
android:value="Third" />
</intent>
</OrderItem>
<OrderItem name="*#878#" type="startActivity" platform="QCOM" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.NetworkSearchNew"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="Step_Num"
android:value="Fourth" />
</intent>
</OrderItem>
<OrderItem name="*#8168#" type="startActivity" platform="ALL" region="CN" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.CmccEvaluationOTA"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="AntPosition"
android:value="Button" />
</intent>
</OrderItem>
<OrderItem name="*#8398#" type="startActivity" platform="ALL" region="CN" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.CmccEvaluationOTA"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="AntPosition"
android:value="TOP" />
</intent>
</OrderItem>
<OrderItem name="*#8020#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.wireless.WifiAdbHelper"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#899#" type="other" platform="ALL" region="ALL" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.aftersale.AfterSalePage"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#99#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.development.manualtest.KeepSrceenOn"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#928#" type="startActivity" platform="MTK" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.wireless.SwitchMetaModeHelper"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#928#" type="startActivity" platform="QCOM" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.wifi.manualtest.WifiFTMActivity"
android:targetPackage="com.oppo.engineermode">
<extra
android:name="Step_WifiFtm"
android:value="First" />
</intent>
</OrderItem>
<OrderItem name="*#9434#" type="startActivity" platform="ALL" region="ALL" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.decrypt.WifiDecryptionActivity"
android:targetPackage="com.oppo.decrypt" />
</OrderItem>
<OrderItem name="*#911#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.PowerOff"
android:targetPackage="com.oppo.engineermode" />
</OrderItem>
<OrderItem name="*#391#" type="other" platform="ALL" region="EXP" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.SwitchSoftwareVersion"
android:targetPackage="com.oppo.engineermode.network" />
</OrderItem>
<OrderItem name="*#3954391#" type="other" platform="ALL" region="EXP" level="2" />
<OrderItem name="*#7799#" type="other" platform="ALL" region="EXP" level="2" />
<OrderItem name="*#789#" type="startActivity" platform="ALL" region="EXP" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.simlockexp.ClearTelcelnetlock"
android:targetPackage="com.oppo.engineermode.network" />
</OrderItem>
<OrderItem name="*#912#" type="startActivity" platform="ALL" region="EXP" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.simlockexp.RecoverTelcelnetlock"
android:targetPackage="com.oppo.engineermode.network" />
</OrderItem>
<OrderItem name="*#3921234#" type="other" platform="ALL" region="EXP" level="1">
<intent android:action="com.android.engineeringmode.SwitchSoftwareVersionInFw" />
</OrderItem>
<OrderItem name="*#39243#" type="startActivity" platform="ALL" region="EXP" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.explock.SecretVersonShowActivityExp"
android:targetPackage="com.oppo.engineermode.network" />
</OrderItem>
<OrderItem name="*#3988691#" type="startActivity" platform="ALL" region="EXP" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.explock.RegionNetLockDialogExp"
android:targetPackage="com.oppo.engineermode.network" />
</OrderItem>
<OrderItem name="*#390000#" type="sendBroadcast" platform="ALL" region="EXP" level="2">
<intent
android:action="com.oppo.show.all.language"
android:targetClass="com.oppo.settings.exp.ExpBroadcastReceiver"
android:targetPackage="com.android.settings" />
</OrderItem>
<OrderItem name="*#07#" type="other" platform="ALL" region="EXP" level="1" />
<OrderItem name="*#67767#" type="other" platform="ALL" region="EXP" level="1" />
<OrderItem name="*#8011#" type="other" platform="ALL" region="ALL" level="1" />
<OrderItem name="*#39724#" type="other" platform="ALL" region="EXP" level="2" />
<OrderItem name="*#390501#" type="other" platform="ALL" region="EXP" level="1" />
<OrderItem name="*#390502#" type="other" platform="ALL" region="EXP" level="1" />
<OrderItem name="*#667611#" type="other" platform="ALL" region="ALL" level="2" />
<OrderItem name="*#667610#" type="other" platform="ALL" region="ALL" level="2" />
<!-- Xiang.Gui Add for 5G test switch *#54794824#-->
<OrderItem name="*#54794824#" type="other" platform="ALL" region="ALL" level="1" />
<OrderItem name="*#39137#" type="startService" platform="ALL" region="EXP" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.SwitchSoftwareService"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="carrierval"
android:value="@string/carrierVersion_thailand_true" />
<extra
android:name="carriername"
android:value="Thailand TRUE" />
<extra
android:name="sim_switch_operator"
android:value="@string/sim_switch_operator_switch_on" />
</intent>
</OrderItem>
<OrderItem name="*#39248#" type="startService" platform="ALL" region="EXP" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.SwitchSoftwareService"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="carrierval"
android:value="@string/carrierVersion_thailand_ais" />
<extra
android:name="carriername"
android:value="Thailand AIS" />
<extra
android:name="sim_switch_operator"
android:value="@string/sim_switch_operator_switch_on" />
</intent>
</OrderItem>
<OrderItem name="*#39369#" type="startService" platform="ALL" region="EXP" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.SwitchSoftwareService"
android:targetPackage="com.oppo.engineermode.network">
<extra
android:name="carrierval"
android:value="@string/carrierVersion_thailand_dtac" />
<extra
android:name="carriername"
android:value="Thailand DTAC" />
<extra
android:name="sim_switch_operator"
android:value="@string/sim_switch_operator_switch_on" />
</intent>
</OrderItem>
<OrderItem name="*#008#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.LanguageSwitchActivity"
android:targetPackage="com.oppo.engineermode">
<extra
android:name="language_str"
android:value="zh_CN" />
</intent>
</OrderItem>
<OrderItem name="*#7869264#" type="startActivity" platform="ALL" region="EXP" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.network.explock.DeviceLockDialogExp"
android:targetPackage="com.oppo.engineermode.network">
</intent>
</OrderItem>
<!-- SH add start-->
<OrderItem name="*#643223#" type="startActivity" platform="ALL" region="ALL" level="1">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.development.manualtest.DevelopmentConfigPage"
android:targetPackage="com.oppo.engineermode">
</intent>
</OrderItem>
<OrderItem name="*#885526#" type="startActivity" platform="ALL" region="ALL" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.development.manualtest.VulkanDebugActivity"
android:targetPackage="com.oppo.engineermode">
</intent>
</OrderItem>
<!-- SH add end-->
<OrderItem name="*#456225#" type="startActivity" platform="ALL" region="EXP" level="2">
<intent
android:action="android.intent.action.MAIN"
android:targetClass="com.oppo.engineermode.aftersale.SwitchRegionAssistant"
android:targetPackage="com.oppo.engineermode">
</intent>
</OrderItem>
</OrderList>
and finally sys_secrecy_switch_list.xml which is located in /system/etc
XML:
<?xml version="1.0" encoding="UTF-8"?>
<filter-conf>
<version>20190201</version>
<isOpen>1</isOpen>
<filter-name>sys_secrecy_switch_list</filter-name>
<support>true</support>
<activity_sw>false</activity_sw>
<log_sw>false</log_sw>
<adb_sw>true</adb_sw>
<test_sw>false</test_sw>
<!-- Time out for mac 24 * 60 min -->
<mac_timeout>1440</mac_timeout>
<!-- Time out for id 24 * 60 min -->
<id_timeout>1440</id_timeout>
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.EngineeringMode" />
<!-- *#8778# -->
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.manualtest.MasterClear" />
<!-- *#806# -->
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.autoaging.AutoAgingMainListActivity" />
<!-- *#37847# -->
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.device.DeviceListActivity" />
<!-- *#649010# -->
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.development.DiagEnabled" />
<!-- *#268# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.qualcomm.QualCommActivity" />
<!-- *#818#/*#838# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.NetworkSearchNew" />
<!-- *#727# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.SarTest" />
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.LteSarTest" />
<!-- *#7332# -->
<activity packageName="com.oppo.rftoolkit" className="com.oppo.rftoolkit.RfToolkitFactory" />
<!-- *#7328# -->
<activity packageName="com.oppo.rftoolkit" className="com.oppo.rftoolkit.RfToolkitAgingTest" />
<!-- *#804# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.NetworkSearch" />
<!-- *#872# -->
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.development.UsbPreloaderEnabled" />
<!-- *#391# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.SwitchSoftwareVersion" />
<!-- *#*#88#*#* -->
<activity packageName="com.factory.mmigroup" className="com.factory.mmigroup.MMIGroupNormalMode" />
<!-- *#*#86#*#* -->
<activity packageName="com.factory.mmigroup" className="com.factory.mmigroup.MMIGroupMenu" />
<!-- Ant debug toolkit -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.AntDebugToolBox" />
<!-- ASDIV state display -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.ASDIVSettings" />
<!-- GSM Power Settings -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.GsmPwrSetting" />
<!-- RF MIPI device test -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.OPPOMissingRFFEActivity" />
<!-- Tx power back-off control -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.SarControl" />
<!-- Communication Debugging -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.StanCurTest" />
<!-- ForceAntennaForLabTest -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.ForceAntennaForLabTest" />
<!-- MaxTxPowerTuning -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.MaxTxPowerTuning" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.MultNetworkModeSet" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.BandMode2" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.NetWorkSet" />
<!-- *#36446337# -->
<activity packageName="com.oppo.nw" className="com.oppo.nw.RadioInfoActivity" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.LteCaStatusActivity" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.OppoFilterCsfbArfcn" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.OppoLockGSMArfcn" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.OppoLockLteArfcn" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.OppoCheckVolteFr1Fr2Feature" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.LteBandMode" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.OppoFastDormancy" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.CfuActivity" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.DeviceMgr" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.AutoAnswer" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.ProtocolTestSwitcher" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.OppoMtuActivity" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.OppoLTEOnlyFullBandTestActivity" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.OppoSignalSmooth" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.OppoEnable4gSwitch" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.PLMNListPreference" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.development.AutoFillSmsContacts" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.qualcomm.QualCommActivity" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.qualcomm.QualCommNv2" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.qualcomm.CalibrateStatus" />
<!-- *#36446337# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.OppoEnableHotswapSwitch" />
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.wifi.manualtest.WifiFTMActivity" />
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.RebootManager" />
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.wireless.WifiSocketHelper" />
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.wireless.WifiAdbHelper" />
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.wireless.SwitchWifiAdbHelper" />
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.wireless.SwitchMetaModeHelper" />
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.DetectMasterClearResult" />
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.SwitchColorActivation" />
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.ShowRemoteMessage" />
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.ResetTestMark" />
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.PowerOff" />
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.manualtest.modeltest.ModelTestImpl" />
<!-- *#8168#/*#8398# -->
<activity packageName="com.oppo.engineermode.network" className="com.oppo.engineermode.network.CmccEvaluationOTA" />
<activity packageName="com.oppo.engineermode" className="com.oppo.engineermode.aftersale.SwitchRegionAssistant" />
<!-- *#*#4636#*#* -->
<activity packageName="com.android.settings" className="com.android.settings.Settings$TestingSettingsActivity" />
<!--*#*#3646633#*#*-->
<activity packageName="com.mediatek.engineermode" className="com.mediatek.engineermode.EngineerMode" />
</filter-conf>

From the above xml files - running:
Code:
adb exec-out am start com.oppo.engineermode/ .usb.manualtest.DiagEnabled
produces
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] }
and a small launched drawer opens up from the bottom of the screen with a selected number of apps - I don't know how to modify the apps which are available in these drawers - there's 4 drawers on this phone - totalling 31 apps
Now why do I think this is happening - look back at the xml files - I think they've been doctored - the intent point to android, not the engineering app.
I don't that's a dead end - but I need to research more, much more
I've downloaded the EngineerMode.apk and decompressed it, not decompiled it to investigate
Within the decompressed EngineerMode.apk source is this entry in four files
Code:
smali/com/oppo/engineermode/manualtest/MasterClear.smali: const-string p1, "persist.sys.adb.engineermode"
smali/com/oppo/engineermode/PowerOff$PowerOffStateMachine$FinishState.smali: const-string v1, "persist.sys.adb.engineermode"
smali/com/oppo/engineermode/usb/manualtest/DiagEnabled.smali: const-string v3, "persist.sys.adb.engineermode"
smali/com/oppo/engineermode/usb/manualtest/DiagEnabled.smali: const-string v2, "persist.sys.adb.engineermode"
smali/com/oppo/engineermode/util/UsbConfigManager.smali: const-string v4, "persist.sys.adb.engineermode"
So, running the below initially got me a permissions error - curious
Code:
adb exec-out am start -n com.oppo.engineermode/.usb.manualtest.DiagEnabled
Starting: Intent { cmp=com.oppo.engineermode/.usb.manualtest.DiagEnabled }
Security exception: Permission Denial: starting Intent { flg=0x10000000 cmp=com.oppo.engineermode/.usb.manualtest.DiagEnabled mCallingUid=2000 } from null (pid=32262, uid=2000) not exported from uid 1000
java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.oppo.engineermode/.usb.manualtest.DiagEnabled mCallingUid=2000 } from null (pid=32262, uid=2000) not exported from uid 1000
at com.android.server.wm.ActivityStackSupervisor.checkStartAnyActivityPermission(ActivityStackSupervisor.java:1156)
at com.android.server.wm.ActivityStarter.startActivity(ActivityStarter.java:967)
at com.android.server.wm.ActivityStarter.startActivity(ActivityStarter.java:634)
at com.android.server.wm.ActivityStarter.startActivityMayWait(ActivityStarter.java:1783)
at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:565)
at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1179)
at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1143)
at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:3967)
at com.android.server.am.ActivityManagerShellCommand.runStartActivity(ActivityManagerShellCommand.java:518)
at com.android.server.am.ActivityManagerShellCommand.onCommand(ActivityManagerShellCommand.java:172)
at android.os.ShellCommand.exec(ShellCommand.java:104)
at com.android.server.am.ActivityManagerService.onShellCommand(ActivityManagerService.java:10855)
at android.os.Binder.shellCommand(Binder.java:881)
at android.os.Binder.onTransact(Binder.java:765)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:4854)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3059)
at com.android.server.am.OppoActivityManagerService.onTransact(OppoActivityManagerService.java:99)
at android.os.Binder.execTransactInternal(Binder.java:1021)
at android.os.Binder.execTransact(Binder.java:994)
It since runs correctly both via termux on the phone and via adb - I don't know what changed...
running getprop has one interesting entry though
persist.sys.adb.engineermode 1
I am wondering if the EngineerMode apk can be modified
Of the MMI codes that do work
From this video - credit where credit is due
Firstly *#899#
This brings up an EngineerMode application - good work
Choosing manual test - swipe left 6 times to get to others
Read/Write important log test requests a password - intriguing, but I don't have the password.
Secondly *#643223#
Development setting
Oifce Debuggable Switch
Not finding much out there info wise on this

The keys to the Kingdom reside within the EngineerMode.apk itself
This one had me interested first because within the EngineerMode pages, it asks for a password to execute the test so I ran:
Code:
CPH1879:/vendor/oppo $ start am com.oppo.engineermode/com.oppo.engineermode.development.manualtest.WriteLogTest
start: must be root
Code:
CPH1879:/vendor/oppo $ start am com.oppo.engineermode/com.oppo.engineermode.util.OppoEngineerManager
start: must be root
There's potential here because within the decompressed EngineerMode.apk there looks to be the encryption tools to calculate the password itself.
Thinking on it, a service centre would need to be able to get root access for service for some operations.
Speculation on my part - it looks to be calculated from the two strings below
Code:
smali/com/oppo/engineermode/security/base/KeyAttestationTest.smali
.field private static final OS_PATCH_LEVEL_STRING_PATTERN:Ljava/util/regex/Pattern;
.field private static final OS_VERSION_STRING_PATTERN:Ljava/util/regex/Pattern;
I'm already well outside my comfort zone - steep learning curve, so onto seeing if I can load an image into QEMU and work from there, or install Android studio and debug the EngineerMode.apk.
One last thing worth mentioning - in the /system/etc/security there are three zipped PEM certificates - they aren't installed by default and all three relate to firmware images and their certification
orescerts.zip -> contains oppo_data_app.x509.pem
otacerts.zip -> contains local_OTA.x509.pem
specialcerts.zip -> contains special_OTA.x509.pem
I am assuming that these are used to verify install packages/images using the recovery bootloader
things to ponder - a modified recovery image TWRP might be able to be re-signed with one of these certificates - I don't know enough about the process to be certain
Dangerous though because unless you've got access to a working edl firehose and have either MSMDownloadtool, or QFIL or QPST working you could end up with a bricked phone that won't boot

Related

Ant build-app signing problem (Lulz hlep!)

Ok, I'm trying to build my app with admob .jar library. When I build it with the android eclipse plugin, it claims that the "install was unsuccessful" on my phone. I then tried using the following build.xml with ant. When I put the debug signed version on my phone it works fine. When I try to sign the unsigned .apk, it says:
Code:
java.util.zip.ZipException: invalid entry compressed size (expected 30432 but got 30419 bytes)
at java.util.zip.ZipOutputStream.closeEntry(Unknown Source)
at org.ragingcat.shared.util.jar.S_JarOutputStream.s_writeEntry(S_JarOutputStream.java:344)
at org.ragingcat.kst.util.jarsigner.KTLKprOpenSignAbs._s_writeJarEntry(KTLKprOpenSignAbs.java:184)
at org.ragingcat.kst.util.jarsigner.KTLKprOpenSignAbs._signJarFile(KTLKprOpenSignAbs.java:619)
at org.ragingcat.kst.util.jarsigner.KTLKprOpenSignAbs._doJob_(KTLKprOpenSignAbs.java:424)
at org.ragingcat.kst.util.jarsigner.KTLKprOpenSignKPAbs.doJob(KTLKprOpenSignKPAbs.java:312)
at org.ragingcat.kst.util.jarsigner.KTLKprOpenSignJks.doJob(KTLKprOpenSignJks.java:73)
at org.ragingcat.kst.swing.panel.PTabUICmdJsrSign.actionPerformed(PTabUICmdJsrSign.java:235)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
1 ? ERROR (instance ID: 1)
. location: org.ragingcat.share.util.jar.S_JarOutputStream.s_writeEntry(jos, jey, jfeInput, frmOwner, strTitleAppli)
. message: excIO caught
I'm running ant with:
dirs
resource-source
aidl
compile
dex
package-res-and-assets
release
Using latest version of jdk, android sdk, eclipse, and admob sdk
Is there a secret way to use the eclipse android plugin instead of ant? It just never captures the jar files when I use eclipse.
I am so confused and frustrated right now. It's probably some stupid small problem but I cant find it. HLEP!
Code:
<?xml version="1.0" ?>
<project name="blockedfree" default="debug">
<property name="sdk-folder" value="C:/Program Files/eclipse/AndroidSDK/" />
<property name="android-tools" value="C:/Program Files/eclipse/AndroidSDK/tools" />
<property name="application-package" value="com.nickkarstedt.blockedfree" />
<property name="android-framework" value="${android-tools}/lib/framework.aidl" />
<property name="resource-dir" value="res" />
<property name="asset-dir" value="assets" />
<property name="srcdir" value="src" />
<condition property="srcdir-ospath"
value="${basedir}\${srcdir}"
else="${basedir}/${srcdir}" >
<os family="windows"/>
</condition>
<property name="external-libs" value="libs" />
<condition property="external-libs-ospath"
value="${basedir}\${external-libs}"
else="${basedir}/${external-libs}" >
<os family="windows"/>
</condition>
<property name="outdir-classes" value="${outdir}/classes" />
<condition property="outdir-classes-ospath"
value="${basedir}\${outdir-classes}"
else="${basedir}/${outdir-classes}" >
<os family="windows"/>
</condition>
<property name="outdir-r" value="src" />
<!-- Intermediate files -->
<property name="dex-file" value="classes.dex" />
<property name="intermediate-dex" value="${outdir}/${dex-file}" />
<condition property="intermediate-dex-ospath"
value="${basedir}\${intermediate-dex}"
else="${basedir}/${intermediate-dex}" >
<os family="windows"/>
</condition>
<!-- The final package file to generate -->
<property name="resources-package" value="${outdir}/${ant.project.name}.ap_" />
<condition property="resources-package-ospath"
value="${basedir}\${resources-package}"
else="${basedir}/${resources-package}" >
<os family="windows"/>
</condition>
<property name="out-debug-package" value="${outdir}/${ant.project.name}-debug.apk" />
<condition property="out-debug-package-ospath"
value="${basedir}\${out-debug-package}"
else="${basedir}/${out-debug-package}" >
<os family="windows"/>
</condition>
<property name="out-unsigned-package" value="${outdir}/${ant.project.name}-unsigned.apk" />
<condition property="out-unsigned-package-ospath"
value="${basedir}\${out-unsigned-package}"
else="${basedir}/${out-unsigned-package}" >
<os family="windows"/>
</condition>
<!-- Tools -->
<condition property="aapt" value="${android-tools}/aapt.exe" else="${android-tools}/aapt" >
<os family="windows"/>
</condition>
<condition property="aidl" value="${android-tools}/aidl.exe" else="${android-tools}/aidl" >
<os family="windows"/>
</condition>
<condition property="adb" value="${android-tools}/adb.exe" else="${android-tools}/adb" >
<os family="windows"/>
</condition>
<condition property="dx" value="${android-tools}/dx.bat" else="${android-tools}/dx" >
<os family="windows"/>
</condition>
<condition property="apk-builder" value="${android-tools}/apkbuilder.bat" else="${android-tools}/apkbuilder" >
<os family="windows"/>
</condition>
<property name="android-jar" value="${sdk-folder}/android.jar" />
<!-- Rules -->
<!-- Create the output directories if they don't exist yet. -->
<target name="dirs">
<echo>Creating output directories if needed...</echo>
<mkdir dir="${outdir}" />
<mkdir dir="${outdir-classes}" />
</target>
<!-- Generate the R.java file for this project's resources. -->
<target name="resource-src" depends="dirs">
<echo>Generating R.java / Manifest.java from the resources...</echo>
<exec executable="${aapt}" failonerror="true">
<arg value="package" />
<arg value="-m" />
<arg value="-J" />
<arg value="${outdir-r}" />
<arg value="-M" />
<arg value="AndroidManifest.xml" />
<arg value="-S" />
<arg value="${resource-dir}" />
<arg value="-I" />
<arg value="${android-jar}" />
</exec>
</target>
<!-- Generate java classes from .aidl files. -->
<target name="aidl" depends="dirs">
<echo>Compiling aidl files into Java classes...</echo>
<apply executable="${aidl}" failonerror="true">
<arg value="-p${android-framework}" />
<arg value="-I${srcdir}" />
<fileset dir="${srcdir}">
<include name="**/*.aidl"/>
</fileset>
</apply>
</target>
<!-- Compile this project's .java files into .class files. -->
<target name="compile" depends="dirs, resource-src, aidl">
<javac encoding="ascii" target="1.5" debug="true" extdirs=""
srcdir="."
destdir="${outdir-classes}"
bootclasspath="${android-jar}">
<classpath>
<fileset dir="${external-libs}" includes="*.jar"/>
</classpath>
</javac>
</target>
<!-- Convert this project's .class files into .dex files. -->
<target name="dex" depends="compile">
<echo>Converting compiled files and external libraries into ${outdir}/${dex-file}...</echo>
<apply executable="${dx}" failonerror="true" parallel="true">
<arg value="--dex" />
<arg value="--output=${intermediate-dex-ospath}" />
<arg path="${outdir-classes-ospath}" />
<fileset dir="${external-libs}" includes="*.jar"/>
</apply>
</target>
<!-- Put the project's resources into the output package file. -->
<target name="package-res-and-assets">
<echo>Packaging resources and assets...</echo>
<exec executable="${aapt}" failonerror="true">
<arg value="package" />
<arg value="-f" />
<arg value="-M" />
<arg value="AndroidManifest.xml" />
<arg value="-S" />
<arg value="${resource-dir}" />
<arg value="-A" />
<arg value="${asset-dir}" />
<arg value="-I" />
<arg value="${android-jar}" />
<arg value="-F" />
<arg value="${resources-package}" />
</exec>
</target>
<!-- Same as package-res-and-assets, but without "-A ${asset-dir}" -->
<target name="package-res-no-assets">
<echo>Packaging resources...</echo>
<exec executable="${aapt}" failonerror="true">
<arg value="package" />
<arg value="-f" />
<arg value="-M" />
<arg value="AndroidManifest.xml" />
<arg value="-S" />
<arg value="${resource-dir}" />
<!-- No assets directory -->
<arg value="-I" />
<arg value="${android-jar}" />
<arg value="-F" />
<arg value="${resources-package}" />
</exec>
</target>
<!-- Invoke the proper target depending on whether or not
an assets directory is present. -->
<!-- TODO: find a nicer way to include the "-A ${asset-dir}" argument
only when the assets dir exists. -->
<target name="package-res">
<available file="${asset-dir}" type="dir"
property="res-target" value="and-assets" />
<property name="res-target" value="no-assets" />
<antcall target="package-res-${res-target}" />
</target>
<!-- Package the application and sign it with a debug key. -->
<target name="debug" depends="dex, package-res">
<echo>Packaging ${out-debug-package}, and signing it with a debug key...</echo>
<exec executable="${apk-builder}" failonerror="true">
<arg value="${out-debug-package-ospath}" />
<arg value="-z" />
<arg value="${resources-package-ospath}" />
<arg value="-f" />
<arg value="${intermediate-dex-ospath}" />
<arg value="-rf" />
<arg value="${srcdir-ospath}" />
<arg value="-rj" />
<arg value="${external-libs-ospath}" />
</exec>
</target>
<!-- Package the application without signing it. -->
<target name="release" depends="dex, package-res">
<echo>Packaging ${out-unsigned-package} for release...</echo>
<exec executable="${apk-builder}" failonerror="true">
<arg value="${out-unsigned-package-ospath}" />
<arg value="-u" />
<arg value="-z" />
<arg value="${resources-package-ospath}" />
<arg value="-f" />
<arg value="${intermediate-dex-ospath}" />
<arg value="-rf" />
<arg value="${srcdir-ospath}" />
<arg value="-rj" />
<arg value="${external-libs-ospath}" />
</exec>
<echo>It will need to be signed with jarsigner before being published.</echo>
</target>
<!-- Install the package on the default emulator -->
<target name="install" depends="debug">
<echo>Installing ${out-debug-package} onto default emulator...</echo>
<exec executable="${adb}" failonerror="true">
<arg value="install" />
<arg value="${out-debug-package}" />
</exec>
</target>
</project>
.... nevermind, I just figured it out. To anyone with similar problems, you DON'T need to use a build.xml if you're using Eclipse. Put the .jar in your libs folder, then Right click your project -> Build path -> configure build path. Click the Libraries tab, then click Add JARs... Then select the jar WITHIN your current project. I also selected the jar in order and export. Not sure if you have to, but it worked.

Removal of Carrier from Notification Bar

So far all my searches on how to remove the carrier from the drop down notification bar focus on changing the string value to something else or blanking it out. I would like to remove that whole section. I am on Rogers and my carrier is not listed in eri.xml, so that is not an option anyway.
I found some interesting info on this site:
http://www.absolutelyandroid.com/ui-tweaks-on-cm6-a-tutorial/
which explained some bits inside status_bar_expanded.xml from the framework-res.apk. I am not that familiar with the code (yet) but wondered what would happen if I removed the chunk that refers to "plmnLabel" and "spnLabel"? Could I safely remove that wasted space that tells me what I already know (that I'm on Rogers network).
Code:
<?xml version="1.0" encoding="UTF-8"?>
<com.android.server.status.ExpandedView android:orientation="vertical" android:background="@drawable/status_bar_background" android:focusable="true" android:descendantFocusability="afterDescendants" android:directionality="leftToRight"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:orientation="horizontal" android:background="@drawable/status_bar_header_background" android:paddingTop="3.0dip" android:paddingRight="3.0dip" android:paddingBottom="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content">
[COLOR="Red"]<LinearLayout android:layout_gravity="center_vertical" android:orientation="vertical" android:paddingBottom="1.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:layout_marginTop="1.0dip" android:layout_weight="1.0">
<TextView android:textAppearance="?textAppearanceLarge" android:textColor="#ffffffff" android:layout_gravity="center_vertical" android:id="@id/plmnLabel" android:paddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<TextView android:textAppearance="?textAppearanceLarge" android:textColor="#ffffffff" android:layout_gravity="center_vertical" android:id="@id/spnLabel" android:paddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>[/COLOR]
<TextView android:textSize="14.0sp" android:textColor="#ff000000" android:layout_gravity="center_vertical" android:id="@id/clear_all_button" android:background="@drawable/btn_default_small" android:paddingLeft="15.0dip" android:paddingRight="15.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4.0dip" android:layout_marginBottom="1.0dip" android:text="@string/status_bar_clear_all_button" style="\?android:attr/buttonStyle" />
</LinearLayout>
<FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content">
<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0">
<com.android.server.status.NotificationLinearLayout android:orientation="vertical" android:id="@id/notificationLinearLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0">
<TextView android:textAppearance="@style/TextAppearance.StatusBarTitle" android:id="@id/noNotificationsTitle" android:background="@drawable/title_bar_portrait" android:paddingLeft="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_no_notifications_title" />
<TextView android:textAppearance="@style/TextAppearance.StatusBarTitle" android:id="@id/ongoingTitle" android:background="@drawable/title_bar_portrait" android:paddingLeft="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_ongoing_events_title" />
<LinearLayout android:orientation="vertical" android:id="@id/ongoingItems" android:layout_width="fill_parent" android:layout_height="wrap_content" />
<TextView android:textAppearance="@style/TextAppearance.StatusBarTitle" android:id="@id/latestTitle" android:background="@drawable/title_bar_portrait" android:paddingLeft="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_latest_events_title" />
<LinearLayout android:orientation="vertical" android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" />
</com.android.server.status.NotificationLinearLayout>
</ScrollView>
<ImageView android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/title_bar_shadow" android:scaleType="fitXY" />
</FrameLayout>
</com.android.server.status.ExpandedView>
The only reason I don't intend to remove the next level of nested FrameLayout tags is because the Clear button appears in it. I'm not sure what to do about that.
Eventually, I would like to figure out how to add power control toggles to this are (much like some other themes/roms have done).
Any thoughts?
I found a little more info (not directly helpful to what I want to do) that will help blank the carrier if that is all you want to do.
My carrier is not listed in my eri.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<EriFile VersionNumber="1357" NumberOfEriEntries="12" EriFileType="1">
<CallPromptId Id="0" CallPromptText="CallPromptId0" />
<CallPromptId Id="1" CallPromptText="CallPromptId1" />
<CallPromptId Id="2" CallPromptText="CallPromptId2" />
<EriInfo RoamingIndicator="64" IconIndex="1" IconMode="0" EriText="T-CDMA 64" CallPromptId="0" AlertId="0" />
<EriInfo RoamingIndicator="65" IconIndex="65" IconMode="0" EriText="T-CDMA 65" CallPromptId="0" AlertId="0" />
<EriInfo RoamingIndicator="66" IconIndex="1" IconMode="0" EriText="T-CDMA Ext 66" CallPromptId="0" AlertId="0" />
<EriInfo RoamingIndicator="67" IconIndex="67" IconMode="0" EriText="T-CDMA Ext 67" CallPromptId="0" AlertId="0" />
<EriInfo RoamingIndicator="68" IconIndex="68" IconMode="0" EriText="T-CDMA Roam 68" CallPromptId="0" AlertId="0" />
<EriInfo RoamingIndicator="69" IconIndex="69" IconMode="1" EriText="T-CDMA Ext 69" CallPromptId="0" AlertId="0" />
<EriInfo RoamingIndicator="70" IconIndex="70" IconMode="1" EriText="T-CDMA Roam 70" CallPromptId="0" AlertId="0" />
<EriInfo RoamingIndicator="71" IconIndex="1" IconMode="0" EriText="T-CDMA Ext 71" CallPromptId="0" AlertId="0" />
<EriInfo RoamingIndicator="72" IconIndex="72" IconMode="0" EriText="T-CDMA Ext 72" CallPromptId="0" AlertId="0" />
<EriInfo RoamingIndicator="73" IconIndex="73" IconMode="0" EriText="T-CDMA Roam 73" CallPromptId="0" AlertId="0" />
<EriInfo RoamingIndicator="74" IconIndex="74" IconMode="1" EriText="T-CDMA Ext 74" CallPromptId="0" AlertId="0" />
<EriInfo RoamingIndicator="75" IconIndex="75" IconMode="1" EriText="T-CDMA Roam 75" CallPromptId="0" AlertId="0" />
</EriFile>
But I did find a file located on my phone that lists many providers with their details (from all continents):
/etc/customization/content/com/sonyericsson/r2r/client/preloaded_config.xml
Gonna take a browse through that and look for "Rogers".

[Q] /system/media/audio/ui/ control file

i would like to ask whether anyone can help me with this or at least tell me whether it is possible to edit or not.
Volume Step sound in Sense 4.0 is "do re mi fa so la ti", total/max 'steps' count is 7. Original files name in '/system/media/audio/ui' are 'Volume-1.aac' to 'Volume-7.aac'
But after changing Volume Step in Tweak to "Finest", the max count became 15. Then the Volume Step sound became "do re mi fa so la [(ti) x 9]"
I wish to customize/add Volume Step sound of 8th step and above, so i played around with those "Volume-*.aac" in '/system/media/audio/ui/'. I tried duplicating those files and rename up to "Volume-15.aac" and restarted device, but there is no effects.
Which file (for example build.prop) in '/system/' should i edit, in order to make 'Volume-8.aac' to 'Volumn-15.aac' work?
Thanks in advance.
In order to add that resource I'm guessing you'll need to edit Settings.apk>res/xml/soundsettings.xml
The device will not play a resource that doesn't exist in the base.
Thanks for your quick response. =)
I google-ed around and installed apktool.
Below are the codes from the xml files, but i don't know which to edit. Any help here?
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.htc.preference.HtcPreferenceScreen android:title="@string/sound_settings" android:key="sound_settings"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<com.htc.preference.HtcPreferenceCategory android:title="@string/sound_category_sound_title" android:key="sound_group" />
<com.htc.preference.HtcListPreference android:persistent="false" android:entries="@array/profile_item_list" android:title="@string/silent_list_title" android:key="silentlist" android:summary="@string/silent_mode_summary" android:dialogTitle="@string/profiles_dialog_title" android:entryValues="@array/animations_values" />
<com.htc.preference.HtcPreference android:persistent="false" android:entries="@array/profile_item_list" android:title="@string/silent_list_title" android:key="customize_silentlist" android:summary="@string/silent_mode_summary" android:dialogTitle="@string/profiles_dialog_title" android:entryValues="@array/animations_values" />
<com.htc.preference.HtcListPreference android:title="@string/musicfx_title" android:key="musicfx">
<intent android:targetPackage="com.android.musicfx" android:targetClass="com.android.musicfx.ControlPanelPicker" />
</com.htc.preference.HtcListPreference>
<com.android.settings.RingerVolumePreference android:persistent="false" android:title="@string/all_volume_title" android:key="ring_volume" android:summary="@string/volume_setting_summary" android:dialogTitle="@string/all_volume_title" android:streamType="ring" />
<com.htc.preference.HtcPreference android:persistent="true" android:title="@string/htc_beats_audio_settings_title" android:key="htc_sound_enhancer" />
<com.htc.preference.HtcCheckBoxPreference android:persistent="true" android:title="@string/vibrate_title" android:key="vibrate" android:summary="@string/vibrate_summary" android:dependency="silentlist" android:defaultValue="true" />
<com.htc.preference.HtcPreferenceCategory android:title="@string/sound_category_calls_title" android:key="sound_category_calls">
<com.htc.preference.HtcPreference android:persistent="true" android:title="@string/ringtone_title" android:key="ringtone" android:summary="@string/ringtone_summary" android:dependency="silentlist" android:dialogTitle="@string/ringtone_title" />
<com.htc.preference.HtcPreference android:persistent="true" android:title="@string/ringtone_title" android:key="ringtone_slot2" android:summary="@string/ringtone_summary" android:dependency="silentlist" android:dialogTitle="@string/ringtone_title" />
<com.htc.preference.HtcPreference android:persistent="true" android:title="@string/htc_ringtone_virbrate_title" android:key="ringtone_vibrate" android:summary="@string/htc_ringtone_virbrate_summary" android:dialogTitle="@string/htc_ringtone_virbrate_title" />
<com.android.settings.framework.preference.sound.HtcBePolitePreference android:dependency="silentlist" />
<com.android.settings.framework.preference.sound.HtcPocketModePreference android:dependency="silentlist" />
<com.android.settings.framework.preference.sound.HtcFlipToSpeakerPreference android:dependency="silentlist" />
</com.htc.preference.HtcPreferenceCategory>
<com.htc.preference.HtcPreferenceCategory android:title="@string/sound_category_notification_title" android:key="category_notification" />
<com.htc.preference.HtcPreference android:persistent="true" android:title="@string/htc_notification_sound_title" android:key="notification_sound" android:summary="@string/htc_notification_sound_summary" android:dependency="silentlist" android:dialogTitle="@string/htc_notification_sound_dialog_title" />
<com.htc.preference.HtcPreference android:persistent="true" android:title="@string/htc_notification_sound_vibrate_title" android:key="notification_sound_vibrate" android:summary="@string/htc_notification_sound_vibrate_summary" android:dialogTitle="@string/htc_notification_sound_vibrate_title" />
<com.htc.preference.HtcCheckBoxPreference android:persistent="false" android:title="@string/notification_pulse_title" android:key="notification_pulse" android:summary="@string/notification_pulse_summary" />
<com.htc.preference.HtcPreferenceCategory android:title="@string/sound_category_feedback_title" />
<com.htc.preference.HtcCheckBoxPreference android:title="@string/dtmf_tone_enable_title" android:key="dtmf_tone" android:defaultValue="true" android:summaryOn="@string/dtmf_tone_enable_summary_on" android:summaryOff="@string/dtmf_tone_enable_summary_off" />
<com.htc.preference.HtcListPreference android:persistent="true" android:entries="@array/htc_cdma_dtmf_tone_entries" android:title="@string/dtmf_tone_enable_title" android:key="htc_cdma_dtmf_tone" android:dependency="silentlist" android:defaultValue="0" android:entryValues="@array/htc_cdma_dtmf_tone_values" />
<com.htc.preference.HtcCheckBoxPreference android:title="@string/sound_effects_enable_title" android:key="sound_effects" android:defaultValue="true" android:summaryOn="@string/sound_effects_enable_summary_on" android:summaryOff="@string/sound_effects_enable_summary_off" />
<com.htc.preference.HtcCheckBoxPreference android:title="@string/lock_sounds_enable_title" android:key="lock_sounds" android:defaultValue="true" android:summaryOn="@string/lock_sounds_enable_summary_on" android:summaryOff="@string/lock_sounds_enable_summary_off" />
<com.htc.preference.HtcListPreference android:persistent="false" android:title="@string/powersaver_haptic_feedback" android:key="haptic_feedback_list" android:summary="@string/haptic_feedback_enable_summary_on" android:dialogTitle="@string/profiles_dialog_title" />
<com.htc.preference.HtcCheckBoxPreference android:title="@string/powersaver_haptic_feedback" android:key="haptic_feedback" android:defaultValue="true" android:summaryOn="@string/haptic_feedback_enable_summary_on" android:summaryOff="@string/haptic_feedback_enable_summary_off" />
<com.htc.preference.HtcCheckBoxPreference android:persistent="false" android:title="@string/roaming_ringtone_title" android:key="button_roaming_ringtone" android:summary="@string/roaming_ringtone_summary" android:dependency="silentlist" android:defaultValue="false" />
<com.htc.preference.HtcListPreference android:entries="@array/emergency_tone_entries" android:title="@string/emergency_tone_title" android:key="emergency_tone" android:summary="@string/emergency_tone_summary" android:entryValues="@array/emergency_tone_values" />
</com.htc.preference.HtcPreferenceScreen>
I'd need to search around for it. Keep looking for now, I won't have time until the weekend.
Sent from my HTC Sensation 4G using Tapatalk 2
GROGG88,
after cross-checking titles in '\res\xml\sound_settings.xml' with '\res\values\strings.xml', I found out that editing sound_settings.xml doesn't help.
Can you please check it out?
Thank you very much =)
I'll put it on my list of things to do. I'm out of town right now...

Multiscreen

What app, jar, or xml controls the multiscreen. Trying to get something to work and need to know what dictates the split screen on a few apps.
It's in the AndroidManifest.xml file.
You need to add this to the xml:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
</intent-filter>
And this before closing the application tag:
<uses-library required="false" name="com.sec.android.app.multiwindow" />
<meta-data android:name="com.sec.android.support.multiwindow" android:value="true" />
<meta-data android:name="com.sec.android.multiwindow.DEFAULT_SIZE_W" android:value="632.0dip" />
<meta-data android:name="com.sec.android.multiwindow.DEFAULT_SIZE_H" android:value="598.0dip" />
<meta-data android:name="com.sec.android.multiwindow.MINIMUM_SIZE_W" android:value="632.0dip" />
<meta-data android:name="com.sec.android.multiwindow.MINIMUM_SIZE_H" android:value="598.0dip" />
</application>

[Q]remove SIM Switcher from notification panel ?

Someone can point me to the XML file to MOD LGSystemUI and remove SIM switcher from notification panel ?
LG G2 mini D618 Stock 5.0.2
compared between the two status_bar_expanded
the msim_status_bar_expanded => when there is two sim card
the status_bar_expanded => when there is one sim card 2nd sim slot is empty
found two difference
- the first one
in status_bar_expanded those two lines :
Code:
<LinearLayout android:layout_gravity="top" android:id="@id/mascot_view" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="@dimen/mascot_display_height" />
<include android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="@dimen/carrier_label_height" android:layout_marginBottom="@dimen/close_handle_height" layout="@layout/carrier_label" />
are replaced in msim_status_bar_expanded with those 3 lines :
Code:
<include android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="@dimen/carrier_label_height" android:layout_marginBottom="@dimen/close_handle_height" layout="@layout/msim_carrier_label" />
<include android:layout_gravity="bottom" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="@dimen/carrier_label_height" layout="@layout/subs_label" />
<include android:layout_gravity="bottom" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="@dimen/carrier_label_height" android:layout_marginBottom="@dimen/close_handle_height" layout="@layout/carrier_label" />
- 2nd one :
in status_bar_expanded this line
Code:
1<include android:visibility="invisible" layout="@layout/keyguard_status_bar" />
is replaced with this line in msim_status_bar_expanded
Code:
1<include android:visibility="invisible" layout="@layout/msim_keyguard_status_bar" />
any one knows with XML ??
tried replace contante of msim_status_bar_expanded with the one of the status_bar_expanded and i got FC

Categories

Resources