はてなキーワード: apkとは
ちょうどタイミングよく近所のゲオで新品のFire stick TVが定価の4割引くらい(2500円)で売っていた。
Chatgptにたずねると
「Chromecastの完全上位互換みたいなもんだから安心して買っていい。
君が求めてる"ミラーリングではなく、タブレットからアプリ単位で映像をキャストする"という機能もChromecast同様あるから安心して」
が無課金だと時間制限で打ち切られる(Air Screen)と判明。
ていうか、FireのほうにこのAir Screenなるアプリをわざわざ入れないとキャストすらできないのは衝撃だった。Chromecastはいちいちこっちでアプリ探して入れなくても大人しくキャストされてくれる。
Air Screenの存在に行き着くまでどれほど調べたことか。
で、せっかく開発者オプションいじったりaptoideを入れたりしても、結局はGoogle playstoreにあってFireのほうじゃそもそも存在しないアプリばかりでクソオブクソだった。
また、
例えばアプリ検索時に「Rちゃんねる」だと検索結果に出なくて、「Rチャンネル」と入力すれば一発で出てくるところとか90年代のネットを彷彿とさせた。
酷く文字入力がしにくいリモコンを使って、わざわざインストールしたアプリのブラウザ上で検索をかけながら、やっとの思いでapkを見つけてもインストールできない(Chatgptに聞いたらfireに64bitのapkはインストールできない仕様だとか言ってた)というパターンが大半でとにかくFire自体がゴミという感想に尽きる。
本当に買わなきゃ良かったと思った。
タブレット側でx-castという無料アプリを使いさえすればアプリ映像をテレビに時間制限なく無課金でキャストできていたこれまでのChromecast時代がどれほど楽だったか思い知った。
在数字资产市场风起云涌的时代,掌握实时行情信息和项目动态对于每一位投资者而言都是至关重要的。特别是对于刚入圈的新手而言,信息的准确性和时效性将直接影响投资决策。而“非小号APP”正是这样一个高效、权威、易上手的工具,为投资者提供一站式数字货币行情及数据服务。
这篇文章将从下载指南、核心功能讲解、操作技巧与实用案例、用户常见问题解答四个维度展开,带你全面认识非小号APP,轻松实现对数字资产的实时掌握与便捷管理。
很多新用户在第一次接触非小号时,最关心的问题之一就是:我应该从哪里下载非小号APP才最安全?
1. 官方下载链接最可靠
首先,我们强烈建议用户前往 非小号官网 获取官方下载渠道。这样可以避免遭遇假冒应用或钓鱼网站,保障账户信息与资产安全。
无论你是安卓用户还是苹果用户,非小号都提供对应版本的客户端,下载流程如下:
安卓用户:可在官网扫码或点击下载APK安装包,系统将提示是否安装外部来源应用,请勾选允许。
iOS用户:通过官网跳转至App Store或TestFlight页面,按照页面指引完成安装。
非小号不涉及交易或资产托管,其主要功能是数据聚合和展示,因此不需要你输入助记词、私钥等敏感信息。这也大大降低了被盗风险,但仍建议用户不要在第三方平台下载非小号安装包,避免中毒或恶意篡改。
3. 安装后快速设置
首次打开非小号APP时,你可以根据需求选择是否注册账号。未注册用户同样可以使用大部分核心功能,如行情查询、币种搜索、K线浏览等。若你需要收藏币种、自定义提醒或保存设置,则建议注册并绑定手机号或邮箱,提升使用体验。
非小号APP以“简单直观+数据全面”著称,界面设计紧凑但不复杂,下面带你快速掌握几个高频实用功能:
1. 实时行情浏览
打开APP首页,即可看到主流币种的实时价格、涨跌幅、成交额、24小时趋势图。你还可以通过切换“币种榜单”,查看涨幅榜、跌幅榜、新上线币种、主流平台币等不同视角的数据。
支持上千种币种,聚合全球主流交易所数据
可以按交易对、涨跌幅、成交量筛选
每个币种支持点击查看详细行情页,包括价格图、流通市值、换手率等关键指标
2. 币种详情与K线图分析
进入任一币种详情页,你可以查看其在不同交易所的价格、交易量分布,以及历史K线走势。
支持按分钟、小时、天、周、月切换时间周期,还内置多种常用指标如:
MA移动平均线
MACD动能指标
KDJ、RSI震荡指标等
这对于短线和中线投资者分析趋势非常有帮助。
3. 项目基本面资料
币种页内嵌了详细的项目介绍,包括:
项目团队与愿景
官网地址、白皮书、GitHub链接
新手想了解某个币种是否靠谱,只需一页就能快速判断其背景、是否有实质性开发等。
4. 自定义提醒与关注功能
在每个币种详情页,你都可以点击“关注”或“提醒”按钮,设置:
价格区间提醒(例如跌破30,000 USDT)
添加到关注列表,随时追踪
提醒可通过APP通知或系统推送发送,不再错过重要行情机会。
仅仅了解功能还不够,学会如何高效组合使用这些工具,才能真正将非小号变为投资的“情报中心”。以下是一些来自用户反馈总结的操作技巧与案例:
1. 设置自定义首页,只看你关注的币种
你可以在“我的”设置中启用自定义首页功能,移除你不感兴趣的项目,仅展示你真正关心的币。这样一打开APP就能看到自己的币种实时动态,节省浏览时间。
看到币种在多个交易所价格差异较大,可决定在哪个平台交易更划算
3. 实时监控小币种动态
很多小币涨幅大,但因为分布在冷门交易所或新上线,主流资讯平台难以及时覆盖。而非小号的“新币上线”与“交易所行情聚合”功能,能帮你捕捉这些早期信号。
4. 导出行情数据,做投资复盘
如果你习惯做交易记录或周报分析,可使用数据导出功能,将历史K线、涨跌幅等导出成表格,用Excel进行整理与归档。
通过以上方式,非小号不仅仅是行情查看工具,更是你研究趋势、判断热度、制定策略的中枢大脑。
为了帮助你更顺利地使用非小号APP,我们整理了一些常见问题并附上简洁解答:
Q1:非小号是否安全?是否涉及钱包或资金托管?
答:非小号不提供交易或钱包服务,不涉及资产托管。它只用于查看行情和项目信息,非常适合风险意识强的新手用户使用。
Q2:数据是实时的吗?有没有延迟?
答:非小号的数据来自多个交易所API,行情基本是实时更新,部分冷门交易对可能存在轻微延迟,但整体体验顺畅可靠。
Q3:能不能在非小号上直接买币?
答:不能。非小号是行情聚合平台,不承担买卖撮合功能。你可以在上面查行情后前往币安、OKX等交易所进行下单。
Q4:怎么设置涨跌提醒?
答:在任何一个币种详情页点击右上角的“提醒”图标,输入你的价格阈值,选择提醒方式即可。提醒通过推送发送,无需手动刷新。
答:非小号内嵌“知识学院”栏目,定期更新关于区块链基础、项目解读、K线分析等文章,非常适合边学边练的新手用户。
数字资产的投资机会稍纵即逝,而投资的前提是信息的准确与实时性。通过本文,你已经掌握了非小号APP的下载方式、核心功能、高效操作方法与常见疑问解答。如果你也希望开启理性、安全、高效的数字货币投资之旅,不妨现在就前往 非小号下载,或访问 非小号官网,开启你的实时行情掌控体验。
エロ同人サイトを見るのに使っていた骨とう品タブレット(Android7)
動画閲覧用のタブレットのOSがYoutubeの対象から外れてしまったので買い替えることになり
バージョンが上がったことによって広告タブが自動で開くようになってしまった
広告ブロックしても設定変えても別ブラウザ導入してもどうしようもない
おそらくサイトで使われているタブ開く仕組みが骨とう品タブレットのブラウザに対応してなくて
快適に使えていたのだと思われる
電源ボタンの反応がクッソ悪くなってて付けるまで時間がかかるので買い替えたいんだが
バージョン上げた時のサイト閲覧が不快すぎて買い替えることもできない
今一番コスト対性能が高いのはPOCO X7 Proだけど
個人輸入を厭わない人ならこのページにある機種らへんが選択肢になると思う
https://androplus.jp/entry/poco-x7-pro-sale-20250317/
X7 Proが4.3万、X7が3.3万、去年モデルのX6 Proが黄3.7万↓黒灰3.8万↑、Redmi Note 14が2.1万のセール価格になる
https://androplus.jp/entry/poco-x6-sale-20250318/
グローバル版だから充電器にアダプタが必要で(多分おまけでつけてくれる)、X7 Pro以外は技適がなくて、国内流通機種じゃないからNFCはついててもマイナアプリとかはPlayストアで対応外って弾かれる可能性あるけど(たぶんapkでいけるだろうが)
ここだと有識者が多そうなので、是非お知恵を貸してほしい。
Androidスマホに無線接続した入力デバイスからの入力を置き換えることで、YouTubeやNetflix等のアプリで、巻戻し、早送り、前の動画への移動、次の動画への移動を実現したい。
なお、Galaxyだと標準の設定でマウスからの入力をカスタマイズできるらしいけど、いま使用しているスマホはカスタマイズできない。
※そもそも入力を巻戻し、早送り等の特定機能に紐付けることができるかは不明。
・Google Pixel 7 Pro (Androidバージョンは14)
・Huawei P30 lite(Androidバージョンは不明※いま手元にないが、常に最新にアップデートしている)
実現方法は以下があると思うけど、①だと最も嬉しく、数字が大きくなるほど避けたい方法。
できない場合はできないと教えてもらえると嬉しい。
Google Playでの公開でも、apkを配布しているケースでも、どちらでも可。
該当するアプリがあれば教えてほしい。
そんなデバイスがあれば教えてほしい。
ざっくり要件だけど、以下を実現するアプリを自作するのに参考となるサイトや答え(コード)を教えてほしい。
習得コストも含めてそんなに時間をかけて実装したくないという前提で、どんな言語をどんな環境で実装すればよいかも教えて貰えると嬉しい。
こちらに関しては製品のアップデートも難しいだろうから、ほぼほぼ無理だと思っている。
長くなったけど、有識者がいれば教えて欲しい。
Device Info は、高度なユーザー インターフェースとウィジェットを使用してモバイルデバイスに関する完全な情報を提供するシンプルで強力な Android アプリケーションです。たとえば、デバイス情報/ 電話情報には、CPU、RAM、OS、センサ、ストレージ、バッテリー、SIM、Bluetooth、ネットワーク、インストール済みアプリ、システム アプリ、ディスプレイ、カメラ、温度などに関する情報が含まれます。また、デバイス情報/ 電話情報は、ハードウェア テストでデバイスのベンチマークを行うことができます。
中身 : 👇 👇
👉 ダッシュボード : RAM、内部ストレージ、外部ストレージ、バッテリー、CPU、利用可能なセンサ、インストール済みアプリ & 最適化
👉 デバイス : デバイス名、モデル、メーカー、デバイス、ボード、ハードウェア、ブランド、IMEI、ハードウェア シリアル、SIM シリアル、SIM サブスクライバー、ネットワークオペレータ、ネットワークタイプ、WiFi Mac アドレス、ビルドフィンガープリント & USB ホスト
👉 システム : バージョン、コード名、API レベル、リリース バージョン、1 つの UI バージョン、セキュリティ パッチ レベル、ブートローダー、ビルド番号、ベースバンド、Java VM、カーネル、言語、ルート管理アプリ、Google Play サービスバージョン、Vulkan のサポート、Treble、シームレスな更新、OpenGL ES およびシステム稼働時間
👉 CPU : Soc - システム オン チップ、プロセッサ、CPU アーキテクチャ、サポート対象の ABI、CPU ハードウェア、CPU ガバナー、コア数、CPU 周波数、実行中のコア、GPU レンダラー、GPU ベンダー & GPU バージョン
👉 バッテリー : ヘルス、レベル、ステータス、電源、テクノロジー、温度、電圧と容量
👉 ネットワーク : IP アドレス、ゲートウェイ、サブネット マスク、DNS、リース期間、インターフェイス、周波数、リンク速度
👉 ネットワーク : IP アドレス、ゲートウェイ、サブネット マスク、DNS、リース期間、インターフェイス、周波数、リンク速度
👉 ディスプレイ : 解像度、密度、フォント スケール、物理サイズ、サポートされているリフレッシュレート、HDR、HDR 機能、明るさのレベルとモード、画面のタイムアウト、向き
👉 メモリ : RAM、RAM タイプ、RAM 周波数、ROM、内部ストレージ、外部ストレージ
👉 センサー : センサー名、センサベンダー、ライブセンサ値、タイプ、電力、ウェイクアップセンサ、ダイナミックセンサ、最大距離
👉 アプリ : ユーザーアプリ、インストール済みアプリ、アプリバージョン、最小 OS、ターゲット OS、インストール日、更新日、アクセス許可、アクティビティ、サービス、プロバイダ、レシーバー、抽出アプリ Apk
👉 アプリアナライザー : 高度なグラフを使用して、すべてのアプリケーションを分析します。また、ターゲット SDK、最小 SDK、インストール場所、プラットフォーム、インストーラ、および署名によってグループ化することもできます。
ディスプレイ、マルチタッチ、懐中電灯、ラウドスピーカー、イヤースピーカー、マイク、耳近接、光センサ、加速度計、振動、Bluetooth、WI-Fi、指紋、音量アップボタン、音量ダウンボタンをテストできます。
👉 温度 : システムによって指定されたすべての温度ゾーンの値
👉 カスタマイズ可能なウィジェット : 最も重要な情報を表示する 3 つのサイズの完全にカスタマイズ可能なウィジェット
👉 レポートのエクスポート : カスタマイズ可能なレポートのエクスポート、テキストレポートのエクスポート、PDF レポートのエクスポート
権限 👇 👇
READ_PHONE_STATE - ネットワーク情報を取得するには
BLUETOOTH_CONNECT - Bluetooth テスト
Sunwin | Tải Game Sun Win APK/IOS | Uy tín Hàng Đầu châu Á. Sunwin cổng game bài đổi thưởng số 1 Sunwin ông lớn trong thị trường game tại Việt Nam. Game bài Sunwin được biết đến là sòng bài macau quốc tế thu nhỏ và cho phép người chơi trải nghiệm hoàn toàn miễn phí. Cổng game đổi thưởng đang dẫn đầu về chất lượng trải nghiệm và chất lượng nhất Việt Nam. Hiện nay cổng game bài đổi thưởng Sunwin đã xây dựng cập nhật một hệ thống một cách bài bản ở phiên bản Sunwin 14
iPhoneからandroid(pixel7 pro)に移行したんだけど、フリック精度が悪い
Twitterや5chブラウザや漫画アプリで画像を開いて、次のページに移動するのにフリック操作をするんだけど、iPhoneやiPadminiなら軽くフリックするだけで移動できるのにPixel7だとちょっと強く(?)フリックしないといけない
なんかこういう、ちょっとした操作の精度が全体的に5年前のiPhoneにすら追いついていない
Galaxyも触らせてもらったけど同じような感じ。
iPhoneと違ってapkファイルで簡単に非公式アプリをインストールできる利点が大きすぎるからandroidに移行したことは後悔してないし次もandroidにする予定だけど、もうちょっと頑張ってほしい。
議論がすっ飛んで聞こえると思うけど
如何に効率良くそのゲームを攻略するかという意味でのハッキングは3種類に分かれるのね
ポケモンで言うとさ
その1. 捕獲厳選や孵化厳選:ゲーム外のツール等を用いずに手作業で完結する攻略法。 手作業・人力で再現できることのみ行う
その2. 乱数調整:ゲーム外のツールを用いるが、ゲーム自体には侵襲しない攻略法。 「手作業・人力で再現することは理論上可能だが現実的には不可能」なことを再現する
その3. 改造:ゲーム外のツールによってゲーム自体に侵襲する攻略法。 ツール無しで再現することが理論的に不可能な状態を再現する
通常ガチャマクロに関しての侃侃諤諤の議論は、要は「その2を許容するか否か」が論点だと思うのね。
その1を論難する人は居ないと思う。ゲームが好きな人はみんなそうする
その3を許容する人も居ないと思う。改造apkとかBANされるし
じゃあその2はどうかと言うと、俺は許容されるべきだと考えてる
なぜなら、可能な努力は全て行われるべきだから。ゲームに真剣になれ
もちろんマクロやBOTが、サーバーに大きな負担を掛けたり、他のプレイヤーの迷惑になったり、ゲームバランスを大きく毀損するならその努力は行われるべきでないけど、通常ガチャマクロに関してはセーフだと思う。誰か迷惑した?
直感的にその2に嫌悪を覚える向きも分かる。俺もゲーマーだからその感情は知ってる。
でも「俺が嫌だから、それを公式に禁止させ、他のプレイヤーから努力の選択肢を奪う」って態度がゲーマーとしてフェアで健全かと言われると、そうじゃないだろ?
まあ今回は公式に禁止されるので、運営が想定していなかった遊び方なんだろう、恐らく。それにしては禁止が遅いが。
じゃあな
当エントリはある程度の情報技術リテラシーが必須であり、一部の情報はPC初心者および初級者に推奨できるものではない。
しかしPC初心者および初級者はシステムを壊す、大事なデータを失うなどの手痛い失敗をして成長するのもまた事実であり、もしもプログラミングなどに興味のあるPC初心者および初級者がこの情報を活用する場合はシステムを壊す、大事なデータを失うことを覚悟して実行するように。
チュートリアルに指示通りに進めれば大きな問題はほぼ発生しません。
Chrome OSは初期状態のデフォルトで「ノーマルモード」と呼ばれる一般ユーザーモードですが開発者向けに「デベロッパーモード」が用意されています。
ノーマルモードはChrome OSの様々な制限があり、デベロッパーモードによって制限の解除が可能です。
しかしノーマルモードからデベロッパーモードへ移行するとPowerwash(初期化)されてしまい、システムやユーザー領域へ追加された情報はすべて削除されます。
もしデベロッパーモードが必要な場合はデベロッパーモードの詳細を調べ、現在の情報は削除されてしまうことを念頭に実行しましょう。
ちなみにProject CrostiniのLinuxレイヤーへDebianリポジトリからパッケージを導入するなどにはデベロッパーモードは必要ありませんので多くの場合はノーマルモードのままの運用で十分でしょう。
Android OSアプリやChrome OSアプリを開発したい場合は最初からデベロッパーモードにしたほうが後悔が少ないです。
Chrome OSでは一部のキーがほかのOSでは見慣れないものが並んでいます。
迷いがちなので一番最初に覚えるべきキーボードショートカットは「Ctrl+Alt+?」です。
「Ctrl+Alt+?」でいつでもキーボードショートカットを確認できることだけは覚えておきましょう。
多くのChrome OSデバイスはGoogle Play Storeへ対応しており、Google Play Store経由でAndroid OSアプリ導入が可能です。
しかしながらGoogle Play Storeへ公開されているAndroid OSアプリが必ずしもChrome OSへ最適化しているのか?と言えばそうではなく、Android OSアプリの開発環境であるAndroid StudioがデフォルトでChrome OSでの実行を許可していることもあり開発者が意図せずChrome OSへインストールできてしまうことが大半です。
したがってChrome OSへ導入するAndoirdアプリの動作へ何らかの不具合があったとしても脊髄反射で酷評せず、やんわりと丁寧に博愛精神をもってChrome OSではこうだとアプリ開発者へ情報共有することをオススメします。
多くのAndroidスマートフォンやタブレットはARMアーキテクチャーと呼ばれるものを採用していますが、現在のChrome OSデバイスは高性能な製品になるほどx86(x86_64)アーキテクチャーを採用している傾向があります。
本来コンピューターアプリケーションというものはアーキテクチャーが異なると実行起動動作が不可能ですが、Android OSアプリは異なるアーキテクチャー間でもアプリの実行起動動作が極力可能となるように互換性をだいたい確保しています。
しかしながら例えばARMアーキテクチャー向けのAndoird OSアプリをx86アーキテクチャーなデバイスで実行するとアプリ動作のパフォーマンスが著しく落ることが多いです。
これは高度なグラフィックス機能を必要とするゲームなどで顕著に現れる傾向にあり、Chrome OSでは期待したほどAndroid OSアプリが軽快に動かない可能性を理解しておく必要があるのです。
コロナ禍によって多くのChrome OSデバイスを販売することが出来ましたが、それによってChrome OSデバイス間の性能差が問題視される機会も増えました。
具体的には「インターネット上でChrome OSでの動作報告がなされているAndroidアプリが自身のChrome OSデバイスではインストールできない」といった報告です。
これは一部のAndroidアプリ開発者がデバイス性能によってインストールの許可不許可を決めているために起こることで解決方法は基本的にありませんので諦めましょう。
これから導入するAndroidアプリのためにChrome OSを購入する際は価格につられて低性能すぎるデバイスを購入してしまうと失敗する確率が高まりますので注意が必要です。
ただし、Googleが提供するアプリなどは基本的にそのようなことは無いようです。
設定から「Linux(ベータ版)」で「オンにする」とLinuxのインストールが開始されます。
現在のChrome OS v90ではLinuxレイヤーを実現するProject CrostiniではデフォルトでGPUによる支援機能を実行できません。
Chrome Webブラウザを起動し、URL欄へ「chrome:flags」と入力しアクセスして「Crostini GPU Support」を「Enabled」とし再起動してください。
この変更で動作に不具合を確認した際は設定を元に戻してください。
LinuxにもGoogle Play Storeのような簡単にLinuxアプリを導入できる環境が存在します。
GUIパッケージマネージャーを導入する場合は「ターミナル」を起動し下記を実行してください。
sudo apt install synaptic gnome-software
Chrome OSとLinuxレイヤーではパッケージの導入先がデフォルトで海外のサーバーになっており少々遅いです。
日本国内のサーバーへ変更することで速度を改善できる可能性があります。その際は「ターミナル」を起動し下記を実行してください。
現在のChrome OS v90ではChrome OSとLinuxレイヤーを実現するProject Crostiniで日本語入力を共有できず、キーボード入力しても英字しか印字されません。
日本語入力をするには別途に日本語インプットメソッドと日本語フォントが必要です。
日本語インプットメソッドと日本語フォントを導入する場合は「ターミナル」を起動し下記を実行してください。
Linuxへ詳しい方はfcitx5のほうが何かと問題が少ないでしょう。
しかし一部のfcitx5向けパッケージがDebian公式リポジトリに存在しない可能性があるのでご注意ください。
KVMやLXC、Dockerなどの仮想環境を幾度か試しましたが、仮想環境を構築したProject CrostiniのLinuxレイヤーを再起動するなどによってProject CrostiniのLinuxレイヤーシステムへ致命的な破壊が起きることがあるのを何度か確認しています。
Project CrostiniのLinuxレイヤー自体が仮想環境のため、Chrome OSのシステムが破壊されるわけではないですが業務利用時にLinuxレイヤーシステムの破壊が起きてしまうと困ってしまうので仮想環境構築は推奨できません。
仮想環境によって開発環境の統一を計っている現場では開発デバイスとしてChrome OSデバイスは利用しないほうが良いでしょう。
ただし、Chrome OSデバイスは実質的にAndroid OSデバイス、タッチスクリーンデバイス、キーボード付きデバイス、タブレットデバイス、ノートPCデバイス、コンバーチブルデバイス(いわゆる2in1)、マルチタスクデバイス、ウィンドウ可変デバイス、タッチスタイラスペン付きデバイスとして機能する可能性を秘めていますので実機デバッグ用デバイスとしては非常に価値があります。
昨今はアスペクト比が16:9でないどころかリアルタイムに可変してしまうデバイスが物凄く増えていますのでスマートデバイス向けアプリを開発する現場ではデバッグ用として1台持っていても全く損しないデバイスかと思われます。
さらに言えばティーン層はGIGAスクール構想によりChrome OSでプログラミング学習をしているわけですからティーン層取り込みのためのUI開発にも使えるのではないかと考えます。
7と8。
技術的なところが気になる人はこれだけ読んでくれたらいい
最後に技術的な観点からエアレペルソナが純国産ではないということを指摘する。
RocketChatという海外で開発されたOSSチャットアプリをフォーク、改変したもののよう。
ttps://github.com/RocketChat/Rocket.Chat.ReactNative
ttps://rocket.chat
フォーク元はバリバリ多国籍、外資である。(RocketChat自体は問題のないアプリであり、このエアレペルソナとはフォーク関係を超える関係はないと思われる)
冒頭のこの部分に関してである。
ttps://play.google.com/store/apps/details?id=chat.airlex.reactnative
Google Playで公開されているエアレペルソナのAndroidアプリをリバースエンジニアリングして調べてみた。
ちなみに、エアレペルソナには利用規約のようなものは見当たらず、リバースエンジニアリング禁止条項も無いようだった。
ttps://apps.evozi.com/apk-downloader/
ttps://github.com/pxb1988/dex2jar
この辺を使ってapkをダウンロードし、apkを解凍し、chat.airlex.reactnative/classes.dexをjar fileに変換した。
classes.dexから変換されたjarファイルを展開するとchat/airlex/reactnativeというフォルダ、パッケージが見つかる。
このパッケージ内のファイル(.class、クラス)がエアレペルソナの処理を行うもののようである。
このクラスをJadを使い、デコンパイルしてみた。その結果が以下である。
ちなみにここからapkをアップロードするとdex2jarをしなくてもJavaのソースコードにまでデコンパイルしてくれた。便利。
package chat.airlex.reactnative; import android.content.Context; import com.ammarahmed.mmkv.SecureKeystore; import com.facebook.react.bridge.ReactApplicationContext; import com.tencent.mmkv.MMKV; public class Ejson { private String TOKEN_KEY = "reactnativemeteor_usertoken-"; String cardId; String host; String messageId; String messageType; /* access modifiers changed from: private */ public MMKV mmkv; String msg; String notificationType; String rid; Sender sender; String senderName; String type; public Ejson() { ReactApplicationContext reactApplicationContext = CustomPushNotification.reactApplicationContext; if (reactApplicationContext != null) { MMKV.initialize((Context) reactApplicationContext); new SecureKeystore(reactApplicationContext).getSecureKey(C0617Utils.toHex("com.MMKV.default"), new RNCallback() { public void invoke(Object... objArr) { if (objArr[0] == null) { MMKV unused = Ejson.this.mmkv = MMKV.mmkvWithID("default", 1, objArr[1]); } } }); } } public String getAvatarUri() { if (this.type == null) { return null; } return serverURL() + "/avatar/" + this.sender._id + "?rc_token=" + token() + "&rc_uid=" + userId(); } public String token() { String userId = userId(); MMKV mmkv2 = this.mmkv; return (mmkv2 == null || userId == null) ? "" : mmkv2.decodeString(this.TOKEN_KEY.concat(userId)); } public String userId() { String serverURL = serverURL(); MMKV mmkv2 = this.mmkv; return (mmkv2 == null || serverURL == null) ? "" : mmkv2.decodeString(this.TOKEN_KEY.concat(serverURL)); } public String privateKey() { String serverURL = serverURL(); MMKV mmkv2 = this.mmkv; if (mmkv2 == null || serverURL == null) { return null; } return mmkv2.decodeString(serverURL.concat("-RC_E2E_PRIVATE_KEY")); } public String serverURL() { String str = this.host; return (str == null || !str.endsWith("/")) ? str : str.substring(0, str.length() - 1); } public class Sender { String _id; String username; public Sender() { } } }
フィールド名を見てみると、cardId, host, messageId, messageType, mmkv, msg, notificationType, rid, sender, senderName, typeが存在する。
メソッドには、getAvaterUri、token、userId、privateKey、severURLが存在する。
ところで、RocketChatというOSSのチャットアプリが存在する。
ttps://rocket.chat
そのRoketChatのAndroid実装の中に同名のEjsonというクラスが存在する。
ttps://github.com/RocketChat/Rocket.Chat.ReactNative
ttps://github.com/RocketChat/Rocket.Chat.ReactNative/blob/develop/android/app/src/play/java/chat/rocket/reactnative/Ejson.java
見比べてみると、フィールドにcardIdが追加されている以外はフィールドやメソッド名、そしてその処理の内容まで一致している。
他にもReplyBroadcastなど、同様のクラスがエアレペルソナに見つかる。
以上のことからエアレペルソナはRocketChatをフォークして、パッケージ名を変えて作られたチャットアプリであり、開発の大部分はRocketChat社の努力と多数のOSSコントリビュータによってなされたものであると思われる。
そもそもこのOSS時代に純だの何だの言っている時点で怪しい。
さて、エアレペルソナがRocketChatをフォークして作られたものであるとすると、気になるのはライセンスである。
RocketChatのOSSライセンスはMITライセンスである。
ttps://github.com/RocketChat/Rocket.Chat.ReactNative/blob/develop/LICENSE
MITライセンスは非常に緩いライセンスであるため、エアレペルソナの様にフォークして別のアプリケーションとして公開することにはおそらく問題がないということは強調しておく。
現状エアレペルソナにログインできておらず(2要素認証のコードが送信されないといった問題が起きている模様)、使用している各OSSのライセンス表示が適切に行われているかまでは調べられていない。
昨今はAppleのApp StoreやGoogleのGoogle Play Store上での問題が注目を集めている。大きな組織によって自分たちの首根っこが抑えつけられ自由を侵害されるというのは今に始まったことではないが、ここに関する反発は日々強まってきていると感じる。大きな組織がさらなる大きな力を持ち、中央集権を強めるなかで我々が模索し目指さなければならないのは脱中央集権、非中央集権である。自分たちの在り方は自分たちで決めるし自分たちの個人情報は自分たちに権利があるのだ。
Mastodonという非中央集権なSNSがある。プロジェクトはオープンソースで誰もがMastodonのサーバーをホストすることができる。このサーバーたちは相互に繋がることができるので違うサーバーであってもメッセージを送り合うことができる。
今回問題になったのは、Google Play上で公開されているいくつかのMastodon向けクライアントだ。これらのアプリはGoogleの主張によれば「ヘイトスピーチ」に関する内容を含んでいるため改善しろ、というものであった。クライアントはただサーバーにアクセスするだけである。ユーザーがアクセスしているサーバーにはGoogleが指摘するようなヘイトスピーチを扇動するようなサーバーがあるかもしれないが、それを理由にGoogleが該当サーバーをホストしている訳ではないアプリ開発者に対して改善をするよう脅迫するのは理不尽である。彼らのGoogle Chromeでもこれらのサーバーにアクセスすることは可能であり、ただクライアントがWebページを表示しているのとなんら変わりない。Googleの主張からすれば、彼らのGoogle Chromeも同様に取り締まられるべきだ、と言えてしまう。
今回の問題は既に一度議論されたことがある。Gabという極右コミュニティがMastodonを使ってMastodonを始めとしたネットワークに参入してきた。これを機にMastodon創始者のオイゲン氏はGabをサーバー管理者やクライアント開発者に排除するよう呼びかけた。サーバー管理者やクライアント開発者はGabをブロックしたりしなかったりした。サーバー同士で繋がることができると言っても例えば日本語と英語とで言語圏の違ったりと接点が無い場合はわざわざブロックする必要はないだろうということだ。またはサーバー管理者がわざわざブロックしなくともユーザーが各自に対応する自由な判断に任せるということもある。クライアントはただサーバーにアクセスするだけであるからハードコーディングによってそれらを排除するのはナンセンスであるし、この行動はユーザーの自由を制限することであるからやるべきではないという意見もあった。一方でGabにアクセスすることができることを理由にApp StoreやGoogle Play Storeからアプリを削除されてしまうのではないかという意見もあった。ただこの懸念はただのクライアントに対して合理性を持たないだろうと思われていたがその懸念が愚かなことに現実となってしまった。
さて幸いなことに今回の問題はGoogle Play上で起こったものである。Google Play Storeを使わなくてもAndroid端末にインストールすることができる。F-DroidやAPKの配布などインストールする手段は残されている。これがApp Storeでの問題ならば開発者とユーザーに残された生き残る手段はないだろう。
2017年頃にMastodonが注目された頃に比べて大きなメディアがMastodonを取り上げることはめっきりなくなった。国内で言えばITmediaがよく特色のある記事を書いていたが今では全く更新されることはなくなってしまった。mstdn.jp の管理者が変わったことの詳細な記事がITmediaから出ると期待しているが既に変更されてから2ヶ月が経とうとしている。仕方がないよね。Fediverseの思想がいくら素晴らしくても金にならないんだもの。金にならない話は注目されない。記事にする価値はない。世の中は金の話が本質的に価値を持つのか?
Mastodonに対するメディアの関心というは昔に比べて低くなったものの今回の問題はHacker Newsにて大きな注目を集めているのでメディアに取り上げてもらって大きな世論を形成していって欲しい。ITmediaはGabとMastodonについての記事を書いてくれなかったので期待することさえ無駄だろうが。
Subway Tooter blog - Playストアからの削除警告について - Subway Tooter blog
http://subwaytooter.hatenadiary.jp/entry/2020/08/29/113948
Google is apparently taking down all/most Fediverse apps from the Play Store | Hacker News
https://news.ycombinator.com/item?id=24304275
How the biggest decentralized social network is dealing with its Nazi problem - The Verge