code: @Implementation(minSdk = P)
    protected static long nativeOpenNonAsset(long ptr, int jcookie, @NonNull String asset_path,
        int access_mode) throws FileNotFoundException {
      ApkAssetsCookie cookie = JavaCookieToApkAssetsCookie(jcookie);
      String asset_path_utf8 = asset_path;
      if (asset_path_utf8 == null) {
        // This will throw NPE.
        return 0;
      }
  
      ATRACE_NAME(String.format("AssetManager::OpenNonAsset(%s)", asset_path_utf8));
  
      if (access_mode != Asset.AccessMode.ACCESS_UNKNOWN.mode()
          && access_mode != Asset.AccessMode.ACCESS_RANDOM.mode()
          && access_mode != Asset.AccessMode.ACCESS_STREAMING.mode()
          && access_mode != Asset.AccessMode.ACCESS_BUFFER.mode()) {
        throw new IllegalArgumentException("Bad access mode");
      }
  
      CppAssetManager2 assetmanager = AssetManagerFromLong(ptr);
      Asset asset;
      if (cookie.intValue() != kInvalidCookie) {
        asset = assetmanager.OpenNonAsset(asset_path_utf8, cookie,
            Asset.AccessMode.fromInt(access_mode));
      } else {
        asset = assetmanager.OpenNonAsset(asset_path_utf8,
            Asset.AccessMode.fromInt(access_mode));
      }
  
      if (!isTruthy(asset)) {
        throw new FileNotFoundException(asset_path_utf8);
      }
      return Registries.NATIVE_ASSET_REGISTRY.register(asset);
    }
docs: jstring asset_path, jint access_mode) {