Repository navigation
Conversation
Reuse the Encryption C ABI across plugins, add Android JNI and an iOS Xcode project, and preserve author-built Mac artifacts for Windows VS packaging. Document the shared runtime contract in the porting skills and add native, ACE, package and cross-machine handoff checks.
Add the common/iOS skill layers, retain the approved shared encryption contract, and generalize FTW-specific architecture and adapter rules. Reuse the verified legacy .ext codec, add idempotent export linking and common-framework embedding, harden Mac/Windows text and binary verification, and keep Runtime sources out of legacy SDK scaffolding.
Preserve FTW's iOS implementation and publishing artifacts while retaining generalized iOS guidance and Fini's approved shared encryption contract. Verify both iOS publishers and Android publishing with 57 Python tests.
Move the owned Xcode project, adapter, build script, tests and Mac handoff inputs to Extensions/iOS/Fini. Move Android configuration and documentation into Android_Gradle, and portable core/ACE files into _DeLib/Fini. Preserve the Windows VS project and ToInstall release workflow. Update generated project, include/build/publisher/manifest paths and enforce the platform-first layout in repository skills. Remove stray positional arguments from OpenSSL preparation. Validation: 57 Python tests, host core and full JNI ACE checks, four real Android ABI builds and binary/package audit, source-inventory checks and git diff --check.
Enable Fini's portable Runtime in the original IniCore.h with FINI_PORTABLE_RUNTIME, retaining the default INI API without mobile/JSON dependencies. Put Android native integration under app/src/main/cpp and move shared encryption build/package integration to its respective Android and iOS projects. Keep the existing Encryption C++ implementation and a single shared runtime; no duplicate algorithms. Update manifests, publishers, Mac handoff locations, documentation and skills. Validate both macro branches, 57 Python tests, full host JNI/ACE regression, four Android ABI builds/audit, standalone common-package source build and source inventories.
Apply the original-source macro or platform-component placement rule automatically to every future plugin and library port. Require Android/iOS skills and repository/skill authoring instructions to preserve it without repeated author prompting. Documentation only; git diff --check passes.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Modifying existing stuff
Port Fini's Windows ACE set to Android JNI and an author-built iOS native library, reusing the existing C++ INI/codecs and Win32 encrypted-asset formats. Plugins call the existing Encryption C ABI; only the common
libofe_encryption.so/ dynamicOFEEncryption.frameworklinks libcrypto.Repository layout and publishing
Extensions/Finiremains the Windows Visual Studio project and existingToInstallrelease staging area.Extensions/iOS/Finiowns the standalone Xcode project, Runtime adapter, build/configuration scripts, tests and Mac handoff inputs. OpenExtensions/iOS/Fini/Fini.xcodeprojand build theFiniXCFrameworkscheme after configuring the local Fusion export.Extensions/Android_Gradleowns Java/JNI adapters, native component targets underapp/src/main/cpp, toolchain/publisher support undercmake, tests andFini-JNI.md. The ACE contract is undertests/fini.Extensions/Fini/IniCore.husingFINI_PORTABLE_RUNTIME. Without that macro the existing INI API requires neither mobile Runtime/JSON nor encryption linkage. There is no additional_DeLib/Finimobile core tree._DeLib/Encryptionsources. Android integration lives underAndroid_Gradle/app/src/main/cpp/Encryptionandcmake/Encryption; Apple build/handoff integration lives underiOS/Encryption. Clients still use one shared runtime. Shared OpenSSL preparation is under_Script/Encryptionand Apple artifact verification underiOS/Tools..extcodec. The target-aware, idempotent export configurator links the native libraries and embeds/signs one common encryption framework, preserving device signing and unrelated flags.The common, Android, iOS and shared-encryption skills document the independent platform projects and approved shared encryption contract. Library adaptations belong in original files behind narrow macros or in the corresponding platform component directory, rather than a Mobile subtree in a Windows library. PR #100 is synchronized, preserving FTW's implementation/artifacts. FTW-specific architecture and algorithm assumptions are not requirements for unrelated plugins.
Fini's archive includes its Objective-C++ adapter, so changes to that compiled source require a Mac rebuild. Export-only loader/configurator edits are packaged on Windows without rebuilding.
Validation
git diff --checkpasses.Remaining platform validation
No Fini Apple binaries, licensed SDK sources or build caches are committed. The author still needs to compile on Mac and verify actual Fusion export, Apple final linking and device behavior. Project-generation/model tests and verified
.extframing do not establish those results. Windows MSBuild and a full Android APK/device test are not claimed. Android common-runtime installation uses explicit exported-project staging; automatic selection of an arbitrary common ZIP by the proprietary exporter is not established.