ReifamLevel 4 - Platinum Member
Which phone is everyone talking about?
Here is the link for the companies website: [Login to see the link]
Which phone is everyone talking about?
Here is the link for the companies website: [Login to see the link]
Reifam It's the one called classic (I think)
So, I found two models of TCL phones in my warehouse(which both run Android 11). I extracted the APK for settings and tried to install it on my phone, the same thing happened to both: First, it didn't let me because it was a downgrade (not even sure why that's a downgrade.) The I did ADB install -d
which allows downgrade, but I got error that the signatures didn't match. And then out of curiosity, I tried to install one Smartphone's settings APK to the other smartphone, and it had the same error. I guess TCL signs all their APK's with different signature's (never had this issue with LG).
Biden2020prez In the future if you think a post should be deleted, you can flag it.
Techgen okay thanks
I just tried the camera app from another phone and got the error Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
. I guess TCL signs all their com.tcl (very few exist) apps with same signature but not com.android
They put a lot of hurdles to install APKs, and once you get past the hurdle, there's another one waiting. Hopefully there is a bright light at the end of the tunnel...
How can i uninstall the browser? (ADB)
We received the phones and are busy checking it out. So far the build quality looks really solid and the software is leaps and bounds ahead of kai os.
Biden2020prez [Login to see the link]
[Login to see the link] I can disable apps: adb shell pm disable-user --user 0 org.chromium.chrome
Disables the browser.
To be on the safe side you may also want to disable Search: com.android.quicksearchbox
Im not sure what the app does but it can be opened even if there is no browser.
darth And what is it? Did you open it?
Biden2020prez I did open it. It opens up a search bar that says "Google" on it. It didnt display any results when I searched but to be on the safe side I removed it from my phone.
darth Okay will do, thanks!
On which carrier is it running?
im here in the catskills and only AT&t works here,,,,, can i use this phone?
SamFried It's on all the TracFone carriers (TracFone, Net10, Straight Talk, Total Wireless, etc.). TracFone does have an option to use AT&T towers, but it doesn't work on all phones, but I'm pretty sure it would on this one. [Login to see the link], which is why I assume it works on TracFone AT&T tower. I don't think AT&T sells this.
Ok, so one of our developers has pulled the framework files and reverse engineered the package manager code.
Here is the code blocking the install
try {
boolean equals = "userdebug".equals(SystemProperties.get("ro.build.type", ""));
if (!this.mIsEndurance && (!this.mGflip6Gc || !equals)) {
int i8 = Settings.System.getInt(this.mContext.getContentResolver(), INSTALL_ENABLE, 1);
this.mIntallSecretCode = i8;
if (!this.mIsAllowInstall) {
this.mIsAllowInstall = i8 == 0;
}
Log.i(TAG, "mIsAllowInstall= " + this.mIsAllowInstall + ",APK_INSTALL_FINISH" + this.APK_INSTALL_FINISH);
if (this.APK_INSTALL_FINISH) {
if (this.mIsMPBranch) {
packageInstalledInfo.setError(-22, "App forbidden installation " + parsePackage.getPackageName());
throw new PrepareFailure(-116, "App forbidden installation " + parsePackage.getPackageName());
} else if (!this.mIsAllowInstall) {
packageInstalledInfo.setError(-22, "App forbidden installation " + parsePackage.getPackageName());
throw new PrepareFailure(-116, "App forbidden installation " + parsePackage.getPackageName());
}
}
}
If you check logcat after installing a package you will see the App forbidden installation message
To set mIsAllowInstall
to true, you can dial the secret code 2880 as seen in the code below which sets the property INSTALL_ENABLE to 0 which in turn sets mIsAllowInstall
to true:
this.mContext.registerReceiver(new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
if (intent != null) {
Uri data = intent.getData();
if (PackageManagerService.this.ALLOW_INSTALL.equals(data)) {
Settings.System.putInt(PackageManagerService.this.mContext.getContentResolver(), PackageManagerService.INSTALL_ENABLE, 0);
} else {
PackageManagerService.this.FORBIDDEN_INSTALL.equals(data);
}
}
}
}, intentFilter2);
The problem is the other variable which is checked - this.APK_INSTALL_FINISH
this is set to false when the package manager service is initialized with no way to change the value!
There is another way to prevent the error which would be by preventing the parent if statement from returning true. One variable which is checked is the this.mEndurance
variable.
This variable is set with this line of code: packageManagerService.mIsEndurance = SystemProperties.getBoolean("ro.vendor.tct.endurance", false);
So if we can somehow modify the system property ro.vendor.tct.endurance to return true then we can bypass the check and install the package!
This is where our developer is currently up to, if you have any cool ideas on how to modify this system property without root then by all means let us know!