pookjw/HermesEnabler

Enable Hermès Watch Faces on any Apple Watch devices

Objective-C★ 1,613+218 that day#4 on trending

Analyzed November 13, 2026 at a0101c4 (main) with jscpd v5 in 0.9s.

C61.4/100
Project health6,160 lines of code (S)
Duplication79
2.8% in swift, objectivec, c-header, bash, python, c
Dead coden/a
the languages dead code reads are under 5% of the code
Complexity48
63.3%

The score is jscpd's own --health model: markup, data and text left out, tests kept. The numbers below are the trending scan's.

2.83%duplicated code · 171 of 6,032 lines
17clones in code
29code files of 50 scanned
3.25%duplicated over all files · 26 clones

The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code.

Largest clones in the code

  • 13 lines in 4 placesobjectivec197 tokens
    1426    if (err) *err = NSLocalizedString(@"The required face values are missing from the cache; no changes were made.", nil);
    1427    return NO;
    1428}
    1429
    1430void *mg = NULL, *io = NULL;
    1431bq_native_libraries(&mg, &io);
    1432void *(*createCache)(void *, const void **, const void **, long, void *) = mg ? dlsym(mg, "MGCreateInMemoryCache") : NULL;
    1433CFTypeRef (*copyAnswer)(CFStringRef, void *, void *, int *) = mg ? dlsym(mg, "MGCopyAnswerWithCache") : NULL;
    1434void (*destroyCache)(void *) = mg ? dlsym(mg, "MGCacheDestroy") : NULL;
    1435uint32_t (*entryFromPath)(uint32_t, const char *) = io ? dlsym(io, "IORegistryEntryFromPath") : NULL;
    
    1528    if (err) *err = NSLocalizedString(@"Native control recovery is unavailable for this watchOS build.", nil);
    1529    return NO;
    1530}
    1531void *mg = NULL, *io = NULL;
    1532bq_native_libraries(&mg, &io);
    1533void *(*createCache)(void *, const void **, const void **, long, void *) = mg ? dlsym(mg, "MGCreateInMemoryCache") : NULL;
    1534CFTypeRef (*copyAnswer)(CFStringRef, void *, void *, int *) = mg ? dlsym(mg, "MGCopyAnswerWithCache") : NULL;
    1535void (*destroyCache)(void *) = mg ? dlsym(mg, "MGCacheDestroy") : NULL;
    1536uint32_t (*entryFromPath)(uint32_t, const char *) = io ? dlsym(io, "IORegistryEntryFromPath") : NULL;
    1537CFTypeRef (*copyProperty)(uint32_t, CFStringRef, CFAllocatorRef, uint32_t) = io ? dlsym(io, "IORegistryEntryCreateCFProperty") : NULL;
    

    First 10 of 13 lines, the second copy on the right.

  • 8 lines in 3 placesobjectivec78 tokens
    1601    extra[@"MQJ1mlVrhOwaUUVJehJSVA"] = @YES;
    1602}
    1603plist[@"CacheData"] = data;
    1604plist[@"CacheExtra"] = extra;
    1605if (!BQSaveGestalt(plist, err)) return NO;
    1606NSDictionary *saved = BQLoadGestalt(err);
    1607if (![saved[@"CacheData"] isEqual:data] || ![saved[@"CacheExtra"] isEqual:extra]) {
    1608    if (err) *err = NSLocalizedString(@"The control values were written but could not be verified.", nil);
    
    1674    return NO;
    1675}
    1676plist[@"CacheData"] = data;
    1677plist[@"CacheExtra"] = extra;
    1678if (!BQSaveGestalt(plist, err)) return NO;
    1679NSDictionary *saved = BQLoadGestalt(err);
    1680if (![saved[@"CacheData"] isEqual:data] || ![saved[@"CacheExtra"] isEqual:extra]) {
    1681    if (err) *err = NSLocalizedString(@"The additional values were written but could not be verified.", nil);
    
  • 14 lines in 2 placesobjectivec95 tokens
    2091if (!BQBackupExists()) {
    2092    if (err) *err = NSLocalizedString(@"Back up MobileGestalt first.", nil);
    2093    return NO;
    2094}
    2095
    2096NSMutableDictionary *plist = BQLoadGestalt(err);
    2097if (!plist) return NO;
    2098id cacheExtra = plist[@"CacheExtra"];
    2099if (![cacheExtra isKindOfClass:[NSDictionary class]]) {
    2100    if (err) *err = NSLocalizedString(@"MobileGestalt CacheExtra is missing or invalid.", nil);
    
    2149if (!BQBackupExists()) {
    2150    if (err) *err = NSLocalizedString(@"Back up MobileGestalt first.", nil);
    2151    return NO;
    2152}
    2153NSMutableDictionary *plist = BQLoadGestalt(err);
    2154if (!plist) return NO;
    2155id cacheExtra = plist[@"CacheExtra"];
    2156if (![cacheExtra isKindOfClass:[NSDictionary class]]) {
    2157    if (err) *err = NSLocalizedString(@"MobileGestalt CacheExtra is missing or invalid.", nil);
    2158    return NO;
    

    First 10 of 14 lines, the second copy on the right.

7 more
Largest clones over all files, tests and data included
  • 7 lines in 10 placesmarkdowndocs and examples124 tokens
    1# HermesEnabler 2
    2
    3[English](README.md) · [Tiếng Việt](README.vi.md) · [한국어](README.ko.md) · [简体中文](README.zh-CN.md) · [繁體中文](README.zh-TW.md) · [日本語](README.ja.md) · [Español](R…
    4
    5![](image.png)
    6
    7> Nur mit watchOS 27.0 bis watchOS 27.3 Beta 1 kompatibel.
    
    1# HermesEnabler 2
    2
    3[English](README.md) · [Tiếng Việt](README.vi.md) · [한국어](README.ko.md) · [简体中文](README.zh-CN.md) · [繁體中文](README.zh-TW.md) · [日本語](README.ja.md) · [Español](R…
    4
    5![](image.png)
    6
    7> Compatible únicamente con watchOS 27.0 hasta watchOS 27.3 beta 1.
    
  • 13 lines in 4 placesobjectivec197 tokens
    1426    if (err) *err = NSLocalizedString(@"The required face values are missing from the cache; no changes were made.", nil);
    1427    return NO;
    1428}
    1429
    1430void *mg = NULL, *io = NULL;
    1431bq_native_libraries(&mg, &io);
    1432void *(*createCache)(void *, const void **, const void **, long, void *) = mg ? dlsym(mg, "MGCreateInMemoryCache") : NULL;
    1433CFTypeRef (*copyAnswer)(CFStringRef, void *, void *, int *) = mg ? dlsym(mg, "MGCopyAnswerWithCache") : NULL;
    1434void (*destroyCache)(void *) = mg ? dlsym(mg, "MGCacheDestroy") : NULL;
    1435uint32_t (*entryFromPath)(uint32_t, const char *) = io ? dlsym(io, "IORegistryEntryFromPath") : NULL;
    
    1528    if (err) *err = NSLocalizedString(@"Native control recovery is unavailable for this watchOS build.", nil);
    1529    return NO;
    1530}
    1531void *mg = NULL, *io = NULL;
    1532bq_native_libraries(&mg, &io);
    1533void *(*createCache)(void *, const void **, const void **, long, void *) = mg ? dlsym(mg, "MGCreateInMemoryCache") : NULL;
    1534CFTypeRef (*copyAnswer)(CFStringRef, void *, void *, int *) = mg ? dlsym(mg, "MGCopyAnswerWithCache") : NULL;
    1535void (*destroyCache)(void *) = mg ? dlsym(mg, "MGCacheDestroy") : NULL;
    1536uint32_t (*entryFromPath)(uint32_t, const char *) = io ? dlsym(io, "IORegistryEntryFromPath") : NULL;
    1537CFTypeRef (*copyProperty)(uint32_t, CFStringRef, CFAllocatorRef, uint32_t) = io ? dlsym(io, "IORegistryEntryCreateCFProperty") : NULL;
    

    First 10 of 13 lines, the second copy on the right.

  • 8 lines in 3 placesobjectivec78 tokens
    1601    extra[@"MQJ1mlVrhOwaUUVJehJSVA"] = @YES;
    1602}
    1603plist[@"CacheData"] = data;
    1604plist[@"CacheExtra"] = extra;
    1605if (!BQSaveGestalt(plist, err)) return NO;
    1606NSDictionary *saved = BQLoadGestalt(err);
    1607if (![saved[@"CacheData"] isEqual:data] || ![saved[@"CacheExtra"] isEqual:extra]) {
    1608    if (err) *err = NSLocalizedString(@"The control values were written but could not be verified.", nil);
    
    1674    return NO;
    1675}
    1676plist[@"CacheData"] = data;
    1677plist[@"CacheExtra"] = extra;
    1678if (!BQSaveGestalt(plist, err)) return NO;
    1679NSDictionary *saved = BQLoadGestalt(err);
    1680if (![saved[@"CacheData"] isEqual:data] || ![saved[@"CacheExtra"] isEqual:extra]) {
    1681    if (err) *err = NSLocalizedString(@"The additional values were written but could not be verified.", nil);
    
  • 14 lines in 2 placesobjectivec95 tokens
  • 11 lines in 2 placesobjectivec93 tokens
By format, code only
FormatFilesLinesClonesDuplicated linesDuplication
objectivec12,643161626.13%
swift243,060190.29%
c-header2186000%
bash1115000%
python128000%
By format, all files
FormatFilesLinesClonesDuplicated linesDuplication
objectivec12,643161626.13%
markdown179929636.35%
swift243,060190.29%
c-header2186000%
bash1115000%
python294000%
c162000%
markup134000%
txt121000%

Trending appearances

DayRankStarsFilesLinesClonesAll filesCodeHealthCommit
Nov 13, 2026#41,613 (+218)507,207263.25%2.83%C 61.4a0101c4

Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.