[Guide] How to port hydrogen ROMs to helium - Xiaomi Mi Max Guides, News, & Discussion

Hi guys, since i got mi max (hydrogen) i noticed that there is few custom ROMs for helium, even the two devices is nearly same. but helium is using different camera firmware and need some edits to enable 2 big cores. so let's go !
You'll need some tools:
- ROM kitchen, i prefer superr's kitchen. :good:
- Boot image Extractor, you can use Android Image Kitchen
- APKTool, get it here
- Any text editor, Notepad++ is good choice for windows users.
Part 0: Preparing:
1- Open superr's kitchen and create new project, then copy hydrogen ROM to project folder and Extract zip using kitchen (option 4). [when it asks for perm type choose sparse_dat]
2- Copy boot.img to Android Image Kitchen folder and run unpackimg.sh / unpackimg.bat (You can also drag and drop boot to unpackimg.bat if you're using windows).
Part 1: System files:
Due to difference in camera firmware and cpu configuration as i explained you'll need to copy these files to "system" folder in kitchen.
Code:
.
├── etc
│** ├── cpu
│** │** └── cpu.conf
│** └── firmware
│** ├── venus.b00
│** ├── venus.b01
│** ├── venus.b02
│** ├── venus.b03
│** ├── venus.b04
│** ├── venus.mbn
│** ├── venus.mdt
│** ├── venus-v1.b00
│** ├── venus-v1.b01
│** ├── venus-v1.b02
│** ├── venus-v1.b03
│** ├── venus-v1.b04
│** ├── venus-v1.mbn
│** └── venus-v1.mdt
├── lib
│** ├── hw
│** │** └── camera.msm8952.so
│** ├── libcamera2ndk.so
│** ├── libcamera_client.so
│** ├── libcameraservice.so
│** ├── libmmcamera_interface.so
│** ├── libmmjpeg_interface.so
│** └── libmm-qcamera.so
├── lib64
** ├── libcamera2ndk.so
** ├── libcamera_client.so
** └── libcameraservice.so
You can get this files from any working helium ROM or from my Github Repo Here
Part 2: Editing Boot.img :
After unpacking hydrogen boot.img using Android Image Kitchen You'll need to copy Helium zImage and edit init.qcom.power.rc
* i prefer editing init.qcom.power.rc even you can just copy it from helium boot.img *
- Copy Helium zImage to "split_img" and make sure it's renamed as "boot.img-zImage"
- Open init.qcom.power.rc and edit the following lines:
Change:
Code:
write /dev/cpuset/foreground/cpus 0-2,4-5
write /dev/cpuset/foreground/boost/cpus 4-5
write /dev/cpuset/background/cpus 0
write /dev/cpuset/system-background/cpus 0-2
write /dev/cpuset/top-app/cpus 0-5
To:
Code:
write /dev/cpuset/foreground/cpus 0-2,4-7
write /dev/cpuset/foreground/boost/cpus 4-7
write /dev/cpuset/background/cpus 0
write /dev/cpuset/system-background/cpus 0-2
write /dev/cpuset/top-app/cpus 0-7
And
Code:
# Bring up all cores online
write /sys/devices/system/cpu/cpu1/online 1
write /sys/devices/system/cpu/cpu2/online 1
write /sys/devices/system/cpu/cpu3/online 1
write /sys/devices/system/cpu/cpu4/online 1
write /sys/devices/system/cpu/cpu5/online 1
To:
Code:
# Bring up all cores online
write /sys/devices/system/cpu/cpu1/online 1
write /sys/devices/system/cpu/cpu2/online 1
write /sys/devices/system/cpu/cpu3/online 1
write /sys/devices/system/cpu/cpu4/online 1
write /sys/devices/system/cpu/cpu5/online 1
write /sys/devices/system/cpu/cpu6/online 1
write /sys/devices/system/cpu/cpu7/online 1
And
Code:
# Bring CPUs offline
write /sys/devices/system/cpu/cpu1/online 0
write /sys/devices/system/cpu/cpu2/online 0
write /sys/devices/system/cpu/cpu3/online 0
write /sys/devices/system/cpu/cpu4/online 0
write /sys/devices/system/cpu/cpu5/online 0
To:
Code:
# Bring CPUs offline
write /sys/devices/system/cpu/cpu1/online 0
write /sys/devices/system/cpu/cpu2/online 0
write /sys/devices/system/cpu/cpu3/online 0
write /sys/devices/system/cpu/cpu4/online 0
write /sys/devices/system/cpu/cpu5/online 0
write /sys/devices/system/cpu/cpu6/online 0
write /sys/devices/system/cpu/cpu7/online 0
- then Repack boot and copy image-new.img to superr's kitchen project folder then rename it to boot.img
You can get these files from any helium boot.img or from my Github Repo Here
Zimage - init.qcom.power.rc
Part 3: Editing Framework-res.apk :
Make sure you've installed apktool then copy system/framework/framework-res.apk to new folder (apktool folder for windows users) and:
- install framework-res.apk using command:
Code:
apktool if framework-res.apk
- decompile framework-res.apk using command:
Code:
apktool d framework-res.apk
- Copy this power_profile.xml to framework-res/res/xml folder in apktool.
- Now recompile framework-res apk using command:
Code:
apktool b -f framework-res
- You'll find the edited apk in framework-res/build/apk folder, copy it to "system/framework/" in superr's kitchen project folder.
Part 4: Finalizing :
Now you've finished porting hydrogen ROM to helium, but you need to repack ROM into zip to be able to use it.
- Open superr's kitchen, choose 8) ROM Tools Menu then 7) Build Menu and finally 1) Build full ROM Zip
- Wait till it finishes (when it asks for sign zip press "y") then you'll have to edit META-INF/com/google/android/updater-script inside ROM Zip, so open ROM zip and head to META-INF/com/google/android/ to open updater-script file using text editor then change script to:
Code:
package_extract_dir("install", "/tmp/install");
set_metadata_recursive("/tmp/install", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644);
set_metadata_recursive("/tmp/install/bin", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755);
mount("ext4", "EMMC", "/dev/block/bootdevice/by-name/system", "/system", "");
run_program("/tmp/install/bin/backuptool.sh", "backup");
unmount("/system");
show_progress(0.750000, 0);
ui_print("Patching system image unconditionally...");
block_image_update("/dev/block/bootdevice/by-name/system", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat") ||
abort("E1001: Failed to update system image.");
show_progress(0.020000, 10);
mount("ext4", "EMMC", "/dev/block/bootdevice/by-name/system", "/system", "");
run_program("/tmp/install/bin/backuptool.sh", "restore");
unmount("/system");
show_progress(0.050000, 5);
package_extract_file("boot.img", "/dev/block/bootdevice/by-name/boot");
show_progress(0.200000, 10);
set_progress(1.000000);
And Congratulations You've finished porting hydrogen ROM to your helium
Special Thanks:
SuperR. for his great kitchen
osm0sis for amazing image tools script
iBotPeaches for apktool
@nijel8 for helium device tree
@Davehimself for helium vendor
@Ahmed Hady & @androidlover5842 my great friends & helpers
And me for typing this guide :good:

Reversed 1

Reversed 2

Thanks
Sent from my Mi Max using XDA-Developers Legacy app

ardas said:
Thanks
Click to expand...
Click to collapse
Welcome, hope we'll see more helium roms soon

Brother im trying to port miui to mi a1.
Mi 5x and mi a1 both device is same only diffrence is mi a1 running on asop by android one project with a/b partition layout and mi5x with miui.
In mi5x xda forum developers are able to port the mia1 pure android rom to their mi5x.
They use exact same system.img file without any changes i compared they are able to boot exact same system.img file for mia1 to mi5x.
I tried same but im not able to port it
Dont know system partition table are not able to boot the system or im missing some thing on boot.img.
Every time i tried to port miui from mi5x failed can u please help me port.
Eargely waiting for ur reply..

Related

[GAPPS][Android 4.3][20130821] Latest Gapps Package (Full/Minimal)

Hey there! So Android 4.3 has been out for quite some time and I can see that more and more custom AOSP builds are gradually migrating to 4.3 too......and due to copyright issues, AOSP builds can't include Gapps (Google Applications) into their ROM package, so users will have to scour around for Gapps packages...so to ease this pain, I have tested and mirrored some Gapps packages which are 100% functional (obtained from sources such as Goo.im, Android File Host and ROM Manager)...
So, enough of the lengthy introduction, I will always include 2 versions of Gapps: full and minimal.
Full:
Core Gapps
Gapps libraries
Gapps frameworks
Common Gapps you will get in a stock Nexus device (Gmail, Google+ etc)
Minimal:
Core Gapps
Gapps libraries
Gapps frameworks
Updated Gapps (the full package may not always have the updated ones)
In short, I will be maintaining the minimal version, the full version will be sourced from reputable sites...
**Legend:**
Red - only in full version
Purple - updated APK
Downloads:
Full:
gapps-jb-20130813-signed.zip
md5 checksum: 1f51b5cc6370c1f45dc951109b6ce6ed
APK versions:
Code:
ChromeBookmarksSyncAdapter.apk [v4.3-737497]
ConfigUpdater.apk [v4.3-737497]
FaceLock.apk [v4.3-737497]
GenieWidget.apk [v1.3.11]
[COLOR=Red]Gmail.apk [v4.5.2-714156][/COLOR]
GmsCore.apk [v3.2.25 (761454-36)]
GoogleBackupTransport.apk [v4.3-737497]
GoogleCalendarSyncAdapter.apk [v4.0.3-239410]
GoogleContactsSyncAdapter.apk [v4.3-737497]
[COLOR=Red]GoogleEars.apk [v1.1.9][/COLOR]
GoogleFeedback.apk [v4.3-737497]
GoogleLoginService.apk [v4.3-737497]
GoogleOneTimeInitializer.apk [v4.3-737497]
GooglePartnerSetup.apk [v4.3-737497]
[COLOR=Red]GooglePlus.apk [v4.0.2.48854689][/COLOR]
GoogleServicesFramework.apk [v4.3-737497]
GoogleTTS.apk [v2.1.0.737497]
LatinImeDictionaryPack.apk [v4.2.2-573038]
MediaUploader.apk [v1.3.242047]
NetworkLocation.apk [v1.1.10]
Phonesky.apk [v4.3.10]
[COLOR=Red]QuickSearchBox.apk [v2.6.7.721924.arm][/COLOR]
SetupWizard.apk [v1.3]
[COLOR=Red]Talkback.apk [v3.4.0][/COLOR]
VoiceSearchStub.apk [v4.0.0]
Contents:
.
├── install-optional.sh
├── META-INF
│** ├── CERT.RSA
│** ├── CERT.SF
│** ├── com
│** │** └── google
│** │** └── android
│** │** ├── update-binary
│** │** └── updater-script
│** └── MANIFEST.MF
├── optional
│** └── face
│** ├── addon.d
│** │** └── 71-gapps-faceunlock.sh
│** ├── app
│** │** └── FaceLock.apk
│** ├── lib
│** │** └── libfacelock_jni.so
│** └── vendor
│** └── pittpatt
│** └── models
│** ├── detection
│** │** ├── multi_pose_face_landmark_detectors.7
│** │** │** ├── left_eye-y0-yi45-p0-pi45-r0-ri20.lg_32.bin
│** │** │** ├── nose_base-y0-yi45-p0-pi45-r0-ri20.lg_32.bin
│** │** │** └── right_eye-y0-yi45-p0-pi45-r0-ri20.lg_32-2.bin
│** │** └── yaw_roll_face_detectors.6
│** │** ├── head-y0-yi45-p0-pi45-r0-ri30.4a-v24.bin
│** │** ├── head-y0-yi45-p0-pi45-rn30-ri30.5-v24.bin
│** │** └── head-y0-yi45-p0-pi45-rp30-ri30.5-v24.bin
│** └── recognition
│** └── face.face.y0-y0-22-b-N.bin
└── system
├── addon.d
│** └── 70-gapps.sh
├── app
│** ├── ChromeBookmarksSyncAdapter.apk
│** ├── ConfigUpdater.apk
│** ├── GenieWidget.apk
│** ├── Gmail.apk
│** ├── GmsCore.apk
│** ├── GoogleBackupTransport.apk
│** ├── GoogleCalendarSyncAdapter.apk
│** ├── GoogleContactsSyncAdapter.apk
│** ├── GoogleEars.apk
│** ├── GoogleFeedback.apk
│** ├── GoogleLoginService.apk
│** ├── GoogleOneTimeInitializer.apk
│** ├── GooglePartnerSetup.apk
│** ├── GooglePlus.apk
│** ├── GoogleServicesFramework.apk
│** ├── GoogleTTS.apk
│** ├── LatinImeDictionaryPack.apk
│** ├── MediaUploader.apk
│** ├── NetworkLocation.apk
│** ├── Phonesky.apk
│** ├── QuickSearchBox.apk
│** ├── SetupWizard.apk
│** ├── TalkBack.apk
│** └── VoiceSearchStub.apk
├── etc
│** ├── g.prop
│** ├── permissions
│** │** ├── com.google.android.maps.xml
│** │** ├── com.google.android.media.effects.xml
│** │** ├── com.google.widevine.software.drm.xml
│** │** └── features.xml
│** └── preferred-apps
│** └── google.xml
├── framework
│** ├── com.google.android.maps.jar
│** ├── com.google.android.media.effects.jar
│** └── com.google.widevine.software.drm.jar
├── lib
│** ├── libAppDataSearch.so
│** ├── libfilterpack_facedetect.so
│** ├── libfrsdk.so
│** ├── libgames_rtmp_jni.so
│** ├── libgoggles_clientvision.so
│** ├── libgoogle_recognizer_jni_l.so
│** ├── libgoogle_recognizer_jni.so
│** ├── libgtalk_jni.so
│** ├── libgtalk_stabilize.so
│** ├── libjni_latinime.so
│** ├── libjni_t13n_shared_engine.so
│** ├── libpatts_engine_jni_api.so
│** ├── libplus_jni_v8.so
│** ├── librs.antblur_constant.so
│** ├── librs.antblur_drama.so
│** ├── librs.antblur.so
│** ├── librs.drama.so
│** ├── librs.film_base.so
│** ├── librs.fixedframe.so
│** ├── librs.grey.so
│** ├── librs.image_wrapper.so
│** ├── librsjni.so
│** ├── librs.retrolux.so
│** ├── libRSSupport.so
│** ├── libspeexwrapper.so
│** ├── libvcdecoder_jni.so
│** ├── libvorbisencoder.so
│** ├── libwebp_android.so
│** └── libwebrtc_audio_coding.so
├── tts
│** └── lang_pico
│** ├── de-DE_gl0_sg.bin
│** ├── de-DE_ta.bin
│** ├── es-ES_ta.bin
│** ├── es-ES_zl0_sg.bin
│** ├── fr-FR_nk0_sg.bin
│** ├── fr-FR_ta.bin
│** ├── it-IT_cm0_sg.bin
│** └── it-IT_ta.bin
└── usr
└── srec
└── en-US
├── c_fst
├── classifier
├── clg
├── compile_grammar.config
├── contacts.abnf
├── dict
├── dictation.config
├── dnn
├── endpointer_dictation.config
├── endpointer_voicesearch.config
├── ep_acoustic_model
├── g2p_fst
├── google_hotword.config
├── grammar.config
├── hclg_shotword
├── hmmlist
├── hmm_symbols
├── hotword_normalizer
├── hotword_word_symbols
├── metadata
├── normalizer
├── norm_fst
├── offensive_word_normalizer
├── phonelist
├── phone_state_map
├── rescoring_lm
└── wordlist
29 directories, 114 files
Links:
http://goo.im/gapps/gapps-jb-20130813-signed.zip (Goo.im)
http://www.androidfilehost.com/?fid=23060877490000124 (Android File Host)
Old versions:
gapps-jb-20130726.zip
md5 checksum: 1afbfe2d7521d4d8efc7df02483ab828
APK versions:
Code:
ChromeBookmarksSyncAdapter.apk [v4.3-737497]
ConfigUpdater.apk [v4.3-737497]
FaceLock.apk [v4.3-737497]
GenieWidget.apk [v1.3.11]
[COLOR=Red]Gmail2.apk [v4.5.1-737497][/COLOR]
GmsCore.apk [v3.1.58 (719390-30)]
GoogleBackupTransport.apk [v4.3-737497]
GoogleCalendarSyncAdapter.apk [v4.0.3-239410]
GoogleContactsSyncAdapter.apk [v4.3-737497]
[COLOR=Red]GoogleEars.apk [v1.1.9][/COLOR]
GoogleFeedback.apk [v4.3-737497]
GoogleLoginService.apk [v4.3-737497]
GoogleOneTimeInitializer.apk [v4.3-737497]
GooglePartnerSetup.apk [v4.3-737497]
[COLOR=Red]GooglePlus.apk [v4.0.0.46852618][/COLOR]
GoogleServicesFramework.apk [v4.3-737497]
GoogleTTS.apk [v2.1.0.737497]
LatinImeDictionaryPack.apk [v4.2.2-573038]
MediaUploader.apk [v1.3.242047]
NetworkLocation.apk [v1.1.10]
Phonesky.apk [v4.2.3]
[COLOR=Red]QuickSearchBox.apk [v2.5.9.737497][/COLOR]
SetupWizard.apk [v1.3]
[COLOR=Red]Talkback.apk [v3.3.3][/COLOR]
VoiceSearchStub.apk [v4.0.0]
Contents:
.
├── install-optional.sh
├── META-INF
│** ├── CERT.RSA
│** ├── CERT.SF
│** ├── com
│** │** └── google
│** │** └── android
│** │** ├── update-binary
│** │** └── updater-script
│** └── MANIFEST.MF
├── optional
│** └── face
│** ├── addon.d
│** │** └── 71-gapps-faceunlock.sh
│** ├── app
│** │** └── FaceLock.apk
│** ├── lib
│** │** └── libfacelock_jni.so
│** └── vendor
│** └── pittpatt
│** └── models
│** ├── detection
│** │** ├── multi_pose_face_landmark_detectors.7
│** │** │** ├── left_eye-y0-yi45-p0-pi45-r0-ri20.lg_32.bin
│** │** │** ├── nose_base-y0-yi45-p0-pi45-r0-ri20.lg_32.bin
│** │** │** └── right_eye-y0-yi45-p0-pi45-r0-ri20.lg_32-2.bin
│** │** └── yaw_roll_face_detectors.6
│** │** ├── head-y0-yi45-p0-pi45-r0-ri30.4a-v24.bin
│** │** ├── head-y0-yi45-p0-pi45-rn30-ri30.5-v24.bin
│** │** └── head-y0-yi45-p0-pi45-rp30-ri30.5-v24.bin
│** └── recognition
│** └── face.face.y0-y0-22-b-N.bin
└── system
├── addon.d
│** └── 70-gapps.sh
├── app
│** ├── ChromeBookmarksSyncAdapter.apk
│** ├── ConfigUpdater.apk
│** ├── GenieWidget.apk
│** ├── Gmail2.apk
│** ├── GmsCore.apk
│** ├── GoogleBackupTransport.apk
│** ├── GoogleCalendarSyncAdapter.apk
│** ├── GoogleContactsSyncAdapter.apk
│** ├── GoogleEars.apk
│** ├── GoogleFeedback.apk
│** ├── GoogleLoginService.apk
│** ├── GoogleOneTimeInitializer.apk
│** ├── GooglePartnerSetup.apk
│** ├── GooglePlus.apk
│** ├── GoogleServicesFramework.apk
│** ├── GoogleTTS.apk
│** ├── LatinImeDictionaryPack.apk
│** ├── MediaUploader.apk
│** ├── NetworkLocation.apk
│** ├── Phonesky.apk
│** ├── QuickSearchBox.apk
│** ├── SetupWizard.apk
│** ├── Talkback.apk
│** └── VoiceSearchStub.apk
├── etc
│** ├── g.prop
│** ├── permissions
│** │** ├── com.google.android.maps.xml
│** │** ├── com.google.android.media.effects.xml
│** │** ├── com.google.widevine.software.drm.xml
│** │** └── features.xml
│** └── preferred-apps
│** └── google.xml
├── framework
│** ├── com.google.android.maps.jar
│** ├── com.google.android.media.effects.jar
│** └── com.google.widevine.software.drm.jar
├── lib
│** ├── libAppDataSearch.so
│** ├── libfilterpack_facedetect.so
│** ├── libfrsdk.so
│** ├── libgames_rtmp_jni.so
│** ├── libgoggles_clientvision.so
│** ├── libgoogle_recognizer_jni.so
│** ├── libgtalk_jni.so
│** ├── libgtalk_stabilize.so
│** ├── libjni_latinime.so
│** ├── libjni_t13n_shared_engine.so
│** ├── libpatts_engine_jni_api.so
│** ├── libplus_jni_v8.so
│** ├── librs.antblur_constant.so
│** ├── librs.antblur_drama.so
│** ├── librs.antblur.so
│** ├── librs.drama.so
│** ├── librs.film_base.so
│** ├── librs.fixedframe.so
│** ├── librs.grey.so
│** ├── librs.image_wrapper.so
│** ├── librsjni.so
│** ├── librs.retrolux.so
│** ├── libRSSupport.so
│** ├── libspeexwrapper.so
│** ├── libvcdecoder_jni.so
│** ├── libvorbisencoder.so
│** ├── libwebp_android.so
│** └── libwebrtc_audio_coding.so
├── tts
│** └── lang_pico
│** ├── de-DE_gl0_sg.bin
│** ├── de-DE_ta.bin
│** ├── es-ES_ta.bin
│** ├── es-ES_zl0_sg.bin
│** ├── fr-FR_nk0_sg.bin
│** ├── fr-FR_ta.bin
│** ├── it-IT_cm0_sg.bin
│** └── it-IT_ta.bin
└── usr
└── srec
└── en-US
├── c_fst
├── classifier
├── clg
├── compile_grammar.config
├── contacts.abnf
├── dict
├── dictation.config
├── dnn
├── endpointer_dictation.config
├── endpointer_voicesearch.config
├── ep_acoustic_model
├── g2p_fst
├── google_hotword.config
├── grammar.config
├── hclg_shotword
├── hmmlist
├── hmm_symbols
├── hotword_normalizer
├── hotword_word_symbols
├── metadata
├── normalizer
├── norm_fst
├── offensive_word_normalizer
├── phonelist
├── phone_state_map
├── rescoring_lm
└── wordlist
29 directories, 113 files
Links:
http://download.clockworkmod.com/gapps/gapps-jb-20130726.zip (thanks to ROM Manager)
http://d-h.st/6Oz (Dev-Host)
http://www.androidfilehost.com/?fid=23060877489997435 (Android File Host)
​
Minimal:
gapps-jb-20130821-core.zip
md5 checksum: 95e17a881841717198f025978475e7ef
APK versions:
Code:
ChromeBookmarksSyncAdapter.apk [v4.3-737497]
ConfigUpdater.apk [v4.3-737497]
FaceLock.apk [v4.3-737497]
GenieWidget.apk [v1.3.11]
GmsCore.apk [v3.2.25 (761454-34)]
GoogleBackupTransport.apk [v4.3-737497]
GoogleCalendarSyncAdapter.apk [v4.0.3-239410]
GoogleContactsSyncAdapter.apk [v4.3-737497]
GoogleFeedback.apk [v4.3-737497]
GoogleLoginService.apk [v4.3-737497]
GoogleOneTimeInitializer.apk [v4.3-737497]
GooglePartnerSetup.apk [v4.3-737497]
GoogleServicesFramework.apk [v4.3-737497]
GoogleTTS.apk [v2.1.0.737497]
LatinImeDictionaryPack.apk [v4.2.2-573038]
MediaUploader.apk [v1.3.242047]
NetworkLocation.apk [v1.1.10]
Phonesky.apk [v4.3.10]
SetupWizard.apk [v1.3]
VoiceSearchStub.apk [v4.0.0]
Contents:
.
├── install-optional.sh
├── META-INF
│** └── com
│** └── google
│** └── android
│** ├── update-binary
│** └── updater-script
├── optional
│** └── face
│** ├── addon.d
│** │** └── 71-gapps-faceunlock.sh
│** ├── app
│** │** └── FaceLock.apk
│** ├── lib
│** │** └── libfacelock_jni.so
│** └── vendor
│** └── pittpatt
│** └── models
│** ├── detection
│** │** ├── multi_pose_face_landmark_detectors.7
│** │** │** ├── left_eye-y0-yi45-p0-pi45-r0-ri20.lg_32.bin
│** │** │** ├── nose_base-y0-yi45-p0-pi45-r0-ri20.lg_32.bin
│** │** │** └── right_eye-y0-yi45-p0-pi45-r0-ri20.lg_32-2.bin
│** │** └── yaw_roll_face_detectors.6
│** │** ├── head-y0-yi45-p0-pi45-r0-ri30.4a-v24.bin
│** │** ├── head-y0-yi45-p0-pi45-rn30-ri30.5-v24.bin
│** │** └── head-y0-yi45-p0-pi45-rp30-ri30.5-v24.bin
│** └── recognition
│** └── face.face.y0-y0-22-b-N.bin
└── system
├── addon.d
│** └── 70-gapps.sh
├── app
│** ├── ChromeBookmarksSyncAdapter.apk
│** ├── ConfigUpdater.apk
│** ├── GenieWidget.apk
│** ├── GmsCore.apk
│** ├── GoogleBackupTransport.apk
│** ├── GoogleCalendarSyncAdapter.apk
│** ├── GoogleContactsSyncAdapter.apk
│** ├── GoogleFeedback.apk
│** ├── GoogleLoginService.apk
│** ├── GoogleOneTimeInitializer.apk
│** ├── GooglePartnerSetup.apk
│** ├── GoogleServicesFramework.apk
│** ├── GoogleTTS.apk
│** ├── LatinImeDictionaryPack.apk
│** ├── MediaUploader.apk
│** ├── NetworkLocation.apk
│** ├── Phonesky.apk
│** ├── SetupWizard.apk
│** └── VoiceSearchStub.apk
├── etc
│** ├── g.prop
│** ├── permissions
│** │** ├── com.google.android.maps.xml
│** │** ├── com.google.android.media.effects.xml
│** │** ├── com.google.widevine.software.drm.xml
│** │** └── features.xml
│** └── preferred-apps
│** └── google.xml
├── framework
│** ├── com.google.android.maps.jar
│** ├── com.google.android.media.effects.jar
│** └── com.google.widevine.software.drm.jar
├── lib
│** ├── libAppDataSearch.so
│** ├── libfilterpack_facedetect.so
│** ├── libfrsdk.so
│** ├── libgames_rtmp_jni.so
│** ├── libgoggles_clientvision.so
│** ├── libgoogle_recognizer_jni_l.so
│** ├── libgoogle_recognizer_jni.so
│** ├── libgtalk_jni.so
│** ├── libgtalk_stabilize.so
│** ├── libjni_latinime.so
│** ├── libjni_t13n_shared_engine.so
│** ├── libpatts_engine_jni_api.so
│** ├── libplus_jni_v8.so
│** ├── librs.antblur_constant.so
│** ├── librs.antblur_drama.so
│** ├── librs.antblur.so
│** ├── librs.drama.so
│** ├── librs.film_base.so
│** ├── librs.fixedframe.so
│** ├── librs.grey.so
│** ├── librs.image_wrapper.so
│** ├── librsjni.so
│** ├── librs.retrolux.so
│** ├── libRSSupport.so
│** ├── libspeexwrapper.so
│** ├── libvcdecoder_jni.so
│** ├── libvorbisencoder.so
│** ├── libwebp_android.so
│** └── libwebrtc_audio_coding.so
├── tts
│** └── lang_pico
│** ├── de-DE_gl0_sg.bin
│** ├── de-DE_ta.bin
│** ├── es-ES_ta.bin
│** ├── es-ES_zl0_sg.bin
│** ├── fr-FR_nk0_sg.bin
│** ├── fr-FR_ta.bin
│** ├── it-IT_cm0_sg.bin
│** └── it-IT_ta.bin
└── usr
└── srec
└── en-US
├── c_fst
├── classifier
├── clg
├── compile_grammar.config
├── contacts.abnf
├── dict
├── dictation.config
├── dnn
├── endpointer_dictation.config
├── endpointer_voicesearch.config
├── ep_acoustic_model
├── g2p_fst
├── google_hotword.config
├── grammar.config
├── hclg_shotword
├── hmmlist
├── hmm_symbols
├── hotword_normalizer
├── hotword_word_symbols
├── metadata
├── normalizer
├── norm_fst
├── offensive_word_normalizer
├── phonelist
├── phone_state_map
├── rescoring_lm
└── wordlist
29 directories, 106 files
Links:
http://d-h.st/3uP (Dev-Host)
http://www.androidfilehost.com/?fid=23060877490001123 (Android File Host)
Old versions:
gapps-jb-20130809-core.zip
md5 checksum: d86e58917406a45ad4d9510759c31f1c
APK versions:
Code:
ChromeBookmarksSyncAdapter.apk [v4.3-737497]
ConfigUpdater.apk [v4.3-737497]
FaceLock.apk [v4.3-737497]
GenieWidget.apk [v1.3.11]
[COLOR=Purple]GmsCore.apk [v3.2.25 (761454-34)][/COLOR]
GoogleBackupTransport.apk [v4.3-737497]
GoogleCalendarSyncAdapter.apk [v4.0.3-239410]
GoogleContactsSyncAdapter.apk [v4.3-737497]
GoogleFeedback.apk [v4.3-737497]
GoogleLoginService.apk [v4.3-737497]
GoogleOneTimeInitializer.apk [v4.3-737497]
GooglePartnerSetup.apk [v4.3-737497]
GoogleServicesFramework.apk [v4.3-737497]
GoogleTTS.apk [v2.1.0.737497]
LatinImeDictionaryPack.apk [v4.2.2-573038]
MediaUploader.apk [v1.3.242047]
NetworkLocation.apk [v1.1.10]
[COLOR=Purple]Phonesky.apk [v4.3.10][/COLOR]
SetupWizard.apk [v1.3]
VoiceSearchStub.apk [v4.0.0]
Contents:
.
├── install-optional.sh
├── META-INF
│** └── com
│** └── google
│** └── android
│** ├── update-binary
│** └── updater-script
├── optional
│** └── face
│** ├── addon.d
│** │** └── 71-gapps-faceunlock.sh
│** ├── app
│** │** └── FaceLock.apk
│** ├── lib
│** │** └── libfacelock_jni.so
│** └── vendor
│** └── pittpatt
│** └── models
│** ├── detection
│** │** ├── multi_pose_face_landmark_detectors.7
│** │** │** ├── left_eye-y0-yi45-p0-pi45-r0-ri20.lg_32.bin
│** │** │** ├── nose_base-y0-yi45-p0-pi45-r0-ri20.lg_32.bin
│** │** │** └── right_eye-y0-yi45-p0-pi45-r0-ri20.lg_32-2.bin
│** │** └── yaw_roll_face_detectors.6
│** │** ├── head-y0-yi45-p0-pi45-r0-ri30.4a-v24.bin
│** │** ├── head-y0-yi45-p0-pi45-rn30-ri30.5-v24.bin
│** │** └── head-y0-yi45-p0-pi45-rp30-ri30.5-v24.bin
│** └── recognition
│** └── face.face.y0-y0-22-b-N.bin
└── system
├── addon.d
│** └── 70-gapps.sh
├── app
│** ├── ChromeBookmarksSyncAdapter.apk
│** ├── ConfigUpdater.apk
│** ├── GenieWidget.apk
│** ├── GmsCore.apk
│** ├── GoogleBackupTransport.apk
│** ├── GoogleCalendarSyncAdapter.apk
│** ├── GoogleContactsSyncAdapter.apk
│** ├── GoogleFeedback.apk
│** ├── GoogleLoginService.apk
│** ├── GoogleOneTimeInitializer.apk
│** ├── GooglePartnerSetup.apk
│** ├── GoogleServicesFramework.apk
│** ├── GoogleTTS.apk
│** ├── LatinImeDictionaryPack.apk
│** ├── MediaUploader.apk
│** ├── NetworkLocation.apk
│** ├── Phonesky.apk
│** ├── SetupWizard.apk
│** └── VoiceSearchStub.apk
├── etc
│** ├── g.prop
│** ├── permissions
│** │** ├── com.google.android.maps.xml
│** │** ├── com.google.android.media.effects.xml
│** │** ├── com.google.widevine.software.drm.xml
│** │** └── features.xml
│** └── preferred-apps
│** └── google.xml
├── framework
│** ├── com.google.android.maps.jar
│** ├── com.google.android.media.effects.jar
│** └── com.google.widevine.software.drm.jar
├── lib
│** ├── libAppDataSearch.so
│** ├── libfilterpack_facedetect.so
│** ├── libfrsdk.so
│** ├── libgames_rtmp_jni.so
│** ├── libgoggles_clientvision.so
│** ├── libgoogle_recognizer_jni.so
│** ├── libgtalk_jni.so
│** ├── libgtalk_stabilize.so
│** ├── libjni_latinime.so
│** ├── libjni_t13n_shared_engine.so
│** ├── libpatts_engine_jni_api.so
│** ├── libplus_jni_v8.so
│** ├── librs.antblur_constant.so
│** ├── librs.antblur_drama.so
│** ├── librs.antblur.so
│** ├── librs.drama.so
│** ├── librs.film_base.so
│** ├── librs.fixedframe.so
│** ├── librs.grey.so
│** ├── librs.image_wrapper.so
│** ├── librsjni.so
│** ├── librs.retrolux.so
│** ├── libRSSupport.so
│** ├── libspeexwrapper.so
│** ├── libvcdecoder_jni.so
│** ├── libvorbisencoder.so
│** ├── libwebp_android.so
│** └── libwebrtc_audio_coding.so
├── tts
│** └── lang_pico
│** ├── de-DE_gl0_sg.bin
│** ├── de-DE_ta.bin
│** ├── es-ES_ta.bin
│** ├── es-ES_zl0_sg.bin
│** ├── fr-FR_nk0_sg.bin
│** ├── fr-FR_ta.bin
│** ├── it-IT_cm0_sg.bin
│** └── it-IT_ta.bin
└── usr
└── srec
└── en-US
├── c_fst
├── classifier
├── clg
├── compile_grammar.config
├── contacts.abnf
├── dict
├── dictation.config
├── dnn
├── endpointer_dictation.config
├── endpointer_voicesearch.config
├── ep_acoustic_model
├── g2p_fst
├── google_hotword.config
├── grammar.config
├── hclg_shotword
├── hmmlist
├── hmm_symbols
├── hotword_normalizer
├── hotword_word_symbols
├── metadata
├── normalizer
├── norm_fst
├── offensive_word_normalizer
├── phonelist
├── phone_state_map
├── rescoring_lm
└── wordlist
29 directories, 105 files
Links:
http://d-h.st/AfL (Dev-Host)
http://www.androidfilehost.com/?fid=23060877489998637 (Android File Host)
​
** Find all old versions that are removed here (due to too many characters): http://pastebin.com/QZGS9SR3 ==> WARNING: Might be hard to read as they are in BB code format
Feel free to mirror them and post the links in this thread, I will gladly include the links in the OP and of course, include the necessary credits...Enjoy!
many thanx for this. :good:
No problemo...hope that the way I organise the thread won't scare people off as it might be too "information" packed for some...
It's surprisingly quiet here...no problems so far?
Ryuinferno said:
It's surprisingly quiet here...no problems so far?
Click to expand...
Click to collapse
I'm running this package with the latest cm 10.2 unofficial and its all good. Thanks for your work on this.
ba_hamilton said:
I'm running this package with the latest cm 10.2 unofficial and its all good. Thanks for your work on this.
Click to expand...
Click to collapse
Finally, thank you for reporting!
Not completely sure about this, but if you are trying to keep the packages up to date you might need to update Google+. After I loaded up your Gapps, the play store updated Google+. That's not necessarily a bad thing - Just saying.
As I stated, the updated gapps will only be in the minimal package...the full package is not maintained by me (by reputable sources as stated in OP)...
This app's work's in jb 4.2.2?
Wysłane z mojego HTC HD2 za pomocą Tapatalk 4
motshek said:
This app's work's in jb 4.2.2?
Wysłane z mojego HTC HD2 za pomocą Tapatalk 4
Click to expand...
Click to collapse
Never tried before, it was with 4.3 in mind...
Is there anyway to slim down the 4.3 gapps even more? I had a gapps package for 4.2.2 that was ~8mb and worked fine. I also had one around 8mb for 4.3 but unfortunately lost it when wiping my phone. And is there any special way to compile a gapps package or is it simply compressing files into a zip? I deleted some apks manually but was not sure if re-compressing the files would work.
EDIT: Found the post with 4.3 gapps and it is ~17mb not 8 as I stated earlier.
http://forum.xda-developers.com/showthread.php?t=2012857
sociallymellow said:
Is there anyway to slim down the 4.3 gapps even more? I had a gapps package for 4.2.2 that was ~8mb and worked fine. I also had one around 8mb for 4.3 but unfortunately lost it when wiping my phone. And is there any special way to compile a gapps package or is it simply compressing files into a zip? I deleted some apks manually but was not sure if re-compressing the files would work.
Click to expand...
Click to collapse
Why do you want such a small package? Do you have the tiniest system partition or do you just love filling data up and leaving system empty for no reason?
Zimeron said:
Why do you want such a small package? Do you have the tiniest system partition or do you just love filling data up and leaving system empty for no reason?
Click to expand...
Click to collapse
I am very OCD and just like to know that everything on my device is put to use. I don't need unnecessary files. I have 2 folders on my Nexus 4 storage and only 1 page of apps. Very minimal
sociallymellow said:
Is there anyway to slim down the 4.3 gapps even more? I had a gapps package for 4.2.2 that was ~8mb and worked fine. I also had one around 8mb for 4.3 but unfortunately lost it when wiping my phone. And is there any special way to compile a gapps package or is it simply compressing files into a zip? I deleted some apks manually but was not sure if re-compressing the files would work.
EDIT: Found the post with 4.3 gapps and it is ~17mb not 8 as I stated earlier.
http://forum.xda-developers.com/showthread.php?t=2012857
Click to expand...
Click to collapse
Zimeron said:
Why do you want such a small package? Do you have the tiniest system partition or do you just love filling data up and leaving system empty for no reason?
Click to expand...
Click to collapse
sociallymellow said:
I am very OCD and just like to know that everything on my device is put to use. I don't need unnecessary files. I have 2 folders on my Nexus 4 storage and only 1 page of apps. Very minimal
Click to expand...
Click to collapse
Now chill guys...everybody has their preferences...I can try to slim them down even more, the first release was just a brief trimming...was busy with other stuff and studies, so haven't done it yet...
No worries mate, not complaining I was just curious what else could be deleted to get it that slim? When I opened your gapps it didn't appear to have any unnecessary files so was just curious. Thanks! Still a great download, using it now on PA 3.92 and loving it.
Sent from my Nexus 4 using xda premium
sociallymellow said:
No worries mate, not complaining I was just curious what else could be deleted to get it that slim? When I opened your gapps it didn't appear to have any unnecessary files so was just curious. Thanks! Still a great download, using it now on PA 3.92 and loving it.
Sent from my Nexus 4 using xda premium
Click to expand...
Click to collapse
Cause there might be some unnecessary libs if you install certain gapps as user apps......but it is all trial and error...
Ah makes since, I need to learn more about that stuff honestly. Thanks for the quick replies.
Sent from my Nexus 4 using xda premium
I am using a custom rom based on 4.2.1 on my Xolo Q800, can this be usable on my device if i flash via cwm?
itechengine said:
I am using a custom rom based on 4.2.1 on my Xolo Q800, can this be usable on my device if i flash via cwm?
Click to expand...
Click to collapse
Your answer:
Ryuinferno said:
Never tried before, it was with 4.3 in mind...
Click to expand...
Click to collapse
itechengine said:
I am using a custom rom based on 4.2.1 on my Xolo Q800, can this be usable on my device if i flash via cwm?
Click to expand...
Click to collapse
I guess you shouldn't try flashing it on 4.2.
Sent from my Nexus 4

Kernel & Ramdisk

Hey i extracted boot.img and ramdisk
damn i life in germany i cant order one
Bootloader is locked? loki patch should work
from their update script lol
Code:
# Extract tools required to change the certificate
#
package_extract_file("sed", "/tmp/sed");
package_extract_file("prod_cert_swap.sed", "/tmp/cert_swap.sed");
set_perm(0, 0, 0777, "/tmp/sed");
set_perm(0, 0, 0777, "/tmp/cert_swap.sed");
#
# Update packages.xml
#
run_program("/tmp/sed", "-i", "-f", "/tmp/cert_swap.sed", "/data/system/packages.xml");
Sounds interesting.
Too bad i live in Germany too.
I am actually Considering to order via ebay (all taxes, shipping and stuff included).
Would cost me 220$USD (160€). But i would rather wait until root is confirmed.
Code:
unmkbootimg version 1.2 - Mikael Q Kuisma <[email protected]>
Kernel size 5971248
Kernel address 0x80208000
Ramdisk size 368957
Ramdisk address 0x82200000
Secondary size 0
Secondary address 0x81100000
Kernel tags address 0x80200100
Flash page size 2048
Board name is ""
Command line "androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x3F ehci-hcd.park=3 maxcpus=2"
*** WARNING ****
This image is built using NON-standard mkbootimg!
OFF_RAMDISK_ADDR is 0x02000000
Please modify mkbootimg.c using the above values to build your image.
****************
Extracting kernel to file zImage ...
Extracting root filesystem to file initramfs.cpio.gz ...
All done.
---------------
To recompile this image, use:
mkbootimg --kernel zImage --ramdisk initramfs.cpio.gz --base 0x80200000 --cmdline 'androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x3F ehci-hcd.park=3 maxcpus=2' -o new_boot.img
---------------
evilracer123 said:
Code:
Command line "androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x3F ehci-hcd.park=3 maxcpus=2"
Click to expand...
Click to collapse
maxcpus=2? really? they are disabling two cores?
robclark said:
maxcpus=2? really? they are disabling two cores?
Click to expand...
Click to collapse
no this fix boot problems @ every qcom device
jumoog said:
no this fix boot problems @ every qcom device
Click to expand...
Click to collapse
hmm, power issue (drawing too much current at boot?).. I don't use maxcpus=2 on any of my snapdragon boards (but they are all running off of wall power, like the firetv)

[Guide][Xiaomi][MSM8956] Port Redmi Note 3 ROMs To Mi Max

In my previous guide i explained How to port hydrogen ROMs to helium, and in this simple guide i'll show you guys How to port ROMs from kenzo as it's the same SoC like hydrogen (MSM8956) let's start !
You'll need some tools:
- ROM kitchen, i prefer superr's kitchen. :good:
- Boot image Extractor, you can use Android Image Kitchen
- Any text editor, Notepad++ is good choice for windows users.
Part 0: Preparing:
0- Get any Redmi Note 3 ROM (kenzo), you can find many in XDA or 4PDA
1- Open superr's kitchen and create new project, then copy kenzo ROM to project folder and Extract zip using kitchen (option 4). [when it asks for perm type choose sparse_dat]
2- Copy boot.img to Android Image Kitchen folder and run unpackimg.sh / unpackimg.bat (You can also drag and drop boot to unpackimg.bat if you're using windows).
Part 1: System files:
there's many differences between hydrogen and kenzo, like audio, camera and fingerprint, so you'll need to copy these files to "system" folder in kitchen.
File list
Then you have to edit build.prop replace kenzo with hydrogen and copy lines in hydrogen one like "fpc"
You can get this files from any working hydrogen ROM or from my Github Repo Here
Part 2: Editing Boot.img :
After unpacking kenzo boot.img using Android Image Kitchen You'll need to copy hydrogen zImage and edit somefiles:
* i prefer editing the following files even you can just copy it from hydrogen boot.img *
- Copy hydrogen zImage to "split_img" and make sure it's renamed as "boot.img-zImage"
- edit default.prop, change kenzo to hydrogen
- edit init.qcom.rc, you should use any compare program, like diff / meld / beyondcompare to check what code is in hydrogen and not in kenzo like
Line 204:216
Code:
# LED
chmod 0666 /sys/class/leds/led:torch_0/brightness
chmod 0666 /sys/class/leds/led:torch_1/brightness
chmod 0666 /sys/class/leds/led:switch/brightness
chown system system /sys/class/leds/red/blink
chown system system /sys/class/leds/green/blink
chown system system /sys/class/leds/blue/blink
chown system system /sys/class/leds/red/led_time
chown system system /sys/class/leds/green/led_time
chown system system /sys/class/leds/blue/led_time
on post-fs
start qseecomd
line 352:376
Code:
# Mark the copy complete flag to not completed
write /data/misc/radio/copy_complete 0
chown radio radio /data/misc/radio/copy_complete
chmod 0660 /data/misc/radio/copy_complete
# File flags for prebuilt ril db file
write /data/misc/radio/prebuilt_db_support 1
chown radio radio /data/misc/radio/prebuilt_db_support
chmod 0400 /data/misc/radio/prebuilt_db_support
write /data/misc/radio/db_check_done 0
chown radio radio /data/misc/radio/db_check_done
chmod 0660 /data/misc/radio/db_check_done
# Fingerprint
mkdir /data/fpc 0770 system system
mkdir /data/fpc/s 0770 system system
mkdir /data/tombstones 0771 system system
mkdir /tombstones/modem 0771 system system
mkdir /tombstones/lpass 0771 system system
mkdir /tombstones/wcnss 0771 system system
mkdir /tombstones/dsps 0771 system system
mkdir /persist/data/sfs 0700 system system
mkdir /persist/data/tz 0700 system system
mkdir /data/misc/dts 0770 media audio
mkdir /data/misc/audio_pp 0771 media audio
And
Code:
# Bring up all cores online
write /sys/devices/system/cpu/cpu1/online 1
write /sys/devices/system/cpu/cpu2/online 1
write /sys/devices/system/cpu/cpu3/online 1
write /sys/devices/system/cpu/cpu4/online 1
write /sys/devices/system/cpu/cpu5/online 1
To:
Code:
# Bring up all cores online
write /sys/devices/system/cpu/cpu1/online 1
write /sys/devices/system/cpu/cpu2/online 1
write /sys/devices/system/cpu/cpu3/online 1
write /sys/devices/system/cpu/cpu4/online 1
write /sys/devices/system/cpu/cpu5/online 1
write /sys/devices/system/cpu/cpu6/online 1
write /sys/devices/system/cpu/cpu7/online 1
Line 823:861
Code:
service fingerprintd /system/bin/fingerprintd
class late_start
user system
group drmrpc input system
socket fpce stream 0660 system system
writepid /dev/cpuset/system-background/tasks
service imsqmidaemon /system/bin/imsqmidaemon
class main
user system
socket ims_qmid stream 0660 system radio
group radio log diag
service imsdatadaemon /system/bin/imsdatadaemon
class main
user system
socket ims_datad stream 0660 system radio
group system wifi radio inet log diag
disabled
on property:sys.ims.QMI_DAEMON_STATUS=1
start imsdatadaemon
service ims_rtp_daemon /system/bin/ims_rtp_daemon
class main
user system
socket ims_rtpd stream 0660 system radio
group radio diag inet log
disabled
service imscmservice /system/bin/imscmservice
class main
user system
group radio diag inet log
disabled
on property:sys.ims.DATA_DAEMON_STATUS=1
start ims_rtp_daemon
start imscmservice
- Edit init.rc
Change
Code:
chown system system /sys/class/leds/green/brightness
chown system system /sys/class/leds/blue/brightness
chown system system /sys/class/leds/red/device/grpfreq
To
Code:
chown system system /sys/class/leds/green/brightness
chown system system /sys/class/leds/green/blink
chown system system /sys/class/leds/blue/brightness
chown system system /sys/class/leds/blue/blink
chown system system /sys/class/leds/red/device/grpfreq
chown system system /sys/class/leds/red/device/grppwm
- Edit init.qcom.sh
Add this line after start_sensors
Code:
start_copying_prebuilt_qcril_db
And this line at the end of file
Code:
chown radio:radio /data/misc/radio/copy_complete
- then Repack boot and copy image-new.img to superr's kitchen project folder then rename it to boot.img
You can get these files from any hydrogen boot.img
Part 3: Finalizing :
Now you've finished porting kenzo ROM to hydrogen, but you need to repack ROM into zip to be able to use it.
- Open superr's kitchen, choose 8) ROM Tools Menu then 7) Build Menu and finally 1) Build full ROM Zip
- Wait till it finishes (when it asks for sign zip press "y") then you'll have to edit META-INF/com/google/android/updater-script inside ROM Zip, so open ROM zip and head to META-INF/com/google/android/ to open updater-script file using text editor then change script to:
Code:
package_extract_dir("install", "/tmp/install");
set_metadata_recursive("/tmp/install", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644);
set_metadata_recursive("/tmp/install/bin", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755);
mount("ext4", "EMMC", "/dev/block/bootdevice/by-name/system", "/system", "");
run_program("/tmp/install/bin/backuptool.sh", "backup");
unmount("/system");
show_progress(0.750000, 0);
ui_print("Patching system image unconditionally...");
block_image_update("/dev/block/bootdevice/by-name/system", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat") ||
abort("E1001: Failed to update system image.");
show_progress(0.020000, 10);
mount("ext4", "EMMC", "/dev/block/bootdevice/by-name/system", "/system", "");
run_program("/tmp/install/bin/backuptool.sh", "restore");
unmount("/system");
show_progress(0.050000, 5);
package_extract_file("boot.img", "/dev/block/bootdevice/by-name/boot");
show_progress(0.200000, 10);
set_progress(1.000000);
And Congratulations You've finished porting kenzo ROM to your hydrogen
Special Thanks:
SuperR. for his great kitchen
osm0sis for amazing image tools script
iBotPeaches for apktool
@nijel8 for helium device tree
@Davehimself for helium vendor
@Ahmed Hady & @androidlover5842 my great friends & helpers
And me for typing this guide :good:
Reversed 1
Reversed 2
yshalsager said:
In my previous guide
Click to expand...
Click to collapse
Can u plz port sailfish os of kenzo for MiMAX hydrogen please?
https://forum.xda-developers.com/redmi-note-3/development/rom-sailfish-os-2-0-5-6-kenzo-t3571258/
afridi.shahriar said:
Can u plz port sailfish os of kenzo for MiMAX hydrogen please?
https://forum.xda-developers.com/redmi-note-3/development/rom-sailfish-os-2-0-5-6-kenzo-t3571258/
Click to expand...
Click to collapse
I think it can't be ported. Need to built from sources
yshalsager said:
I think it can't be ported. Need to built from sources
Click to expand...
Click to collapse
Then leave it
yshalsager said:
I think it can't be ported. Need to built from sources
Click to expand...
Click to collapse
Can u port nubia or funtouch os for kenzo or tell me name of device from which I can try to port these ui
Criston said:
Can u port nubia or funtouch os for kenzo or tell me name of device from which I can try to port these ui
Click to expand...
Click to collapse
I don't have kenzo, try with any MSM8956 device or MSM8976
What if rom does not contain some files in the system folder?
psbankar said:
What if rom does not contain some files in the system folder?
Click to expand...
Click to collapse
Forget it
yshalsager said:
I don't have kenzo, try with any MSM8956 device or MSM8976
Click to expand...
Click to collapse
Devices Based On MSM8976 Can Be used R U Sure though the difference is only core base
Criston said:
Devices Based On MSM8976 Can Be used R U Sure though the difference is only core base
Click to expand...
Click to collapse
Yes. As we can port from helium
can similarly kenzo roms can be ported to leeco le with sd652 ??
ankk98 said:
can similarly kenzo roms can be ported to leeco le with sd652 ??
Click to expand...
Click to collapse
yes
yshalsager said:
yes
Click to expand...
Click to collapse
i am a beginner
can u plz explain how this port can work? i mean both devices have different soc?
I want to try it by porting some oreo kenzo rom to leeco le 2 with msm8976
ankk98 said:
i am a beginner
can u plz explain how this port can work? i mean both devices have different soc?
I want to try it by porting some oreo kenzo rom to leeco le 2 with msm8976
Click to expand...
Click to collapse
Follow the guide and take files from your stock/working rom to kenzo rom
Part 3: Finalizing :
Now you've finished porting hydrogen ROM to helium, but you need to repack ROM into zip to be able to use it.
I dont get it, porting rom from hydrogen to helium?
raymondsanusi said:
Part 3: Finalizing :
Now you've finished porting hydrogen ROM to helium, but you need to repack ROM into zip to be able to use it.
I dont get it, porting rom from hydrogen to helium?
Click to expand...
Click to collapse
lol, sorry i was typo mistake
You can port from H2 to He but follow my another guide.
Is this guide can be used for porting Oreo roms?
Hello @yshalsager the file of hydrogen you have uploaded on GitHub are from which MIUI version?

[GUIDE] Enable China Telecom LTE by modifying modem partitions

YOU ARE TAKING YOUR OWN RISK TO DO THIS. But I succeed and I suppose it will work on others.
My thread in Chinese:
http://tieba.baidu.com/p/5666986960...14141&unique=C1FF2FC2F12BF43C9E62C4918B0688A2
In English:
Just download this modem.img
https://pan.baidu.com/s/1Qu5W_Gw3qCk32M4L4JMecg
IMG is based on 8.1 latest modem. If you are on 8.0/7.1, please try carefully
And flash it to both modem partitions.
fastboot flash modem_a .........\modem.img
fastboot flash modem_b .........\modem.img
And wipe userdata and FRP.
fastboot erase userdata
fastboot erase frp(Optional. To skip setup wizard.)
Then turn the phone up.
Done.
Why?
On initial SIM insertion, Android copies carrier config files into data and then flashes one of them into modemst.
I just changed all mcfg_sw.mbn files into 1+3T's, which supports CT.
Get the single mbn file here:
https://pan.baidu.com/s/1QrDefK44bNu9VWUR8fOjEA
On Pixel 2 this way probably works I think. Anyone going to try?
hv a look into 2XL factory image and there's no mcfg_sw.mbn in modem.img:crying:
Sent from my Pixel 2 XL using XDA Labs
This method can theoretically be used to get functioning 2x CA and 3x CA on the US models in Europe and elsewhere. I have managed to enable 256QAM from the australian modem config file on an US model, this happened by replacing some mbn files (somehow it set it in place without having to wipe anything, not sure how.)
I have not managed to make the CA work yet. Wonder if anyone has a proper modem config for this and if wiping really is necessary for this.
As I understand:
1) mbns go to /firmware/radio/modem_pr/mcfg/configs/mcfg_sw/generic/*
2) If you wipe data, or delete the radio folder in this point, it copies/regenerates the files from point 1 to /data/misc/radio/modem_config/mcfg_sw/generic/*
3) The EFS generates its carrier_policy.xml under policyman from the data partition?
Whatever I do to the carrier_policy.xml it doesnt change anything. The UE EUTRA policy remains the same.
Thanks for your post, this is the best way I can find to enable China Telecom LTE on Pixel.
Based on your post, I did some further checks, and found a way to do this without erasing data partition, and even no need to root.
Successfully tested on my Pixel running Android P.
Same as your method, we will change modem.img and copy mcfg_sw.mbn from 1+3T's image.
From the aosp source code, we can see that the init.radio.sh will copy configs from modem.img if the versions in ver_info.txt is changed.
So we can just simply change the version to another value, and it will copy the new configs.
The following are the detailed steps, we need a Linux environment to mount modem.img:
1. extract modem.img from Pixel factory image.
2. extract NO-HLOS.bin from 1+ 3T factory image (download from oneplus).
3. In order to add new files into modem.img, first need to expand its size:
Code:
dd if=/dev/zero of=modem.img bs=4096 count=100 conv=notrunc oflag=append
This command appends about 400KB to the end of the modem.img.
The total size of CT configs in 1+ 3T is about 230KB, but you can change to a larger count if you need to add more files.
4. mount modem.img:
Code:
mkdir modem
sudo mount -o loop modem.img modem
5. mount NO-HLOS.bin:
Code:
mkdir oneplus
sudo mount -o loop NO-HLOS.bin oneplus
6. create a "china" folder, since we only copy the CT configs, and skip CMCC and CU configs.
Code:
sudo mkdir modem/modem_pr/mcfg/configs/mcfg_sw/generic/china/
7. copy CT configs from oneplus:
Code:
sudo cp -r oneplus/image/modem_pr/mcfg/configs/mcfg_sw/generic/china/ct modem/modem_pr/mcfg/configs/mcfg_sw/generic/china/
8. change the ver_info.txt:
Code:
sudo vim modem/modem_pr/verinfo/ver_info.txt
It is enough to only change the last digit.
9. umount the images:
Code:
sync
umount modem
umount oneplus
10. flash the modem.img:
Code:
fastboot flash modem_a modem.img
fastboot flash modem_b modem.img
fastboot reboot
After reboot, Pixel will be able to use China Telecom LTE.
sbjbs said:
Thanks for your post, this is the best way I can find to enable China Telecom LTE on Pixel.
Based on your post, I did some further checks, and found a way to do this without erasing data partition, and even no need to root.
Successfully tested on my Pixel running Android P.
Same as your method, we will change modem.img and copy mcfg_sw.mbn from 1+3T's image.
From the aosp source code, we can see that the init.radio.sh will copy configs from modem.img if the versions in ver_info.txt is changed.
So we can just simply change the version to another value, and it will copy the new configs.
The following are the detailed steps, we need a Linux environment to mount modem.img:
1. extract modem.img from Pixel factory image.
2. extract NO-HLOS.bin from 1+ 3T factory image (download from oneplus).
3. In order to add new files into modem.img, first need to expand its size:
This command appends about 400KB to the end of the modem.img.
The total size of CT configs in 1+ 3T is about 230KB, but you can change to a larger count if you need to add more files.
4. mount modem.img:
5. mount NO-HLOS.bin:
6. create a "china" folder, since we only copy the CT configs, and skip CMCC and CU configs.
7. copy CT configs from oneplus:
8. change the ver_info.txt:
It is enough to only change the last digit.
9. umount the images:
10. flash the modem.img:
After reboot, Pixel will be able to use China Telecom LTE.
Click to expand...
Click to collapse
Could this work on pixel 3 ? Any idea which mbn files I'd need to get wifi calling? Like, what would I do if I wanted Deutsche Telekom mb files ton replaces What my phone is currently using?
matkwok said:
hv a look into 2XL factory image and there's no mcfg_sw.mbn in modem.img:crying:
Click to expand...
Click to collapse
Yup. They changed filesystems or setup on the 2 and 3 . I saw that they do exist in modem partition on 2 but I haven't seen any of those files in the 3 yet.
TEEEEEEEEED said:
YOU ARE TAKING YOUR OWN RISK TO DO THIS. But I succeed and I suppose it will work on others.
My thread in Chinese:
http://tieba.baidu.com/p/5666986960...14141&unique=C1FF2FC2F12BF43C9E62C4918B0688A2
In English:
Just download this modem.img
https://pan.baidu.com/s/1Qu5W_Gw3qCk32M4L4JMecg
IMG is based on 8.1 latest modem. If you are on 8.0/7.1, please try carefully
And flash it to both modem partitions.
fastboot flash modem_a .........\modem.img
fastboot flash modem_b .........\modem.img
And wipe userdata and FRP.
fastboot erase userdata
fastboot erase frp(Optional. To skip setup wizard.)
Then turn the phone up.
Done.
Why?
On initial SIM insertion, Android copies carrier config files into data and then flashes one of them into modemst.
I just changed all mcfg_sw.mbn files into 1+3T's, which supports CT.
Get the single mbn file here:
https://pan.baidu.com/s/1QrDefK44bNu9VWUR8fOjEA
On Pixel 2 this way probably works I think. Anyone going to try?
Click to expand...
Click to collapse
What's the difference from just moving the mbn to replaces the one in the phone ?
Also, could you do this for my pixel 3? I need mbns from Xperia xx3 I think
Xdevillived666 said:
Could this work on pixel 3 ? Any idea which mbn files I'd need to get wifi calling? Like, what would I do if I wanted Deutsche Telekom mb files ton replaces What my phone is currently using?
Click to expand...
Click to collapse
I can't tell you if it can work on Pixel 3, because I don't have a Pixel 3.
I have checked the modem.img in Pixel 3 factory image, there is no "modem_pr" directory, which contains the config files.
but I have also checked the Pixel3's init.radio.sh, it will check the ver_info.txt and still copys the "modem_pr" directory:
Code:
cp -r /firmware/image/modem_pr/mcfg/configs/* /data/vendor/radio/modem_config
So I guess you can create the directory and copy config files into it. And don't forget to change the ver_info.txt.
This is the structure of Pixel 1 modem.img:
Code:
├── mba.mbn
├── modem.b00
├── modem.b01
├── modem.b02
├── modem.b03
├── modem.b04
├── modem.b05
├── modem.b06
├── modem.b07
├── modem.b08
├── modem.b09
├── modem.b10
├── modem.b11
├── modem.b12
├── modem.b13
├── modem.b15
├── modem.b16
├── modem.b17
├── modem.b18
├── modem.b19
├── modem.b20
├── modem.mdt
├── modem_pr
│ ├── mcfg
│ │ └── configs
│ │ └── mcfg_sw
│ │ └── generic
│ │ ├── apac
│ │ ├── aus
│ │ ├── china
│ │ ├── common
│ │ ├── eu
│ │ └── na
│ └── verinfo
│ └── ver_info.txt
├── qdsp6m.qdb
└── version.cfg
This is the structure of Pixel 3 modem.img:
Code:
├── image
│ ├── mba.mbn
│ ├── modem.b00
│ ├── modem.b01
│ ├── modem.b02
│ ├── modem.b03
│ ├── modem.b04
│ ├── modem.b05
│ ├── modem.b06
│ ├── modem.b07
│ ├── modem.b08
│ ├── modem.b09
│ ├── modem.b10
│ ├── modem.b11
│ ├── modem.b12
│ ├── modem.b13
│ ├── modem.b14
│ ├── modem.b15
│ ├── modem.b16
│ ├── modem.b17
│ ├── modem.b18
│ ├── modem.b19
│ ├── modem.b20
│ ├── modem.b21
│ ├── modem.b22
│ ├── modem.b23
│ ├── modem.b24
│ ├── modem.b25
│ ├── modem.b26
│ ├── modem.b27
│ ├── modem.b28
│ ├── modem.b29
│ ├── modem.mdt
│ ├── modemr.jsn
│ ├── qdsp6m.qdb
│ └── version.cfg
└── verinfo
└── ver_info.txt
I don't know the structure inside the modem_pr directory for Pixel 3. You may try the same structure as Pixel 1, or you can check the existing structure in /data/vendor/radio/modem_config/
sbjbs said:
I can't tell you if it can work on Pixel 3, because I don't have a Pixel 3.
I have checked the modem.img in Pixel 3 factory image, there is no "modem_pr" directory, which contains the config files.
but I have also checked the Pixel3's init.radio.sh, it will check the ver_info.txt and still copys the "modem_pr" directory:
So I guess you can create the directory and copy config files into it. And don't forget to change the ver_info.txt.
This is the structure of Pixel 1 modem.img:
This is the structure of Pixel 3 modem.img:
I don't know the structure inside the modem_pr directory for Pixel 3. You may try the same structure as Pixel 1, or you can check the existing structure in /data/vendor/radio/modem_config/
Click to expand...
Click to collapse
Thanks mate. I know they changed the location for mbn files. I only found it a week ago or so.
Vendor/rfs/msm/mpss/read only/vendor/mbn/mcfg_sw
I'm guessing then that this means I can't use the same method and would have to repack vendor?
How would I change ver_info.txt? Can I modify the existing one ?
And would this be the right one or would I have to do it inside the modem image for ver_info.txt?
Xdevillived666 said:
And would this be the right one or would I have to do it inside the modem image for ver_info.txt?
Click to expand...
Click to collapse
On Pixel 1, the modem.img is mounted read-only on /firmware/radio
On Pixel 3, the modem.img is mounted read-only on /vendor/firmware_mnt, and /firmware is a symlink which links to /vendor/firmware_mnt
If you want to change the ver_info.txt, you can remount /vendor/firmware_mnt for read-write if you have root permission.
you also can change it in modem.img and flash it.
since the location was changed, I don't know when and who will copy config files from "Vendor/rfs/msm/mpss/read only/vendor/mbn/mcfg_sw",
so I'm not sure if this method still works. but you can try it. good luck.
---------- Post added at 06:56 PM ---------- Previous post was at 06:47 PM ----------
Xdevillived666 said:
And would this be the right one or would I have to do it inside the modem image for ver_info.txt?
Click to expand...
Click to collapse
for Pixel 3, the old ver_info.txt is located at:
/data/vendor/radio/ver_info.txt
you may check its content first.
This is part of the content of init.radio.sh for Pixel 3:
Code:
#
# Make modem config folder and copy firmware config to that folder for RIL
#
if [ -f /data/vendor/radio/ver_info.txt ]; then
prev_version_info=`cat /data/vendor/radio/ver_info.txt`
else
prev_version_info=""
fi
cur_version_info=`cat /firmware/verinfo/ver_info.txt`
if [ ! -f /firmware/verinfo/ver_info.txt -o "$prev_version_info" != "$cur_version_info" ]; then
rm -rf /data/vendor/radio/modem_config
mkdir /data/vendor/radio/modem_config
chmod 770 /data/vendor/radio/modem_config
cp -r /firmware/image/modem_pr/mcfg/configs/* /data/vendor/radio/modem_config
chown -hR radio.radio /data/vendor/radio/modem_config
cp /firmware/verinfo/ver_info.txt /data/vendor/radio/ver_info.txt
chown radio.radio /data/vendor/radio/ver_info.txt
fi
cp /firmware/image/modem_pr/mbn_ota.txt /data/vendor/radio/modem_config
chown radio.radio /data/vendor/radio/modem_config/mbn_ota.txt
echo 1 > /data/vendor/radio/copy_complete
sbjbs said:
On Pixel 1, the modem.img is mounted read-only on /firmware/radio
On Pixel 3, the modem.img is mounted read-only on /vendor/firmware_mnt, and /firmware is a symlink which links to /vendor/firmware_mnt
If you want to change the ver_info.txt, you can remount /vendor/firmware_mnt for read-write if you have root permission.
you also can change it in modem.img and flash it.
since the location was changed, I don't know when and who will copy config files from "Vendor/rfs/msm/mpss/read only/vendor/mbn/mcfg_sw",
so I'm not sure if this method still works. but you can try it. good luck.
---------- Post added at 06:56 PM ---------- Previous post was at 06:47 PM ----------
for Pixel 3, the old ver_info.txt is located at:
/data/vendor/radio/ver_info.txt
you may check its content first.
This is part of the content of init.radio.sh for Pixel 3:
Click to expand...
Click to collapse
Yeah, I'd have to do it at modem level. Can't seem to get it working with a file explorer though I see it , it doesn't say anything. That would require Linux, right ?
I've also tried using a custom built magisk(for pixel2) with a model that allows access to diagnostic mode and opens ports. Using qpst and built in pdc tool, you can flash individual mbn files to enable volte and vowifi. I have native volte support through Bouygues, but vowifi is only allowed on certain phones through my carrier. I get the port open, but pdc keeps giving me a qmi error saying the USB driver isn't correct . Pissing me off.
I also tried the old trick of just using a root explorer , replacing mbn at file level , inserting a different sim card, inserting back own sim card, and rebooting . This did activate volte and wifi sms on first gen pixel but doesn't work after that .
Not sure I can do anything to activate vowifi though I am provisioned for it via sim card/my carrier .
Xdevillived666 said:
Yeah, I'd have to do it at modem level. Can't seem to get it working with a file explorer though I see it , it doesn't say anything. That would require Linux, right ?
I've also tried using a custom built magisk(for pixel2) with a model that allows access to diagnostic mode and opens ports. Using qpst and built in pdc tool, you can flash individual mbn files to enable volte and vowifi. I have native volte support through Bouygues, but vowifi is only allowed on certain phones through my carrier. I get the port open, but pdc keeps giving me a qmi error saying the USB driver isn't correct . Pissing me off.
I also tried the old trick of just using a root explorer , replacing mbn at file level , inserting a different sim card, inserting back own sim card, and rebooting . This did activate volte and wifi sms on first gen pixel but doesn't work after that .
Not sure I can do anything to activate vowifi though I am provisioned for it via sim card/my carrier .
Click to expand...
Click to collapse
I'm sorry I have no experience with what you are doing.
If you want to change the modem.img, you'd better in Linux.
Your phone is a Linux too, if you have root access, you can push the modem.img to a temp directory on you device, and change it.
the mount command is a bit different:
Code:
losetup /dev/block/loop0 modem.img
mkdir modem
mount /dev/block/loop0 modem
From the init.radio.sh, the modem.img/image/modem_pr/mbn_ota.txt seems to be important, there is no such file for Pixel1.
Have you tried changing the mbn_sw.txt in vendor/rfs/msm/mpss/readonly/vendor/mbn/mcfg_sw, and adding your configs to the list?
sbjbs said:
I'm sorry I have no experience with what you are doing.
If you want to change the modem.img, you'd better in Linux.
Your phone is a Linux too, if you have root access, you can push the modem.img to a temp directory on you device, and change it.
the mount command is a bit different:
From the init.radio.sh, the modem.img/image/modem_pr/mbn_ota.txt seems to be important, there is no such file for Pixel1.
Have you tried changing the mbn_sw.txt in vendor/rfs/msm/mpss/readonly/vendor/mbn/mcfg_sw, and adding your configs to the list?
Click to expand...
Click to collapse
Thanks for the reply. I figured I needed Linux for this.
As for the second part, I have some Sony mbn files from xz3. My carrier supports voWifi on this phone, so I nabbed the firmware specific to my phone, extracted the mbns , placed them into the area where mine are, added the necessary text to mcfg_sw.txt but it doesn't activate voWifi as far as I can tell. I've attached said Sony files if ya wanna check them out
https://drive.google.com/file/d/1Rbh5n3zmNfVd1t75OZjbqQ8thcua-XL1/view?usp=drivesdk
I'll take a look at the mbn_ota.txt . What, if anything , could be done with it?
Edit: I losetup and i cant find that file ???
Side note: for some reason, I can't erase modem st1/2 in pixel 3. It's gives me a "remote error " in fastboot.
Xdevillived666 said:
Thanks for the reply. I figured I needed Linux for this.
As for the second part, I have some Sony mbn files from xz3. My carrier supports voWifi on this phone, so I nabbed the firmware specific to my phone, extracted the mbns , placed them into the area where mine are, added the necessary text to mcfg_sw.txt but it doesn't activate voWifi as far as I can tell. I've attached said Sony files if ya wanna check them out
https://drive.google.com/file/d/1Rbh5n3zmNfVd1t75OZjbqQ8thcua-XL1/view?usp=drivesdk
I'll take a look at the mbn_ota.txt . What, if anything , could be done with it?
Side note: for some reason, I can't erase modem st1/2 in pixel 3. It's gives me a "remote error " in fastboot.
Click to expand...
Click to collapse
For adding ChinaTelecom lte and volte on Pixel 3, people just change the mbn_sw.txt and it works.
I'm not sure what the mbn_ota.txt is used for, I'm guessing it has a similar effect as mbn_sw.txt, but it is useless for your current situation.
Thanks for your trust, but I don't think I can help.
sbjbs said:
For adding ChinaTelecom lte and volte on Pixel 3, people just change the mbn_sw.txt and it works.
I'm not sure what the mbn_ota.txt is used for, I'm guessing it has a similar effect as mbn_sw.txt, but it is useless for your current situation.
Thanks for your trust, but I don't think I can help.
Click to expand...
Click to collapse
Thank you for responding as often as you did and trying to help
A few last questions:
Carrierconfig.apk res xml cant be modified, can it?
I saw that it contains bools for vowifi being enabled or not
How do they change the txt, exactly?They just put the location of said mbn that they placed in the txt file?
My carrier config is already in the default mcfg_sw.txt and only allows volte. Maybe I could add the text from the mcfg_sw.txt and mbn files from the xz3 that supports vowifi and volte and delete all others under there? Or does that mbn_ota.txt override that?
I really just wnna force vowifi , lol. voLTE is okay but I miss sms over wifi like I got with my first gen pixel.
In anycse, thanks again for the help! I sincerely appreciate it
Would this thread help me out any? Modifying carrier policy is something I've been looking into ,but doing so at app lever is damned near impossible
http://bbs.gfan.com/android-9204634-1-1.html
Xdevillived666 said:
Thank you for responding as often as you did and trying to help
A few last questions:
Carrierconfig.apk res xml cant be modified, can it?
I saw that it contains bools for vowifi being enabled or not
How do they change the txt, exactly?They just put the location of said mbn that they placed in the txt file?
My carrier config is already in the default mcfg_sw.txt and only allows volte. Maybe I could add the text from the mcfg_sw.txt and mbn files from the xz3 that supports vowifi and volte and delete all others under there? Or does that mbn_ota.txt override that?
I really just wnna force vowifi , lol. voLTE is okay but I miss sms over wifi like I got with my first gen pixel.
In anycse, thanks again for the help! I sincerely appreciate it
Would this thread help me out any? Modifying carrier policy is something I've been looking into ,but doing so at app lever is damned near impossible
http://bbs.gfan.com/android-9204634-1-1.html
Click to expand...
Click to collapse
Yes, you can decompile a apk and change the xml and recompile it by tools like apktool.
For ChinaTelecom lte on Pixel 3, you can refer to this post: http://bbs.gfan.com/android-9535442-1-1.html
they append a line to mbn_sw.txt:
Code:
mcfg_sw/generic/China/CT/Commercial/OpenMkt/mcfg_sw.mbn
if want to enable volte, append another line:
Code:
mcfg_sw/generic/China/CT/Commercial/VoLTE_OpenMkt/mcfg_sw.mbn
and add some properties in build.prop:
Code:
ro.mtk_ims_support=1
ro.mtk_volte_support=1
persist.mtk.volte.enable=1
persist.dbg.volte_avail_ovr=1
persist.dbg.ims_volte_enable=1
persist.dbg.volte_avail_ovr=1
persist.dbg.vt_avail_ovr=1
persist.dbg.wfc_avail_ovr=1
persist.radio.rat_on=combine
persist.radio.data_ltd_sys_ind=1
persist.radio.data_con_rprt=1
persist.radio.calls.on.ims=1
Before the OP‘s method of changing modem.img, people used to change carrier_policy.xml if they want to use ChinaTelecom on Pixel 1.
you can refer to this: http://www.usbmi.com/2281.html
But I only got the Pixel recently, I have never tried that.
IMPORTANT: please don't forget to backup your EFS and related partitions before doing that.
sbjbs said:
Yes, you can decompile a apk and change the xml and recompile it by tools like apktool.
For ChinaTelecom lte on Pixel 3, you can refer to this post: http://bbs.gfan.com/android-9535442-1-1.html
they append a line to mbn_sw.txt:
Code:
mcfg_sw/generic/China/CT/Commercial/OpenMkt/mcfg_sw.mbn
if want to enable volte, append another line:
Code:
mcfg_sw/generic/China/CT/Commercial/VoLTE_OpenMkt/mcfg_sw.mbn
and add some properties in build.prop:
Code:
ro.mtk_ims_support=1
ro.mtk_volte_support=1
persist.mtk.volte.enable=1
persist.dbg.volte_avail_ovr=1
persist.dbg.ims_volte_enable=1
persist.dbg.volte_avail_ovr=1
persist.dbg.vt_avail_ovr=1
persist.dbg.wfc_avail_ovr=1
persist.radio.rat_on=combine
persist.radio.data_ltd_sys_ind=1
persist.radio.data_con_rprt=1
persist.radio.calls.on.ims=1
Before the OP‘s method of changing modem.img, people used to change carrier_policy.xml if they want to use ChinaTelecom on Pixel 1.
you can refer to this: http://www.usbmi.com/2281.html
But I only got the Pixel recently, I have never tried that.
IMPORTANT: please don't forget to backup your EFS and related partitions before doing that.
Click to expand...
Click to collapse
Thanks. I had a look at the threads and it is a great resource, so thanks.
You can also try this in the future:
https://forum.xda-developers.com/pixel-2-xl/how-to/guide-qxdm-port-activation-pixel-2-xl-t3884967
I get all ports on p3 open but cant get pdc tool to connect.
When I had my pixel 1, I used this to get wifi messaging and volte working perfectly:
"You need to do the following Steps: -Check with your Carrier if your subscription is persistently provisioned for VoLTE and not based on the used device -Root your device with magisk and install the VoLTE enabler module (this is for android sw level VoLTE activation) https://forum.xda-developers.com/apps/magisk/module-v4-volte-enabler-t3649613/page1 -Download ES File Explorer with root rights and head to /data/misc/radio/modem_config/mcfg_sw/generic/common/wildcard/wildcard and backup mcfg_sw.mbn to any location for example google drive -Copy mcfg_sw.mbn from /data/misc/radio/modem_config/mcfg_sw/generic/common/eu/dt/commerci/volte to /data/misc/radio/modem_config/mcfg_sw/generic/common/wildcard/wildcard and overwrite the existing mcfg_sw.mbn and set file permission to r-- --- --- (this is really important, if the file rights are not correct, it can cause boot loops. -Enter a SIM card into the device witch has a carrier specific mcfg_sw.mbn file, I did it with a TMUS SIM card. If you don't have one, order one through the internet for example at https://www.reisesim.de/de/prepaid-sim-karte-usa/t-mobile-usa-sim-karten/ -Insert your personal SIM back into the device and do a reboot
This is not a 100% guarantee that it will work, for my carrier it worked. If it is not working, you can also try with the TMUS, Telstra or EE mcfg_sw.mbn.
It's very likely that WiFi Calling will not work, because there's a additional config file which includes the epdg adress which can only modified through EFS explorer from Qualcomm. If WiFi Calling is not working, disable the function!!
"
Thanks again for your help. Hopefully more carriers support pixel natively in the future, otherwise I dont see myself getting another one with such a lack of support and features:-/
sbjbs said:
Thanks for your post, this is the best way I can find to enable China Telecom LTE on Pixel.
Based on your post, I did some further checks, and found a way to do this without erasing data partition, and even no need to root.
Successfully tested on my Pixel running Android P.
Same as your method, we will change modem.img and copy mcfg_sw.mbn from 1+3T's image.
From the aosp source code, we can see that the init.radio.sh will copy configs from modem.img if the versions in ver_info.txt is changed.
So we can just simply change the version to another value, and it will copy the new configs.
The following are the detailed steps, we need a Linux environment to mount modem.img:
1. extract modem.img from Pixel factory image.
2. extract NO-HLOS.bin from 1+ 3T factory image (download from oneplus).
3. In order to add new files into modem.img, first need to expand its size:
Code:
dd if=/dev/zero of=modem.img bs=4096 count=100 conv=notrunc oflag=append
This command appends about 400KB to the end of the modem.img.
The total size of CT configs in 1+ 3T is about 230KB, but you can change to a larger count if you need to add more files.
4. mount modem.img:
Code:
mkdir modem
sudo mount -o loop modem.img modem
5. mount NO-HLOS.bin:
Code:
mkdir oneplus
sudo mount -o loop NO-HLOS.bin oneplus
6. create a "china" folder, since we only copy the CT configs, and skip CMCC and CU configs.
Code:
sudo mkdir modem/modem_pr/mcfg/configs/mcfg_sw/generic/china/
7. copy CT configs from oneplus:
Code:
sudo cp -r oneplus/image/modem_pr/mcfg/configs/mcfg_sw/generic/china/ct modem/modem_pr/mcfg/configs/mcfg_sw/generic/china/
8. change the ver_info.txt:
Code:
sudo vim modem/modem_pr/verinfo/ver_info.txt
It is enough to only change the last digit.
9. umount the images:
Code:
sync
umount modem
umount oneplus
10. flash the modem.img:
Code:
fastboot flash modem_a modem.img
fastboot flash modem_b modem.img
fastboot reboot
After reboot, Pixel will be able to use China Telecom LTE.
Click to expand...
Click to collapse
Hello, can you tell me under which directory I should execute "mkdir modem", "mkdir oneplus" "sudo mkdir modem/modem_pr/mcfg/configs/mcfg_sw/generic/china/"?
I'm doing it under / directory and getting "read-only file system" error.
bonedriven said:
Hello, can you tell me under which directory I should execute "mkdir modem", "mkdir oneplus" "sudo mkdir modem/modem_pr/mcfg/configs/mcfg_sw/generic/china/"?
I'm doing it under / directory and getting "read-only file system" error.
Click to expand...
Click to collapse
I'm sorry to reply so late. On your host machine, you can cd to a 'writable' directory (your HOME directory, for example) to mkdir the mountpoint.
I just verified that this still works on Pixel1 Android 10.

[One UI][A70] - Creator ROM ZIP

Creator ROM Galaxy A70:
This is a small project, ¡create a basic rom based on one ui for your A70 device!
this project is based on Dynamic Installer and SuperR custom zip, I am not responsible for damaged phones, install at your own risk.
FEATURES:
Spoiler: Features
Debloat
Custom CSC Features
Floating Features
Build.prop TWEAKS
Add apps or files to the system, vendor and product
Multidisabler
DFE
Fix bluetooth pairings loss
and more
Downloads:
Download: AndroidFileHost
ROM made with Creator ROM: Universal ROM A70q
ACTIONS:
use file: ROM ZIP/META-INF/com/google/android/updater-script:
ui print: This is what will be displayed on installation
Code:
ui_print(" ");
#Example
ui_print("Creator ROM ");
Files bin: Files to make the zip work (Creator ROM/ROM ZIP/install/bin/)
Code:
package_extract_dir("install", "/tmp/install");
set_metadata_recursive("/tmp/install/bin", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755);
run_program("/tmp/install/bin/busybox", "sh", "/tmp/install/bin/configure.sh");
Mount:
Code:
#system
ifelse(is_mounted("/system"), "", mount("ext4", "EMMC", file_getprop("/tmp/config", "system"), "/system"));
#vendor
ifelse(is_mounted("/vendor"), "", mount("ext4", "EMMC", file_getprop("/tmp/config", "vendor"), "/vendor"));
#product
ifelse(is_mounted("/product"), "", mount("ext4", "EMMC", file_getprop("/tmp/config", "product"), "/product")
Unmount:
Code:
#system files
ifelse(is_mounted("/system"), unmount("/system"));
#vendor files
ifelse(is_mounted("/vendor"), unmount("/vendor"));
#product files
ifelse(is_mounted("/product"), unmount("/product"));
Extract files:
Code:
#system
package_extract_dir("system", "/system");
#vendor
package_extract_dir("vendor", "/vendor");
#product
package_extract_dir("product", "/product");
Permissions apps:
Code:
#app
set_metadata_recursive("/system/system/app", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644);
#priv-app
set_metadata_recursive("/system/system/priv-app", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644);
Change build number: DOO/META-INF/com/google/android/updater-script
Code:
#Find
update_file_string "ro.build.display.id=(ROM NAME) "
#Example
update_file_string "ro.build.display.id=A70 ROM v3 "
Debloat:
these files have effect on product (app and priv-app), system (app, priv-app and system_ext)
Find DOO/META-INF/addons/blacklist.txt:
There you write the name of the apk you want to delete or simply leave it empty, when it is empty all those that are not in whitelist.txt will be deleted like Chrome (Without .apk)
Find DOO/META-INF/addons/blacklist_packages.txt:
Here you write the name of the package of the app you want to delete example: com.android.chrome
Find DOO/META-INF/addons/whitelist.txt:
Here you write the name of all the apk that you do not want to delete like SystemUI (Without .apk)
Find DOO/META-INF/addons/whitelist_packages.txt:
In this file you write the name of all the application packages that you do not want to delete
Floating Features:
Find DOO/META-INF/addons/floating.txt
Add the new lines you want to add for the floating features
Prop TWEAKS:
system/build.prop
Find DOO/META-INF/addons/newprop.txt
I will write the new tweaks that you want to add to your build.prop
vendor/build.prop
Find DOO/META-INF/addons/newvprop.txt
I will write the new tweaks that you want to add to your build.prop
CSC Features:
Find DOO/omc/cscfeature.xml
I do not recommend editing this file but you can add your features here
Extract files:
In the following folders you can add the files that you want the zip to move when it is installed
ROM ZIP/product/
ROM ZIP/system/
ROM ZIP/vendor/
ZIP: Zip all DOO folders into one DOO.zip file (META-INF and omc) And move the DOO.zip file to ROM ZIP/DOO/
Notes:
All lines added to newprop.txt, floating.txt, etc, will be added to their respective files, if the line already exists it will be replaced
lines can be added as ro.config.tima=0 and it will be replaced by ro.config.tima=1
BTC: bc1qqtg3pgxkhm7egmh35qnsq8xmnjjte6zeyz8s30
Paypal: Paypal.me...
if you want to support the project
XDA: DevDB Information
Creator, ROM MOD ZIP for the Samsung Galaxy A70
Based On: ONE UI
Version Information
Status: Stable
Current Stable Version: 1
Stable Release Date: 2021-07-18
Nice!

Categories

Resources