[Q] hybridizing a Stock ROM to add features, it is possible - Android Q&A, Help & Troubleshooting

Hey everybody,
In my spare time I'm trying to figure out a means to be able to port specific features that one ROM may have that a stock ROM doesn't.
To be more specific, Doug Yeager was able to create additional subclasses for near field communications that allows for smart card emulation (IE contactless payment). This code was officially merged into the Cyangonmod ROM 10.1 and allows users of that ROM to enjoy features similar to Google Wallet without having problems of carrier restrictions that plagues Wallet. When Wallet originally came out it required access to the near field communications secure element as a means to store the card credentials. The problem came where three of the four US carriers (AT&T, T-Mobile and Verizon) would not allow Google to access the secure element (IE would not provide their keys), thereby placing a barrier to near field communications adoption.
The reason why I'm posting this is, in an attempt to allow mobile device users that may not want to use CM 10.1, but rather a rooted stock ROM, I'm trying to find a way to import solely just the new NFC code. Amateur attempts to try and add the code into the framework.jar file has resulted in a frozen boot ( the device uses odex) with an adb logcat denoting missing dependencies everywhere. In addition most of the threads deal with purely porting the ROM itself to various hardware and not porting code between various ROMS.
Is it possible, with the framework as it is, be able to modify it, or is it techinally impossible with a manufacturers alterations upon the the stock Android framework?
Thanks
Joe
=Technical specs=
Samsung Galaxay Rugby Pro (SGH-I547)
OS version 4.1.2
framework-res.apk
(been able to add the code to the apk to show the NFC subclasses)
framework_ext.apk
framework_2.apk
twframework-res.apk
framework-res.odex
(attempts to add the new NFC subclasses results in a frozen boot due to missing class dependencies)
framework_ext.odex
framework_2.odex
twframework-res.odex

Related

[Q] Android, an open system ?

Hi everybody,
I have been advised to seek for information on your forum by people from a french forum, Phon Android.
I am trying to understand limitations put by Google on the access to Android system. Here a few pieces of information I have, which might not even be exact. Please, correct me and supply with the right info:
- Google provides some access to the Android functionalities, but not all,
- For example, one restriction is access to GPS switch,
- No one knows on which basis Google forbids such or such access,
- So, Google provides some library syntax to use Android system, but not its code ?
- There are systems, like Cyanogen which allow to use all the functionalities brought by Android. But from where do the developpers of such system get the information, if Google does not give the full info. on its system ?

[Q] Android ROM customization roadmap, general question

Hi guys, with my team we are working on an android device. At the moment we have accomplished the following steps:
Develop the PCB and touch screen to work with Android
Download 4.4.4 AOSP and customized the kernel for our device
saved source into GitHub and have a custom ROM with bootloader
So far so good, right now we have android running on our custom hardware (MIPS CPU) and we are quite satisfied with the overall performances.
Now we are starting the second phase of the project, and this is where we got stuck. We need to completely wipe out the UX and interaction of android 4.4.4 and create our own one.
This is what we need to accomplish:
Create a custom boot animation
Create a cutom animation for the battery charge
remove status bar (Time, Battery level) and pre-installed .apk
Create our own Android OS interaction with our .apks
Regarding the first steps, that's easy. We plugged into bootloader folder and started to change the animations for Battery and Logo. Regarding the rest the only solution we came up with is to have a sort of kiosk application that substitute the standard home screen.
Is there any other way to substitute the home screen with our own .apk? We have a built-in plug-in app so actually our .apk can pick up other .apk from file explorer and execute them. The problem is that we don't want to show to the user the underground system, so we don't want to show to the user anything except our home screen or kiosk mode app. Because the device will be used by commercial projects and retail stores.
What would be the best approach? Just remove all pre-installed .apk from the ROM (like calculator, browser, contacts) and execute an .apk in kiosk mode or create a new bootloader? Where we can find more documentation about this topic?

Create global content filter for files

Hey guys!
I´m new here and I hope you can help me with some questions... I didn´t know if I´m right here, so please correct me if I do something wrong
My "setup":
- Samsung S3 international with CM13
I like to create a global "Content Filter", which filters files (pictures, videos, documents, etc.) on my smartphone. So what I mean is something like what the UserManager (sorry I can´t poste the Link to Android API) from Android framework does:
User A (owner) creates pictures with the camera, download files, etc. and if User B (guest) logs in, User B can´t access the files from User A and vice versa.
The diffrent part is that I like to "hide" or better make them not accessable by custom criteria - for example "only pictures from the last two hours will be shown to User B". And the main point ist that every application gets the same content.
I thought I have to edit and extend the internal/external storage functions (or ContentProvider?) by my custom filter. Later there will be a system app for controlling the behavior of this filter.
Now there are some question, which I ask myself:
- Is it possible to implement this functionality in Android specific code and not in device specific code? So is it possible to make it portable for other devices and Android versions (Custom ROM, manufacture ROM or the pure Stock Android from Google´s Nexus phones) without "much" effort?
- Does it make more sense to use the original Stock Android instead of Cyanogenmod to reach the portability?
- Where do I have to start? I downloaded the source Code of CM13 for the Samsung S3. But how I ask before - is there a generic way for all devices and android versions? I started to look into the framework specific code of android (system/frameworks/base/... ). I thougth I can build the filter between the api calls (java -> jni bridge -> c/c++), but that would be not the right place, yes?
I hope someone understand my plan and can help me with some informations and tipps or where I have to look to get them!
Thanks!!
Fabian
I think you might mean the profile system that android used to have on ICS?.
Unfortunately I can't answer why they removed that feature. Does the phone not have an option or something if you have 2 or more google accounts registered to the device?..
Beamed in by telepathy.

Trying to figure out how to enable VoLTE, WiFi Calling on X Compact

I'm writing this post to track my efforts to enable VoLTE and WiFi Calling on my X Compact. To begin with, I don't have a solution yet. I think I understand a lot of how it's supposed to work, but there are still some things I don't know. Hopefully others will be able to chime in and provide some answers.
I use my phone on MetroPCS in the USA. They are an MVNO for T-Mobile (and also owned by T-Mobile). I know that they support both features as my wife's Moto X4 is able to use them.
The X Compact does support VoLTE:
https://support.sonymobile.com/us/x...do-i/801930746ffcf563015c0bfaac370057e6/#gref
The problem is, it's only supported on specific carriers. The first requirement is that the carrier supports VoLTE (MetroPCS). The second requirement is that the feature has to be approved by Sony to be used on that carrier. This is where people have problems. I don't know how Sony makes the approval list, but my carrier isn't on it.
Before digging into this, I had planned on upgrading to the XZ1 Compact because it is specifically advertised as having VoLTE working on T-Mobile. I bought one and expected it to work out of the box on MetroPCS, but it didn't. I went back and forth with both MetroPCS and Sony and it still didn't work. This goes back to the list I mentioned above. If your carrier isn't on it, the phone won't work.
So I'm stuck with a phone that would work perfectly well with these features, but due to carrier/manufacturer approval issues, won't. Moving forward, I'll discuss the things that I've tried to get it to work.
Try making the XC work like the XZ1C
As I mentioned above, the XZ1C supports both features natively on T-Mobile. Why it works on T-Mobile came up in the following thread trying to get VoLTE and fingerprint support at the same time on T-Mobile:
https://forum.xda-developers.com/xperia-xz1-compact/help/volte-tmo-fingerprint-sensor-t3666387
So why does the XZ1C work on T-Mobile? @pbarrette did a good job of explaining the process in this post:
https://forum.xda-developers.com/showpost.php?p=74159245&postcount=105
The XZ1 and the XZ Premium both use the same chipset as the XZ1C, but those features don't work on T-Mobile. In trying to figure out why, @pbarrette determined the mechanism Sony uses to enable this feature. That work is covered in the following thread:
https://forum.xda-developers.com/xz-premium/help/volte-t-mobile-enabled-t3627567/
Simply, the XZ1C has additional files which are triggered to be used when a T-Mobile SIM is placed in the phone. To get the features to work on the XZ1 and XZP, you need to copy the appropriate files on to the phone. @pbarrette created a flashable zip file which does this and it works for those phones. The most important file to get the features working is the proper modem binary file (/etc/customization/modem/), tmobile_us_ims on the XZ1C. Unfortunately, there's no corresponding file on the XC.
I thought that I could just copy the binary file from the XZ1C, but the phones use different hardware so it's likely that a file from one phone won't work on another. I did a file comparison of the default (XC: amss_fsg_kugo_tar.mbn, XZ1C: amss_fsg_lilac_tar.mbn) and T-Mobile (XC: amss_fsg_kugo_tmobile_us_tar.mbn, XZ1C: amss_fsg_lilac_tmobile_us_tar.mbn) modem binary files from each phone, and they're quite different. So it seems like that option won't work.
Even if the XZ1C files did work on the XC, the problem still remains that the XZ1C doesn't work on MetroPCS. So I'd get a franken-ROM that doesn't do what I want it to.
Afaik your operator need to enable volte for your specific device. Here, my operator doesn't support xc and even if I force enable volte it still doesn't work. I contacted them and they said that they have to do some tests and then enable it to use volte.
maluus said:
Afaik your operator need to enable volte for your specific device. Here, my operator doesn't support xc and even if I force enable volte it still doesn't work. I contacted them and they said that they have to do some tests and then enable it to use volte.
Click to expand...
Click to collapse
You might be right, but some of the success stories that I've read lead me to believe that it's not device specific. I'll dig into that in a later post. I've contacted my carrier and according to them, everything is set on their end, so that just leaves the device being the issue.
Try making the XC work like the XZ1C, Part 2
Per @pbarrette, the proper files are loaded only when a SIM with the correct ID is inserted into the phone. For the XZ1C, this info is located in /overlay/com.sonymobile.customizationselector-res-305.apk in a file called configuration_selectors.xml. A file of the same name is also present in the same location on the XC. The sim_config_id can be found by entering the following command with USB debugging enabled:
Code:
adb shell getprop persist.sys.sim_config_ids
When I enter this, I get S8957.1. That value isn't in the configuration_selectors.xml list so the proper files aren't loaded and the default modem binary is used. If it were in the configuration_selectors.xml list, a config_id value of 400 would be associated with the sim_config_id (408 for XZ1C). Your config_id value can be found using the following command:
Code:
adb shell getprop ro.semc.version.cust.active
When I enter this command, I end up with a blank. I believe that this is because the default modem binary is being used, but this is just a guess. Ultimately, it means that the SIM isn't recognized and therefore the features won't work.
There's another file that's part of /overlay/com.sonymobile.customizationselector-res-305.apk, and that is service_providers.xml. I believe that this is where the proper sim_config_id is selected, based upon the MCC and MNC for the carrier. In my case, those values are 310 and 260, respectively. There are two entries which match these values:
Code:
<service_provider_sim_config sim_config_id="S8957.1">
<mcc>310</mcc>
<mnc>260</mnc>
<sim directory="7FFF" file="6F3E">6D</sim>
</service_provider_sim_config>
<service_provider_sim_config sim_config_id="S264.8">
<mcc>310</mcc>
<mnc>260</mnc>
</service_provider_sim_config>
There have been times in the past that my phone has been assigned the sim_config_id or S264.8, but most of the time it's S8957.1. I'm not sure what the sim directory tag refers to. If anyone knows what this means, please let me know as it might be helpful.
So my first strategy of trying to mimic the way the XZ1C works doesn't appear to be an option. A question for others: would it be possible to decompile the relevant files, change the xml files to reference the id's that I'm seeing, recompile and replace the APK's, all without sending my phone into a bootloop? Yes, see below.
But even if that were to work, there's no corresponding modem binary file on the XC, so probably no VoLTE. But there are other modem binary files. Could I just rename one of those? Would using the file from the XZ1C crash the modem on the XC? Yes, see below.
Try making the XC work like the XZ1C, Part 3
Alright, I've had partial success. Using some of the overlay files from the flashable zip that @pbarrette created, I was able to get the VoLTE and WiFi Calling menus to show up in settings. Here's a summary:
Flash old firmware. I used this one available on XperiFirm: F5321_34.1.A.1.198_Commercial and Journalists (1305-9054). It's not strictly necessary to flash the old firmware, but you need root, and root requires an unlocked bootloader, and unlocking the BL will delete your TA partition. I wanted to backup the TA partition for my DRM keys. In order to use the backup tool, you have to use an older version of Android so that the exploit used by the backup tool is still available.
Backup TA partition
Flash current firmware (34.4.A.2.118)
Unlock bootloader (use the Sony Mobile website for this)
Root phone (I used the method described here with the DRM fix option. The use-your-own-TA option didn't work for me.
https://forum.xda-developers.com/x-compact/how-to/stock-8-0-root-recovery-t3747479
Install the following files from the @pbarrette flashable zip:
/oem/modem-config/408/modem.conf
/oem/overlay/android-res-305.apk
/oem/overlay-408/android-res-310-408.apk
/oem/overlay-408/com.android.carrierconfig-res-310-408.apk
/oem/overlay-408/com.android.phone-res-310-408.apk
/oem/overlay-408/com.android.settings-res-310-408.apk
/oem/overlay-408/com.android.systemui-res-310-408.apk
/oem/system-properties/408/config.prop
You also need to install /oem/overlay/com.sonymobile.customizationselector-res-305.apk, but I had to modify the file from the XZ1C to get things to work. Within the APK, there's one XML file that needs to be updated to include the sim_config_id I'm seeing on MetroPCS. That is /res/xml/configuration_selectors.xml. I modified it to look like the following (with my addition in red):
Code:
<?xml version="1.0" encoding="utf-8"?>
<configurations>
<configuration config_id="408">
<sim_config_id>S264.1</sim_config_id>
<sim_config_id>S264.2</sim_config_id>
<sim_config_id>S264.3</sim_config_id>
<sim_config_id>S264.4</sim_config_id>
<sim_config_id>S264.5</sim_config_id>
<sim_config_id>S264.6</sim_config_id>
<sim_config_id>S264.7</sim_config_id>
<sim_config_id>S264.8</sim_config_id>
<sim_config_id>S264.9</sim_config_id>
<sim_config_id>S264.10</sim_config_id>
<sim_config_id>S264.11</sim_config_id>
<sim_config_id>S264.12</sim_config_id>
<sim_config_id>S264.13</sim_config_id>
<sim_config_id>S264.14</sim_config_id>
<sim_config_id>S264.15</sim_config_id>
<sim_config_id>S264.16</sim_config_id>
<sim_config_id>S264.17</sim_config_id>
<sim_config_id>S264.18</sim_config_id>
<sim_config_id>S8663.1</sim_config_id>
[COLOR="Red"]<sim_config_id>S8957.1</sim_config_id>[/COLOR]
</configuration>
</configurations>
To do this, I decompiled the Sony APK from the XZ1C, changed the file, recompiled the APK, signed the file, then placed the file in the /oem/overlay directory with Solid Explorer, and made sure the file permissions were correct.
It's worth mentioning that /oem/modem-config/408/modem.conf lists the modem binary file to be loaded when a T-Mobile SIM is detected. On the XZ1C, this is tmobile_us_ims and that's what modem.conf lists by default. You'll need to change this to one of the modem binary files contained on the XC. I tried using the tmobile_us_ims modem binary file from the XZ1C and it sent my phone into a bootloop. So it's confirmed that the XZ1C modem binary files aren't compatible with the XC. Just pick one from the /etc/customization/modem folder, like amss_fsg_kugo_a1_austria_ims_tar.mbn and list this in the file. You'll need to cut out the prefix and suffix, so just a1_austria_ims for this example. The prefix and suffix will get added by the phone when selecting the file.
Trigger a SIM check by CustomizationSelector. To do this, I deleted the file /data/data/com.sonymobile.customizationselector/shared_prefs/com.sonymobile.customizationselector_preferences.xml and rebooted (as suggested by @pbarrette here: https://forum.xda-developers.com/showpost.php?p=74560870&postcount=76 and here https://forum.xda-developers.com/showpost.php?p=74560870&postcount=77). After a couple of minutes, my phone stated that it needed to reboot to optimize for my network. Once it loaded back up, the proper overlays had been loaded and I could see the settings for VoLTE and WiFi Calling.
This is where my success stops. Without the proper modem binary file, it's a bit of a crapshoot to see if an existing file will work. To do this, just repeat steps 8 and 9 with a different modem binary file. I've tried a handful of these files, but no luck yet. There are 127 files, but I'm sticking with the ones that mention IMS or VoLTE. This reduces the total to 88, but it's still a lot of rebooting and waiting. The files I've tried so far are listed below.
amss_fsg_kugo_a1_austria_ims_tar.mbn
amss_fsg_kugo_a1_austria_volte_vowifi_tar.mbn
amss_fsg_kugo_bouygues_france_ims_tar.mbn
amss_fsg_kugo_bouygues_france_volte_vilte_tar.mbn
amss_fsg_kugo_ee_ims_tar.mbn
amss_fsg_kugo_singtel_ims_tar.mbn
amss_fsg_kugo_telefonica_uk_ims_tar.mbn
amss_fsg_kugo_telekom_germany_ims_tar.mbn
amss_fsg_kugo_tmobile_us_tar.mbn
amss_fsg_kugo_vivo_ims_tar.mbn
amss_fsg_kugo_vodafone_germany_ims_tar.mbn
amss_fsg_kugo_vodafone_spain_ims_tar.mbn
amss_fsg_kugo_vodafone_uk_ims_tar.mbn
amss_fsg_lilac_tmobile_us_ims_tar.mbn
So that's my current status. I'm not planning on doing anything else at this point, because I figured out a way to get my XZ1C working on MetroPCS with VoLTE and WiFi Calling. I'll write a bit about that over in the XZ1C forum. If anyone wants to continue looking into it, please provide an update.
Software Used
In case someone wants to work through this process on their own, here is the software that I used:
Flashtool: Used for flashing firmware to the XC via FTF files. This can also be used to extract the contents of some older SIN files.
http://www.flashtool.net/index.php
newflasher: An alternative to Flashtool. I didn't use this, but I saw it referred to a lot.
https://forum.xda-developers.com/cr...gress-newflasher-xperia-command-line-t3619426
UnSIN: This program can be used to extract the contents of more modern SIN files.
https://forum.xda-developers.com/crossdevice-dev/sony/tool-unsin-sin-v3-unpacker-t3128106
ext2explore: Tool to explore ext4 image files. Once you've used UnSIN, you end up with an ext4 file. This tool can explore the ext4 file and extract files from it.
https://sourceforge.net/projects/ext2read/files/Ext2Read ver 2.0/ext2explore 2.0 beta/
Google platform tools: This includes ADB, fastboot, etc. It comes with the Android SDK, but that file size is massive so Google conveniently packaged just the platform tools in a much smaller zip file.
https://developer.android.com/studio/releases/platform-tools
apktool: This is a tool to decompile/compile APK files. There are other tools out there, but this is the one that I used.
Tool download: https://ibotpeaches.github.io/Apktool/
Guide I used: https://forum.xda-developers.com/showthread.php?t=2213985
Flashable zip guide: I ended up editing the flashable zip from @pbarrette to include only the files I listed above. It was pretty straight forward to edit the script just looking at it, but this was a good resource for explaining things in more detail.
https://forum.xda-developers.com/an...-complete-shell-script-flashable-zip-t2934449
Dirtycow-based TA Dumper for Sony Xperia Devices: This what I used to backup my TA partition.
https://forum.xda-developers.com/crossdevice-dev/sony/universal-dirtycow-based-ta-backup-t3514236
sgs2toext4: This tool can convert an IMG file (eg. boot.img) to ext4. I used it in some of my tinkering (trying to get use-your-own-TA root option working) but I don't think you'll need it
https://forum.xda-developers.com/ga...n-zipalign-t1132724/post15333542#post15333542
Mate there is a magisk module to enable that menu options. But although enabled, neither volte nor vowifi does work without operator support. Does your operator list supported devices for volte? If so, you can risk to change the signatures of your device with a supported and identical platforms.
maluus said:
Mate there is a magisk module to enable that menu options. But although enabled, neither volte nor vowifi does work without operator support. Does your operator list supported devices for volte? If so, you can risk to change the signatures of your device with a supported and identical platforms.
Click to expand...
Click to collapse
Interesting. I've not heard of that module. MetroPCS doesn't list compatible devices as far as I know, but I know of unlocked devices that do work. Could you please provide a link to that module you mentioned?
I don't have Magisk installed but you can search volte in modules library. I think name was the volte enabler or something similar
maluus said:
I don't have Magisk installed but you can search volte in modules library. I think name was the volte enabler or something similar
Click to expand...
Click to collapse
Was it this one? If so, the module isn't doing anything that I'm not already doing. Is there a module that allows for using the Modem Switcher on Sony phones?
https://forum.xda-developers.com/apps/magisk/module-v4-volte-enabler-t3649613
camdecoster said:
Was it this one? If so, the module isn't doing anything that I'm not already doing. Is there a module that allows for using the Modem Switcher on Sony phones?
https://forum.xda-developers.com/apps/magisk/module-v4-volte-enabler-t3649613
Click to expand...
Click to collapse
Yes it is. Btw I noticed a phrase in OP which points out the problem as I stated earlier.
"My carrier supports VoLTE/VoWiFi but not on my device. I made this module to forcefully enable it to test if it worked (it hasn't so far)."
I don't know your provider but still it seems operator support is based on individual devices as it is in my case. When I first call the support center of my carrier the person told me that if my phone does support volte there shouldn't be a problem. I insisted that my phone supports volte and she said that she ll check with tech department and a few minutes later called me back saying indeed they don't support my device. long story short I can't use volte as of now. they support a device from loire platform so may be if I change identification of device to that one to trick the operator network to believe I use the supported device it may work but I have my doubts about consequences so I did not dare yet
maluus said:
Yes it is. Btw I noticed a phrase in OP which points out the problem as I stated earlier.
"My carrier supports VoLTE/VoWiFi but not on my device. I made this module to forcefully enable it to test if it worked (it hasn't so far)."
I don't know your provider but still it seems operator support is based on individual devices as it is in my case. When I first call the support center of my carrier the person told me that if my phone does support volte there shouldn't be a problem. I insisted that my phone supports volte and she said that she ll check with tech department and a few minutes later called me back saying indeed they don't support my device. long story short I can't use volte as of now. they support a device from loire platform so may be if I change identification of device to that one to trick the operator network to believe I use the supported device it may work but I have my doubts about consequences so I did not dare yet
Click to expand...
Click to collapse
My carrier does offer VoLTE and WiFi Calling and those features do work on unlocked phones, so I'm pretty sure it's a Sony problem. In fact, I recently got those features working on an XZ1C. It could work on an XC too, but I'm moving on to the XZ1C. I hope someone gets it to work. Good luck with your carrier.
Don't know if anyone interested, but I found this on a Chinese forum - http://bbs.gfan.com/forum.php?mod=v...rby=lastpost&typeid=&typeid=&orderby=lastpost Apparently, if you flash the 2 files in the link, (http://bbs.gfan.com/android-9530989-1-1.html), it will work. I was going to test it out, but you need an account with some Chinese file sharing service, and I didn't feel like trying to figure it out...
Thank you for the information.
Unfortunately, I am unable to register as the registration needs SMS code received on a Chinese phone number.
I hate when some service requests my phone number (or other irrelevant data) without any way to avoid it…
mp107 said:
Thank you for the information.
Unfortunately, I am unable to register as the registration needs SMS code received on a Chinese phone number.
I hate when some service requests my phone number (or other irrelevant data) without any way to avoid it…
Click to expand...
Click to collapse
2 files on that post (thanks [email protected] ).
Oreo flash CT_v1_xzs.zip , Pie flash CT_v2_xzp.zip .
BUT, that's for XZs and XZP, not for XC. If failed, you can flash oem.sin only (from .FTF firmware) to restore.
To enable VoLTE and Wifi Callling, we need two parts of modem configs.
1. core: *.mbn modem config of specific local carrier that locate in /system/etc/customization/modem/ .
2. guide: modem configs in /oem.
The 2nd part can be import easily from other sony models, but the KEY is 1st part config. If the specific local carrier config can't be found in /system/etc/customization/modem/ , we have to use QPST to put parameters manualy, or no way to enable VoLTE/VoWifi.
camdecoster said:
My carrier does offer VoLTE and WiFi Calling and those features do work on unlocked phones, so I'm pretty sure it's a Sony problem. In fact, I recently got those features working on an XZ1C. It could work on an XC too, but I'm moving on to the XZ1C. I hope someone gets it to work. Good luck with your carrier.
Click to expand...
Click to collapse
Yes, it's Sony's problem. To Sony, importing VoLET/VoWifi parameters of all support carriers is a piece of cake.
There's a post on a Chinese BBS about enable VoLTE:http://bbs.gfan.com/android-9543428-1-1.html
XG_Zepto said:
There's a post on a Chinese BBS about enable VoLTE:http://bbs.gfan.com/android-9543428-1-1.html
Click to expand...
Click to collapse
Has anyone here tried this for a US carrier? I tried to follow along with the translated version but my lack of fully understanding the process and the rough translations have made it very difficult.
Does anyone have experience with the X Compact on T-Mobile?
I was going to change from the iPhone SE (tired of Apple, but need a small phone), which has VoLTE and Wifi Calling out of the box. I have a Note FE which was made for Singapore and I was able to change the CSC to get VoLTE, but not Wifi Calling.
W/O VoLTE it's totally not worth it. Besides not being to use LTE while on a call, I read in the thread the OP referenced regarding the XZ1C, that getting Band 12 w/o VoLTE is also a problem.
And then there's the fingerprint sensor. If I install a European ROM to get it...
Will Rooting help any of the above?
Am I stuck with Apple? That's really depressing...

Using a .so file in an android app? How can I access the hardware depth sensor on my (rooted) phone?

I'm building an application that requires the use of the depth sensor on my Samsung Galaxy A80. However it seems like it's impossible to access it through Camera2 and ARCore. I asked Samsung directly and the tech support guys best guess was that Samsung has locked it from being used by third parties.
I rooted my phone and started digging through the file system and eventually found a file called 'com.samsung.sensor.imx316.so' located in /vendor/lib/camera (imx316 is the depth sensor). There are also some similar files that ends in '.bin', but .so files seems to be runnable code if I understood the google results correctly.
That file has the same name as the sensor I can't seem to access. Can this file be used somehow? Can I run it in my own app to get access to the depth data? And if not, there should be a way of getting that data right? I mean, it obviously exists somewhere in the phone since pre-installed apps are using it, and a rooted phone has access to everything?
Did you check REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUT? How do you know it's impossible?
Most likely you need to reverse engineer the Camera app from your phone.
Your app can call com.samsung.sensor.imx316.so , it's really "just" a linux elf library.
The problem you face is the exported routines from the library, you won't really know
1) the parameters to the functions inside the library
2) any specific order to call functions inside the library i.e. like an init function first , release memory last...
You need to disassemble / reverse engineer the library to make some sense of it (see ghidra / radare2/ ida pro etc ).
Use strace on the current process/app which uses the library to make some sense of the order of calls into the library.
The depth data will be coming from a kernel level driver, you can likely obtain the Samsung kernel source and the driver source should be there. Then it's up to you whether you can make user space library/code to read what the driver exposes. The kernel driver source code will have an uapi header file to investigate.
idk if it helps but i used for a Huawei P30 Pro this https://github.com/Nufflee/tof-camera

Categories

Resources