code: @HiddenApi @Implementation
    protected final Number openXmlAssetNative(int cookie, String fileName) throws FileNotFoundException {
      CppAssetManager am = assetManagerForJavaObject();
      if (am == null) {
        return RuntimeEnvironment.castNativePtr(0);
      }
  
      ALOGV("openXmlAsset in %s (Java object %s)\n", am, ShadowArscAssetManager.class);
  
      String fileName8 = fileName;
      if (fileName8 == null) {
        return RuntimeEnvironment.castNativePtr(0);
      }
  
      int assetCookie = cookie;
      Asset a;
      if (isTruthy(assetCookie)) {
        a = am.openNonAsset(assetCookie, fileName8, AccessMode.ACCESS_BUFFER);
      } else {
        final Ref<Integer> assetCookieRef = new Ref<>(assetCookie);
        a = am.openNonAsset(fileName8, AccessMode.ACCESS_BUFFER, assetCookieRef);
        assetCookie = assetCookieRef.get();
      }
  
      if (a == null) {
        throw new FileNotFoundException(fileName8);
      }
  
      final DynamicRefTable dynamicRefTable =
          am.getResources().getDynamicRefTableForCookie(assetCookie);
      ResXMLTree block = new ResXMLTree(dynamicRefTable);
      int err = block.setTo(a.getBuffer(true), (int) a.getLength(), true);
      a.close();
  //    delete a;
  
      if (err != NO_ERROR) {
        throw new FileNotFoundException("Corrupt XML binary file");
      }
  
      return RuntimeEnvironment.castNativePtr(
          Registries.NATIVE_RES_XML_TREES.register(block));
    }
docs: int getThemeChangingConfigurations(long theme);