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...

    SamFried

    darth I can disable apps: adb shell pm disable-user --user 0 org.chromium.chrome
    Disables the browser.

      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.

      • darthLevel 6 - Platinum Elite Member

        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.

          • darthLevel 6 - Platinum Elite Member

            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.

              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!

                        • darthLevel 6 - Platinum Elite Member

                          Apps4Flip-Admin If you can figure out how to get this phone into download mode than you should be able to root or create custom firmware (kosher?) for the phone.

                            darth

                            Apps4Flip-Admin if you have any cool ideas on how to modify this system property without root then by all means let us know!

                            Apps4Flip-Admin This is way more confusing then תקפה כהן! I'll still try to get through it. But, how do I dial the 2880. Just call 2880? Are there stars and pounds?

                            use the hashtag and star pattern from the other commands, but it still won't work because of the second issue I brought up

                              Apps4Flip-Admin Installing APK won't work? Or the code won't work at all? (I didn't see anything when I pressed it).