├── .github └── workflows │ ├── force_release.yml │ └── release.yml ├── README.md ├── badge_obtainium.png ├── origin-twitter.keystore ├── patch_apk.py └── release_apk.py /.github/workflows/force_release.yml: -------------------------------------------------------------------------------- 1 | name: Force Auto Patch & Release APK 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | jobs: 7 | patch_and_release: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: Checkout repository 11 | uses: actions/checkout@v3 12 | 13 | - name: Set up Python 14 | uses: actions/setup-python@v3 15 | with: 16 | python-version: "3.9" 17 | 18 | - name: Get latest release info from GitHub 19 | id: get_release_piko_and_origin 20 | run: | 21 | CRIMERA_TAG=$(curl -s https://api.github.com/repos/crimera/twitter-apk/releases/latest | jq -r .tag_name) 22 | echo "CRIMERA_TAG=${CRIMERA_TAG}" >> $GITHUB_ENV 23 | MONEFIERA_TAG=$(curl -s https://api.github.com/repos/monefiera/Origin-Twitter/releases/latest | jq -r .tag_name) 24 | echo "MONEFIERA_TAG=${MONEFIERA_TAG}" >> $GITHUB_ENV 25 | 26 | - name: Check if releases match 27 | id: check_releases 28 | run: | 29 | if [ "${{ env.CRIMERA_TAG }}" == "${{ env.MONEFIERA_TAG }}" ]; then 30 | echo "Releases match. Skipping download and processing." 31 | echo "SKIP=false" >> $GITHUB_ENV 32 | else 33 | echo "Releases differ. Proceeding with download and processing." 34 | echo "SKIP=false" >> $GITHUB_ENV 35 | fi 36 | 37 | - name: Install requests and PyYAML 38 | if: ${{ env.SKIP == 'false' }} 39 | run: pip install requests PyYAML 40 | 41 | - name: Install dependencies 42 | if: ${{ env.SKIP == 'false' }} 43 | run: | 44 | sudo apt-get update && sudo apt-get install -y curl wget jq unzip 45 | 46 | - name: Install Android SDK & Build Tools 47 | if: ${{ env.SKIP == 'false' }} 48 | run: | 49 | wget https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip -O sdk-tools.zip 50 | unzip sdk-tools.zip 51 | mkdir -p $HOME/android-sdk/cmdline-tools 52 | mv cmdline-tools $HOME/android-sdk/cmdline-tools/latest 53 | export ANDROID_HOME=$HOME/android-sdk 54 | export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/34.0.0:$PATH 55 | echo "ANDROID_HOME=$ANDROID_HOME" >> $GITHUB_ENV 56 | echo "PATH=$PATH" >> $GITHUB_ENV 57 | yes | sdkmanager --install "platform-tools" "build-tools;34.0.0" "cmdline-tools;latest" 58 | 59 | - name: Set environment variables 60 | if: ${{ env.SKIP == 'false' }} 61 | run: | 62 | echo "ANDROID_HOME=$HOME/android-sdk" >> $GITHUB_ENV 63 | echo "ANDROID_SDK_ROOT=$HOME/android-sdk" >> $GITHUB_ENV 64 | echo "PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/34.0.0:$PATH" >> $GITHUB_ENV 65 | 66 | - name: Install apktool 67 | if: ${{ env.SKIP == 'false' }} 68 | run: | 69 | wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool -O apktool 70 | chmod +x apktool 71 | sudo mv apktool /usr/local/bin/ 72 | wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.9.3.jar -O apktool.jar 73 | sudo mv apktool.jar /usr/local/bin/ 74 | 75 | - name: Create downloads directory if not exists 76 | if: ${{ env.SKIP == 'false' }} 77 | run: mkdir -p downloads 78 | 79 | - name: Download APK file 80 | if: ${{ env.SKIP == 'false' }} 81 | run: | 82 | wget "https://github.com/crimera/twitter-apk/releases/download/${{ env.CRIMERA_TAG }}/twitter-piko-v${{ env.CRIMERA_TAG }}.apk" -O downloads/twitter-piko-v${{ env.CRIMERA_TAG }}.apk 83 | 84 | - name: List files in downloads directory 85 | if: ${{ env.SKIP == 'false' }} 86 | run: ls -l downloads/ 87 | 88 | - name: Run Patch APK script 89 | if: ${{ env.SKIP == 'false' }} 90 | run: python patch_apk.py 91 | 92 | - name: Run Release APK script 93 | if: ${{ env.SKIP == 'false' }} 94 | env: 95 | GITHUB_TOKEN: ${{ secrets.MONE_FIERA_TOKEN }} 96 | run: python release_apk.py 97 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Auto Patch & Release APK 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | jobs: 7 | patch_and_release: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: Checkout repository 11 | uses: actions/checkout@v3 12 | 13 | - name: Set up Python 14 | uses: actions/setup-python@v3 15 | with: 16 | python-version: "3.9" 17 | 18 | - name: Get latest release info from GitHub 19 | id: get_release_piko_and_origin 20 | run: | 21 | CRIMERA_TAG=$(curl -s https://api.github.com/repos/crimera/twitter-apk/releases/latest | jq -r .tag_name) 22 | echo "CRIMERA_TAG=${CRIMERA_TAG}" >> $GITHUB_ENV 23 | MONEFIERA_TAG=$(curl -s https://api.github.com/repos/monefiera/Origin-Twitter/releases/latest | jq -r .tag_name) 24 | echo "MONEFIERA_TAG=${MONEFIERA_TAG}" >> $GITHUB_ENV 25 | 26 | - name: Check if releases match 27 | id: check_releases 28 | run: | 29 | if [ "${{ env.CRIMERA_TAG }}" == "${{ env.MONEFIERA_TAG }}" ]; then 30 | echo "Releases match. Skipping download and processing." 31 | echo "SKIP=true" >> $GITHUB_ENV 32 | else 33 | echo "Releases differ. Proceeding with download and processing." 34 | echo "SKIP=false" >> $GITHUB_ENV 35 | fi 36 | 37 | - name: Install requests and PyYAML 38 | if: ${{ env.SKIP == 'false' }} 39 | run: pip install requests PyYAML 40 | 41 | - name: Install dependencies 42 | if: ${{ env.SKIP == 'false' }} 43 | run: | 44 | sudo apt-get update && sudo apt-get install -y curl wget jq unzip 45 | 46 | - name: Install Android SDK & Build Tools 47 | if: ${{ env.SKIP == 'false' }} 48 | run: | 49 | wget https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip -O sdk-tools.zip 50 | unzip sdk-tools.zip 51 | mkdir -p $HOME/android-sdk/cmdline-tools 52 | mv cmdline-tools $HOME/android-sdk/cmdline-tools/latest 53 | export ANDROID_HOME=$HOME/android-sdk 54 | export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/34.0.0:$PATH 55 | echo "ANDROID_HOME=$ANDROID_HOME" >> $GITHUB_ENV 56 | echo "PATH=$PATH" >> $GITHUB_ENV 57 | yes | sdkmanager --install "platform-tools" "build-tools;34.0.0" "cmdline-tools;latest" 58 | 59 | - name: Set environment variables 60 | if: ${{ env.SKIP == 'false' }} 61 | run: | 62 | echo "ANDROID_HOME=$HOME/android-sdk" >> $GITHUB_ENV 63 | echo "ANDROID_SDK_ROOT=$HOME/android-sdk" >> $GITHUB_ENV 64 | echo "PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/34.0.0:$PATH" >> $GITHUB_ENV 65 | 66 | - name: Install apktool 67 | if: ${{ env.SKIP == 'false' }} 68 | run: | 69 | wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool -O apktool 70 | chmod +x apktool 71 | sudo mv apktool /usr/local/bin/ 72 | wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.11.0.jar -O apktool.jar 73 | sudo mv apktool.jar /usr/local/bin/ 74 | 75 | - name: Create downloads directory if not exists 76 | if: ${{ env.SKIP == 'false' }} 77 | run: mkdir -p downloads 78 | 79 | - name: Download APK file 80 | if: ${{ env.SKIP == 'false' }} 81 | run: | 82 | wget "https://github.com/crimera/twitter-apk/releases/download/${{ env.CRIMERA_TAG }}/twitter-piko-v${{ env.CRIMERA_TAG }}.apk" -O downloads/twitter-piko-v${{ env.CRIMERA_TAG }}.apk 83 | 84 | - name: List files in downloads directory 85 | if: ${{ env.SKIP == 'false' }} 86 | run: ls -l downloads/ 87 | 88 | - name: Run Patch APK script 89 | if: ${{ env.SKIP == 'false' }} 90 | run: python patch_apk.py 91 | 92 | - name: Run Release APK script 93 | if: ${{ env.SKIP == 'false' }} 94 | env: 95 | GITHUB_TOKEN: ${{ secrets.MONE_FIERA_TOKEN }} 96 | run: python release_apk.py 97 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Origin-Twitter 2 | [Get it on Obtainium](https://apps.obtainium.imranr.dev/redirect?r=obtainium://app/%7B%22id%22%3A%22com.twitter.android%22%2C%22url%22%3A%22https%3A%2F%2Fgithub.com%2Fmonefiera%2FOrigin-Twitter%22%2C%22author%22%3A%22monefiera%22%2C%22name%22%3A%22Twitter%22%2C%22preferredApkIndex%22%3A1%2C%22additionalSettings%22%3A%22%7B%5C%22includePrereleases%5C%22%3Afalse%2C%5C%22fallbackToOlderReleases%5C%22%3Atrue%2C%5C%22filterReleaseTitlesByRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22filterReleaseNotesByRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22verifyLatestTag%5C%22%3Afalse%2C%5C%22dontSortReleasesList%5C%22%3Afalse%2C%5C%22useLatestAssetDateAsReleaseDate%5C%22%3Afalse%2C%5C%22releaseTitleAsVersion%5C%22%3Afalse%2C%5C%22trackOnly%5C%22%3Afalse%2C%5C%22versionExtractionRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22matchGroupToUse%5C%22%3A%5C%22%5C%22%2C%5C%22versionDetection%5C%22%3Afalse%2C%5C%22releaseDateAsVersion%5C%22%3Afalse%2C%5C%22useVersionCodeAsOSVersion%5C%22%3Afalse%2C%5C%22apkFilterRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22invertAPKFilter%5C%22%3Afalse%2C%5C%22autoApkFilterByArch%5C%22%3Atrue%2C%5C%22appName%5C%22%3A%5C%22Origin%20Twitter%5C%22%2C%5C%22shizukuPretendToBeGooglePlay%5C%22%3Afalse%2C%5C%22allowInsecure%5C%22%3Afalse%2C%5C%22exemptFromBackgroundUpdates%5C%22%3Afalse%2C%5C%22skipUpdateNotifications%5C%22%3Afalse%2C%5C%22about%5C%22%3A%5C%22Colorful%20mod%20Twitter%20by%20MONE%20FIERA%5C%22%2C%5C%22refreshBeforeDownload%5C%22%3Afalse%7D%22%2C%22overrideSource%22%3Anull%7D)
3 | ![GitHub Downloads](https://img.shields.io/github/downloads/monefiera/Origin-Twitter/total?color=green&style=for-the-badge&logo=github) 4 | ![GitHub Issues](https://img.shields.io/github/issues/monefiera/Origin-Twitter?style=for-the-badge&logo=github) 5 | ![GitHub Pull Requests](https://img.shields.io/github/issues-pr/monefiera/Origin-Twitter?style=for-the-badge&logo=github)
6 | My Personal Twitter-mod Build for Colorful Lovers. based on [Piko](https://github.com/crimera/piko)
7 | 8 | ## Note 9 | - [kitadai31](https://github.com/kitadai31) [implemented a language conversion patch in Piko based on my previous method](https://github.com/crimera/piko/pull/430). Thank you so much! 10 | - Also therealswak/Swakshan, co-Founder of Piko, [was positive about implementing the color patch into Piko](https://t.me/pikopatches/1/17092). So [I opened a issue](https://github.com/crimera/piko/issues/431) and shared what I've done for developers in this README. 11 | - When the color patch is implemented in Piko, this repository will be completely finished its role(i.e., it will become a public archive and will no longer be updated). 12 | 13 | ## About this 14 | Piko-Twitter Mod with 10 theme colors
15 | 16 | ### Important Section 17 | **The new method is to get the apk from [crimera/twitter-apk](https://github.com/crimera/twitter-apk) repository and apply the patch script!**
18 | 19 | This means that users can no longer choose between Piko or Hachidori, but instead I can provide rapidly-updates with each release of crimera.
20 | Currently, I use the prebuilt apk from crimera, but in the future I'll improve it to download from [apkmirror](https://www.apkmirror.com/apk/x-corp/twitter/), do AntiSplit process, and apply Piko, just like the original repository.
21 | 22 | 23 | (To piko Developers) Please let me know if there are any rights issues with this modification, ~~except for Elon~~
24 | 25 | ## Changes from original crimera's apk 26 | - You can choose your favorite from 10 colors themes
27 | ・All signatures are the same, so colors can be easily changed by re-installing the app (since v10.80.1)
28 | ・Origin Blue appears to have no significant change over the original, but minor color adjustments have been made
29 | 30 | ## Color Menu 31 | ①Original Colors from Twitter for Web
32 | 💧Origin Blue(#1d9bf0)
33 | ⭐Star Gold(#fed400)
34 | 🌸Sakura Red(#f91880)
35 | 🐙Octopus Purple(#7856ff)
36 | 🔥Flare Orange(#ff7a00)
37 | 🥑Avocado Green(#31c88e)
38 | 39 | And also you can choose my best colors
40 | 41 | ②FIERA's Additional Colors
42 | 🌹Crimsonate(#c20024)
43 | 💎Izumo Lazurite(#1e50a2)
44 | ☁Monotone(#808080)
45 | 🩷MateChan Pink(#ffadc0)
46 | 47 | ## How to make colorful mod (for piko developers) 48 |
49 | This may be a little confusing, but please use it as hints for a complete color patch implementation and Bring Back Twitter fix.
50 | This covers of piko's Bring Back Twitter patch partially.
51 |
52 | 1: Replace “?dynamicColorGray1100” or “@color/gray_1100” in this files with “@color/twitter_blue”.
53 | ・res\layout\ocf_twitter_logo.xml
54 | ・res\layout\channels_toolbar_main.xml
55 | ・res\layout\login_toolbar_seamful_custom_view.xml
56 | ・style name="Theme.LaunchScreen"'s [windowSplashScreenBackground] in res\values\styles.xml
57 | ・[ic_launcher_background] in res\values\colors.xml
58 | 59 | 2: Replace “#ff1d9bf0” or "#ff1da1f2" with “@color/twitter_blue” in this files.
60 | ・res\drawable\all_links_nudge_title_icon.xml
61 | ・res\drawable\ic_ellipses.xml
62 | ・res\drawable\ic_map_pin.xml
63 | ・res\drawable\ic_toast_survey_complete.xml
64 | ・res\drawable\ic_toxicity.xml
65 | ・res\drawable\ic_vector_camera_shortcut.xml
66 | ・res\drawable\ic_vector_colorpicker_off.xml
67 | ・res\drawable\ic_vector_colorpicker.xml
68 | ・res\drawable\ic_vector_follow_tint.xml
69 | ・res\drawable\ic_vector_illustration_ocf_contacts.xml
70 | ・res\drawable\ic_vector_illustration_sparkle_off.xml
71 | ・res\drawable\ic_vector_location_blue_tint.xml
72 | ・res\drawable\ic_vector_medium_camera_live_stroke_tint.xml
73 | ・res\drawable\ic_vector_medium_camera_stroke_tint.xml
74 | ・res\drawable\ic_vector_medium_camera_video_stroke_tint.xml
75 | ・res\drawable\ic_vector_medium_photo_stroke_tint.xml
76 | ・res\drawable\ic_vector_medium_trashcan_stroke_tint.xml
77 | ・res\drawable\ic_vector_search_shortcut.xml
78 | ・res\drawable\ps__bg_hydra_label.xml
79 | ・res\drawable\ps__ic_new_hydra_first_time_dialog_cancel.xml
80 | 81 | From here on down, styles and colors indicate the xml under the res\values.
82 | 83 | 3: In styles.xml, change value of “coreColorBadgeVerified” for **