code: public Asset openNonAsset(final String fileName, AccessMode mode, Ref<Integer> outCookie) {
      synchronized (mLock) {
        //      AutoMutex _l(mLock);
  
        LOG_FATAL_IF(mAssetPaths.isEmpty(), "No assets added to AssetManager");
  
        /*
         * For each top-level asset path, search for the asset.
         */
  
        int i = mAssetPaths.size();
        while (i > 0) {
          i--;
          ALOGV("Looking for non-asset '%s' in '%s'\n", fileName,
              mAssetPaths.get(i).path.string());
          Asset pAsset = openNonAssetInPathLocked(
              fileName, mode, mAssetPaths.get(i));
          if (pAsset != null) {
            if (outCookie != null) {
              outCookie.set(i + 1);
            }
            return pAsset != kExcludedAsset ? pAsset : null;
          }
        }
  
        return null;
      }
    }
docs: /*
  Open a non-asset file as if it were an asset.
  
  The "fileName" is the partial path starting from the application name.