breautek commented on issue #1037: URL: https://github.com/apache/cordova-android/issues/1037#issuecomment-666812042
I went ahead and created a cordova project and included all supported apache plugins. I've tested the project using `veridex` and using `./gradlew lint`, according to android [docs](https://developer.android.com/distribute/best-practices/develop/restrictions-non-sdk-interfaces#test-for-non-sdk) for how to test your app for non-sdk interfaces. The project can be found at: [nonsdk.zip](https://github.com/apache/cordova-android/files/5004331/nonsdk.zip) Veridex output: ```norman@norman-ThinkPad:~/Downloads/veridex/bin$ ./appcompat.sh --dex-file=/development/cordova/tests/nonsdk/platforms/android/app/build/outputs/apk/debug/app-debug.apk NOTE: appcompat.sh is still under development. It can report API uses that do not execute at runtime, and reflection uses that do not exist. It can also miss on reflection uses. #1: Reflection greylist-max-q Landroid/graphics/FontFamily;->abortCreation use(s): Landroid/support/v4/graphics/TypefaceCompatApi26Impl;-><clinit>()V #2: Reflection greylist-max-q Landroid/graphics/FontFamily;->addFontFromAssetManager use(s): Landroid/support/v4/graphics/TypefaceCompatApi26Impl;-><clinit>()V #3: Reflection greylist-max-q Landroid/graphics/FontFamily;->addFontFromBuffer use(s): Landroid/support/v4/graphics/TypefaceCompatApi26Impl;-><clinit>()V #4: Reflection greylist-max-q Landroid/graphics/FontFamily;->freeze use(s): Landroid/support/v4/graphics/TypefaceCompatApi26Impl;-><clinit>()V #5: Reflection greylist Landroid/graphics/Typeface;->createFromFamiliesWithDefault use(s): Landroid/support/v4/graphics/TypefaceCompatApi24Impl;-><clinit>()V Landroid/support/v4/graphics/TypefaceCompatApi26Impl;-><clinit>()V #6: Reflection greylist Landroid/media/AudioAttributes;->toLegacyStreamType use(s): Landroid/support/v4/media/AudioAttributesCompatApi21;->toLegacyStreamType(Landroid/support/v4/media/AudioAttributesCompatApi21$Wrapper;)I #7: Reflection greylist Landroid/media/session/MediaSession;->getCallingPackage use(s): Landroid/support/v4/media/session/MediaSessionCompatApi24;->getCallingPackage(Ljava/lang/Object;)Ljava/lang/String; #8: Reflection greylist Landroid/os/Bundle;->getIBinder use(s): Landroid/support/v4/app/BundleCompat$BundleCompatBaseImpl;->getBinder(Landroid/os/Bundle;Ljava/lang/String;)Landroid/os/IBinder; #9: Reflection greylist Landroid/os/Bundle;->putIBinder use(s): Landroid/support/v4/app/BundleCompat$BundleCompatBaseImpl;->putBinder(Landroid/os/Bundle;Ljava/lang/String;Landroid/os/IBinder;)V #10: Reflection greylist Landroid/service/media/MediaBrowserService$Result;->mFlags use(s): Landroid/support/v4/media/MediaBrowserServiceCompatApi26;-><clinit>()V #11: Reflection greylist Landroid/view/LayoutInflater;->mFactory2 use(s): Landroid/support/v4/view/LayoutInflaterCompat;->forceSetFactory2(Landroid/view/LayoutInflater;Landroid/view/LayoutInflater$Factory2;)V #12: Reflection greylist Landroid/view/View;->mAccessibilityDelegate use(s): Landroid/support/v4/view/ViewCompat$ViewCompatBaseImpl;->hasAccessibilityDelegate(Landroid/view/View;)Z #13: Reflection greylist-max-p Landroid/view/View;->mMinHeight use(s): Landroid/support/v4/view/ViewCompat$ViewCompatBaseImpl;->getMinimumHeight(Landroid/view/View;)I #14: Reflection greylist-max-p Landroid/view/View;->mMinWidth use(s): Landroid/support/v4/view/ViewCompat$ViewCompatBaseImpl;->getMinimumWidth(Landroid/view/View;)I #15: Reflection greylist Landroid/view/View;->mRecreateDisplayList use(s): Landroid/support/v4/widget/SlidingPaneLayout$SlidingPanelLayoutImplJB;-><init>()V #16: Reflection greylist-max-p Landroid/view/animation/Animation;->mListener use(s): Landroid/support/v4/app/FragmentManagerImpl;->getAnimationListener(Landroid/view/animation/Animation;)Landroid/view/animation/Animation$AnimationListener; #17: Reflection greylist Landroid/widget/CompoundButton;->mButtonDrawable use(s): Landroid/support/v4/widget/CompoundButtonCompat$CompoundButtonCompatBaseImpl;->getButtonDrawable(Landroid/widget/CompoundButton;)Landroid/graphics/drawable/Drawable; #18: Reflection greylist-max-p Landroid/widget/PopupWindow;->mOverlapAnchor use(s): Landroid/support/v4/widget/PopupWindowCompat$PopupWindowCompatApi21Impl;-><clinit>()V #19: Reflection greylist Landroid/widget/TextView;->mMaxMode use(s): Landroid/support/v4/widget/TextViewCompat$TextViewCompatBaseImpl;->getMaxLines(Landroid/widget/TextView;)I #20: Reflection greylist Landroid/widget/TextView;->mMaximum use(s): Landroid/support/v4/widget/TextViewCompat$TextViewCompatBaseImpl;->getMaxLines(Landroid/widget/TextView;)I Landroid/support/v4/widget/TextViewCompat$TextViewCompatBaseImpl;->getMaxLines(Landroid/widget/TextView;)I #21: Reflection greylist Landroid/widget/TextView;->mMinMode use(s): Landroid/support/v4/widget/TextViewCompat$TextViewCompatBaseImpl;->getMinLines(Landroid/widget/TextView;)I #22: Reflection greylist Landroid/widget/TextView;->mMinimum use(s): Landroid/support/v4/widget/TextViewCompat$TextViewCompatBaseImpl;->getMinLines(Landroid/widget/TextView;)I Landroid/support/v4/widget/TextViewCompat$TextViewCompatBaseImpl;->getMinLines(Landroid/widget/TextView;)I #23: Reflection greylist-max-o Lcom/android/internal/view/menu/MenuBuilder;->removeItemAt use(s): Landroid/support/v4/widget/TextViewCompat$TextViewCompatApi26Impl$1;->recomputeProcessTextMenuItems(Landroid/view/Menu;)V #24: Reflection greylist Llibcore/icu/ICU;->addLikelySubtags use(s): Landroid/support/v4/text/ICUCompat;-><clinit>()V 24 hidden API(s) used: 0 linked against, 24 through reflection 15 in greylist 0 in blacklist 1 in greylist-max-o 4 in greylist-max-p 4 in greylist-max-q To run an analysis that can give more reflection accesses, but could include false positives, pass the --imprecise flag. ``` As you can see, there are some non-sdk interfaces, but they all appear to be inside the android codebase right now... Maybe there's a dependency that we need to update? This apk was built using API 29. Also, perhaps a bit strange, but lint produced these results: [lint-results.html.zip](https://github.com/apache/cordova-android/files/5004338/lint-results.html.zip) If you look at the lint, while they are many issues (some of which probably should be addressed), it hints are no non-sdk interface violations. What do you make about this @alexp25 ? ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
