Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

to do list: #1

Open
martinn000 opened this issue Feb 7, 2023 · 9 comments
Open

to do list: #1

martinn000 opened this issue Feb 7, 2023 · 9 comments

Comments

@martinn000
Copy link
Contributor

martinn000 commented Feb 7, 2023

implement fix for byte size being over previous plist // DONE :D

add function to read and change nsprincipleclass (this is easy and ill do this feb 8th most likely)
change CCLaunchApplicationIdentifier to CCAssociatedBundleIdentifier -- this is easy to code as well. magnifier is the only cc module that uses the launchapp identifier and it will launch the associated bundle if the key is in its info.plist; it will streamline modifying the rest of the cc modules with the second option
implement picker for module being replaced instead of writing name this is easy also
add dnd module add option
implement file select for image to replace module asset
implement serena car wrapper
implement saving of modules ** difficult but important probably

@martinn000
Copy link
Contributor Author

martinn000 commented Feb 7, 2023

implement fix for byte size being over previous plist:
easy fix, just remove unnecessary build IDs in plist by default for any custom module to guarantee low file size since it doesn't matter if it is below the plist size
NOT TRUE :(

sad. not easy, plist has to be exactly the same

// done pull req made

@martinn000
Copy link
Contributor Author

add dnd module: secondary option, maybe keep this out of this app entirely and just add to cowabunga? dunno
entails picking a sacrificeable module and removing its bundle identifier, then adding that same bundle identifier to dnd module plist

@martinn000 martinn000 reopened this Feb 7, 2023
@f1shy-dev
Copy link
Owner

change CCLaunchApplicationIdentifier to CCAssociatedBundleIdentifier -- this is easy to code as well. magnifier is the only cc module that uses the launchapp identifier and it will launch the associated bundle if the key is in its info.plist; it will streamline modifying the rest of the cc modules with the second option

ill do this

@f1shy-dev
Copy link
Owner

f1shy-dev commented Feb 8, 2023

To-do list as of idk

UI/App

  • Make edit UI
  • Add icon picker
  • Settings UI for credits and etc
  • Map icons to each module
  • Map all needed override names for iOS 15/16
  • Mark customisations that don't do anything as not being allowed to be enabled (idk had this in my head)
  • scan default modules and filter IDs to show separation between default modules and the movable ones in the add module UI and in other places
  • On the edit pane, show info such as the bundle of and if its default module and whatever (dev mode in settings maybe)
  • GUI Editing

Actual Functionality

  • Resolve all the sections into operations of some sort
  • Custom icons/app launchers
  • Custom sizes (+large) - also calculate plist file sizing too
  • Move stuff around (later)
  • Export configurations (easy enough)
  • Handle ios15/16 differences
  • Take a image/backup of the ccstate on first launch so changes can be reverted without backboard respring (+TS Devices)
  • Colours
  • Respring/custom actions

@f1shy-dev
Copy link
Owner

respring/both types/xpc crasher as a custom action

@BomberFish
Copy link
Collaborator

imma do that

@f1shy-dev
Copy link
Owner

Writeup?

  • Shortening bundle ID is supported
    • Make any bundleID small which means you can map each module to some 2 letter string
    • free space in DMS file for sizing any module to practically any size
    • Derive a two letter hex ID or something from the module name?
  • Restricted/hidden modules
    • Default bundleIDs are listed as hidden in the ModuleConf file
    • Some need info.plist editing to disable conditional visibility + add correct OS support
  • Resizing
    • Assuming you change all bundleIDs you can change them in DMS too - resize any module
    • You can set bothway or portrait/landscape size for any module
    • Only limitation is the amount of bytes...
  • Moving modules
    • BundleIDs that cant be moved seem to be defined somewhere, probably hardcoded
    • This means you need to change bundleID of (default) modules you want to move
    • They then show up in ModuleConf after respring
      • Flow would be to patch, respring once and then moduleconf auto has all the plist space
      • Could also change all modules to zeros then respring once and moduleconf will have like 2kb extra space (probably only useful if I can find privateframework/call to refresh CC without respring)
      • Alternate flow where you apply all the ID changes and as the app stays running you can watch the ModuleConf and when it changes you quickly add all your modules
  • Note: iOS 15 seems to have two ModuleConf files???

@f1shy-dev
Copy link
Owner

f1shy-dev commented Mar 6, 2023

extension String {
    func checksum() -> String {
        return "\(self.prefix(1))\(String(format: "%02x", self.utf8.reduce(0, { $0 ^ $1 })))"
    }
}

3 letter hashing function thing to use for module bundleIDs

@f1shy-dev
Copy link
Owner

PROTOTYPE module size in info.plist is a sizing setting below priority of DMS, but make DMS empty and now you have per module sizing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants